aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/rcupdate.h
diff options
context:
space:
mode:
authorFrederic Weisbecker <fweisbec@gmail.com>2012-07-11 14:26:30 -0400
committerFrederic Weisbecker <fweisbec@gmail.com>2012-09-26 09:44:04 -0400
commit2b1d5024e17be459aa6385763ca3faa8f01c52d9 (patch)
tree45d1ea5872eea69b7f0443086d98ddbcbc221b94 /include/linux/rcupdate.h
parent9a0c6fef423528ba5b62aa31b29aabf689eb8f70 (diff)
rcu: Settle config for userspace extended quiescent state
Create a new config option under the RCU menu that put CPUs under RCU extended quiescent state (as in dynticks idle mode) when they run in userspace. This require some contribution from architectures to hook into kernel and userspace boundaries. Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: Alessio Igor Bogani <abogani@kernel.org> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Avi Kivity <avi@redhat.com> Cc: Chris Metcalf <cmetcalf@tilera.com> Cc: Christoph Lameter <cl@linux.com> Cc: Geoff Levand <geoff@infradead.org> Cc: Gilad Ben Yossef <gilad@benyossef.com> Cc: Hakan Akkan <hakanakkan@gmail.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Josh Triplett <josh@joshtriplett.org> Cc: Kevin Hilman <khilman@ti.com> Cc: Max Krasnyansky <maxk@qualcomm.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephen Hemminger <shemminger@vyatta.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Sven-Thorsten Dietrich <thebigcorporation@gmail.com> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'include/linux/rcupdate.h')
-rw-r--r--include/linux/rcupdate.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
index f818dd165b44..f5034f22e94b 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@ -191,10 +191,19 @@ extern void rcu_idle_enter(void);
191extern void rcu_idle_exit(void); 191extern void rcu_idle_exit(void);
192extern void rcu_irq_enter(void); 192extern void rcu_irq_enter(void);
193extern void rcu_irq_exit(void); 193extern void rcu_irq_exit(void);
194
195#ifdef CONFIG_RCU_USER_QS
194extern void rcu_user_enter(void); 196extern void rcu_user_enter(void);
195extern void rcu_user_exit(void); 197extern void rcu_user_exit(void);
196extern void rcu_user_enter_after_irq(void); 198extern void rcu_user_enter_after_irq(void);
197extern void rcu_user_exit_after_irq(void); 199extern void rcu_user_exit_after_irq(void);
200#else
201static inline void rcu_user_enter(void) { }
202static inline void rcu_user_exit(void) { }
203static inline void rcu_user_enter_after_irq(void) { }
204static inline void rcu_user_exit_after_irq(void) { }
205#endif /* CONFIG_RCU_USER_QS */
206
198extern void exit_rcu(void); 207extern void exit_rcu(void);
199 208
200/** 209/**