diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2012-01-31 13:01:27 +0100 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2013-11-13 11:21:13 -0500 |
commit | e0c7eee431fc0610fe8eda3a26da5d27e41c2a71 (patch) | |
tree | fe206e6303adbb19a4279e079c0cff1f46e89afe /kernel/softirq.c | |
parent | 67e7442d917708b3a23b6e3bd83f0054dc6ea209 (diff) |
genirq: Allow disabling of softirq processing in irq thread context
The processing of softirqs in irq thread context is a performance gain
for the non-rt workloads of a system, but it's counterproductive for
interrupts which are explicitely related to the realtime
workload. Allow such interrupts to prevent softirq processing in their
thread context.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable-rt@vger.kernel.org
Diffstat (limited to 'kernel/softirq.c')
-rw-r--r-- | kernel/softirq.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/softirq.c b/kernel/softirq.c index a22b8a43af0d..fdd1a4d9c8b4 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -425,6 +425,13 @@ void local_bh_enable_ip(unsigned long ip) } EXPORT_SYMBOL(local_bh_enable_ip); +void _local_bh_enable(void) +{ + current->softirq_nestcnt--; + migrate_enable(); +} +EXPORT_SYMBOL(_local_bh_enable); + /* For tracing */ int notrace __in_softirq(void) { |