diff options
| author | Dipankar Sarma <[email protected]> | 2008-01-25 21:08:23 +0100 |
|---|---|---|
| committer | Ingo Molnar <[email protected]> | 2008-01-25 21:08:23 +0100 |
| commit | c2d727aa2ff17a1c8e5ed1e5e231bb8579b27e82 (patch) | |
| tree | 76b570288a72c1337920c5e60682316c554f00ee /include/linux | |
| parent | c49443c538c1bbf50eda27e4a3711e9fc15176b0 (diff) | |
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 <[email protected]>
Signed-off-by: Steven Rostedt <[email protected]>
Signed-off-by: Dipankar Sarma <[email protected]>
Reviewed-by: Steven Rostedt <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'include/linux')
| -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 |