linux/kernel/rcu
Paul E. McKenney 11b8b378c5 rcu: Make Tiny RCU explicitly disable preemption
Because Tiny RCU is used only in kernels built with either
CONFIG_PREEMPT_NONE=y or CONFIG_PREEMPT_VOLUNTARY=y, there has not been
any need for TINY RCU to explicitly disable preemption.  However, the
prospect of lazy preemption changes that, and preemption means that
the non-atomic increment in synchronize_rcu() can be preempted, with
the possibility that one of the increments is lost.  This could cause
failures for users of the APIs that poll RCU grace periods.

This commit therefore adds the needed preempt_disable() and
preempt_enable() call to Tiny RCU.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Cc: Ankur Arora <ankur.a.arora@oracle.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
2024-04-15 11:29:48 +02:00
..
Kconfig rcu: Create NEED_TASKS_RCU to factor out enablement logic 2024-04-15 11:29:48 +02:00
Kconfig.debug rcu: Restrict access to RCU CPU stall notifiers 2023-12-12 02:31:22 +05:30
Makefile rcuperf: Change rcuperf to rcuscale 2020-08-24 18:39:24 -07:00
rcu_segcblist.c rcu: Use rcu_segcblist_segempty() instead of open coding it 2023-10-04 17:33:18 +02:00
rcu_segcblist.h rcu: Throttle callback invocation based on number of ready callbacks 2023-01-03 17:28:34 -08:00
rcu.h Merge branches 'rcu-doc.2024.02.14a', 'rcu-nocb.2024.02.14a', 'rcu-exp.2024.02.14a', 'rcu-tasks.2024.02.26a' and 'rcu-misc.2024.02.14a' into rcu.2024.02.26a 2024-02-26 17:37:25 -08:00
rcuscale.c rcu: Rename jiffies_till_flush to jiffies_lazy_flush 2024-02-14 08:00:57 -08:00
rcutorture.c rcutorture: Suppress rtort_pipe_count warnings until after stalls 2024-02-14 08:00:57 -08:00
refscale.c refscale: Print out additional module parameters 2023-09-11 23:02:18 +02:00
srcutiny.c srcu: Make Tiny SRCU explicitly disable preemption 2024-04-15 11:29:48 +02:00
srcutree.c srcu: Improve comments about acceleration leak 2024-02-14 08:00:57 -08:00
sync.c rcu/sync: remove un-used rcu_sync_enter_start function 2024-02-14 08:00:57 -08:00
tasks.h rcu-tasks: Maintain real-time response in rcu_tasks_postscan() 2024-02-25 14:27:49 -08:00
tiny.c rcu: Make Tiny RCU explicitly disable preemption 2024-04-15 11:29:48 +02:00
tree_exp.h rcu/exp: Remove rcu_par_gp_wq 2024-02-14 07:51:36 -08:00
tree_nocb.h Merge branches 'rcu-doc.2024.02.14a', 'rcu-nocb.2024.02.14a', 'rcu-exp.2024.02.14a', 'rcu-tasks.2024.02.26a' and 'rcu-misc.2024.02.14a' into rcu.2024.02.26a 2024-02-26 17:37:25 -08:00
tree_plugin.h rcu/exp: Handle parallel exp gp kworkers affinity 2024-02-14 07:51:36 -08:00
tree_stall.h rcu: Restrict access to RCU CPU stall notifiers 2023-12-12 02:31:22 +05:30
tree.c rcu: Add lockdep checks and kernel-doc header to rcu_softirq_qs() 2024-04-09 15:08:34 +02:00
tree.h Merge branches 'rcu-doc.2024.02.14a', 'rcu-nocb.2024.02.14a', 'rcu-exp.2024.02.14a', 'rcu-tasks.2024.02.26a' and 'rcu-misc.2024.02.14a' into rcu.2024.02.26a 2024-02-26 17:37:25 -08:00
update.c rcu: Restrict access to RCU CPU stall notifiers 2023-12-12 02:31:22 +05:30