Skip to content

RFC nohz: Move nohz kick out of scheduler IPI, v4

Frederic Weisbecker lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest5 patches 4 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/5irq_work: Let arch tell us if it can raise irq workarch/alpha/kernel/time.c arch/arm/kernel/smp.c arch/powerpc/kernel/time.c +3 more+32 -04 replies
2/5irq_work: Force non-lazy works to the IPIinclude/linux/irq_work.h kernel/irq_work.c kernel/timer.c+36 -280 replies
3/5irq_work: Allow remote queueinginclude/linux/irq_work.h kernel/irq_work.c kernel/smp.c+22 -00 replies
4/5nohz: Move full nohz kick to its own IPIinclude/linux/tick.h kernel/sched/core.c kernel/sched/sched.h +1 more+16 -100 replies
5/5nohz: Use IPI implicit full barrier against rq->nr_running r/wkernel/sched/core.c kernel/sched/sched.h+13 -60 replies

Reviews trailers per patch

None of the 5 patches has a Reviewed-by or Acked-by.

PatchFrederic Weisbecker
1/5Not-Yet-Signed-off-by
2/5
3/5
4/5
5/5

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [RFC PATCH 0/5] nohz: Move nohz kick out of scheduler IPI, v4

So this version now implements remote irq works using the generic IPI interrupt available in most archs, as suggested by Peterz.

Keep in mind that the first patch is really just a draft to build the mockup. It needs to be turned into an internal state set on boot or so.

git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
timers/nohz-irq-work-v2

Thanks,
Frederic
---

Frederic Weisbecker (5):
irq_work: Let arch tell us if it can raise irq work
irq_work: Force non-lazy works to the IPI
irq_work: Allow remote queueing
nohz: Move full nohz kick to its own IPI
nohz: Use IPI implicit full barrier against rq->nr_running r/w

 arch/alpha/kernel/time.c   |  5 +++
 arch/arm/kernel/smp.c      |  5 +++
 arch/powerpc/kernel/time.c |  5 +++
 arch/sparc/kernel/pcr.c    |  5 +++
 arch/x86/kernel/irq_work.c |  7 ++++
 include/linux/irq_work.h   |  3 ++
 include/linux/tick.h       |  9 ++++-
 kernel/irq_work.c          | 83 +++++++++++++++++++++++++++++++---------------
 kernel/sched/core.c        | 14 ++++----
 kernel/sched/sched.h       | 12 +++++--
 kernel/smp.c               |  3 ++
 kernel/time/tick-sched.c   | 10 +++---
 kernel/timer.c             |  2 +-
 13 files changed, 119 insertions(+), 44 deletions(-)