]> git.baikalelectronics.ru Git - kernel.git/commit
irq_work: Implement remote queueing
authorFrederic Weisbecker <fweisbec@gmail.com>
Wed, 7 May 2014 23:37:48 +0000 (01:37 +0200)
committerFrederic Weisbecker <fweisbec@gmail.com>
Mon, 16 Jun 2014 14:26:54 +0000 (16:26 +0200)
commit64ed42399dc2a9ee8187ecd8c1ccde4e9c813494
tree59c82b8605bdd3dff0243084eeeef65b1efaa814
parent014f17005c5b1bfe272e1f21a14b307656024ff4
irq_work: Implement remote queueing

irq work currently only supports local callbacks. However its code
is mostly ready to run remote callbacks and we have some potential user.

The full nohz subsystem currently open codes its own remote irq work
on top of the scheduler ipi when it wants a CPU to reevaluate its next
tick. However this ad hoc solution bloats the scheduler IPI.

Lets just extend the irq work subsystem to support remote queuing on top
of the generic SMP IPI to handle this kind of user. This shouldn't add
noticeable overhead.

Suggested-by: Peter Zijlstra <peterz@infradead.org>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Kevin Hilman <khilman@linaro.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
include/linux/irq_work.h
kernel/irq_work.c
kernel/smp.c