diff options
author | Dipankar Sarma <dipankar@in.ibm.com> | 2008-01-25 21:08:23 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-25 21:08:23 +0100 |
commit | c2d727aa2ff17a1c8e5ed1e5e231bb8579b27e82 (patch) | |
tree | 76b570288a72c1337920c5e60682316c554f00ee /include/linux/interrupt.h | |
parent | c49443c538c1bbf50eda27e4a3711e9fc15176b0 (diff) | |
download | blackbird-op-linux-c2d727aa2ff17a1c8e5ed1e5e231bb8579b27e82.tar.gz blackbird-op-linux-c2d727aa2ff17a1c8e5ed1e5e231bb8579b27e82.zip |
Preempt-RCU: Use softirq instead of tasklets for
This patch makes RCU use softirq instead of tasklets.
It also adds a memory barrier after raising the softirq
inorder to ensure that the cpu sees the most recently updated
value of rcu->cur while processing callbacks.
The discussion of the related theoretical race pointed out
by James Huang can be found here --> http://lkml.org/lkml/2007/11/20/603
Signed-off-by: Gautham R Shenoy <ego@in.ibm.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Dipankar Sarma <dipankar@in.ibm.com>
Reviewed-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/linux/interrupt.h')
-rw-r--r-- | include/linux/interrupt.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index 2306920fa388..c3db4a00f1fa 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -256,6 +256,7 @@ enum #ifdef CONFIG_HIGH_RES_TIMERS HRTIMER_SOFTIRQ, #endif + RCU_SOFTIRQ, /* Preferable RCU should always be the last softirq */ }; /* softirq mask and active fields moved to irq_cpustat_t in |