Frederic Weisbecker fe2ae32a7e nohz: Add TICK_DEP_BIT_RCU
[ Upstream commit 01b4c39901e087ceebae2733857248de81476bd8 ]

If a nohz_full CPU is looping in the kernel, the scheduling-clock tick
might nevertheless remain disabled.  In !PREEMPT kernels, this can
prevent RCU's attempts to enlist the aid of that CPU's executions of
cond_resched(), which can in turn result in an arbitrarily delayed grace
period and thus an OOM.  RCU therefore needs a way to enable a holdout
nohz_full CPU's scheduler-clock interrupt.

This commit therefore provides a new TICK_DEP_BIT_RCU value which RCU can
pass to tick_dep_set_cpu() and friends to force on the scheduler-clock
interrupt for a specified CPU or task.  In some cases, rcutorture needs
to turn on the scheduler-clock tick, so this commit also exports the
relevant symbols to GPL-licensed modules.

Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Stable-dep-of: 58d766824264 ("tick/nohz: Fix cpu_is_hotpluggable() by checking with nohz subsystem")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-05-17 11:13:22 +02:00
..
2020-04-02 15:28:19 +02:00
2018-04-16 11:53:35 +01:00
2017-12-13 15:10:01 -05:00
2018-04-04 13:41:27 +01:00
2018-06-19 10:06:29 -07:00
2017-11-17 14:58:01 -08:00
2017-11-17 09:51:57 -08:00
2017-09-25 20:38:26 +02:00
2018-02-23 14:29:59 +00:00
2018-07-26 10:17:47 +02:00
2018-02-13 21:30:22 +01:00
2020-07-22 09:32:13 +02:00
2017-12-19 10:56:24 +01:00
2023-05-17 11:13:22 +02:00
2018-04-18 23:37:39 -04:00