Commit 5c4991e24c69 ("sched/isolation: Split out new CONFIG_CPU_ISOLATION=y config from CONFIG_NO_HZ_FULL") can result in RCU CPU stall warnings when running rcutorture with CONFIG_NO_HZ_FULL_ALL=y and CONFIG_CPU_ISOLATION=n. These warnings are caused by RCU's grace-period kthreads sleeping for a few jiffies, but never being awakened:
[ 116.353432] rcu_preempt kthread starved for 9974 jiffies! g4294967208 +c4294967207 f0x0 RCU_GP_WAIT_FQS(3) ->state=0x402 ->cpu=0 [ 116.355517] rcu_preempt I 7464 8 2 0x80000000 [ 116.356543] Call Trace: [ 116.357008] __schedule+0x493/0x620 [ 116.357682] schedule+0x24/0x40 [ 116.358291] schedule_timeout+0x330/0x3b0 [ 116.359024] ? preempt_count_sub+0xea/0x140 [ 116.359806] ? collect_expired_timers+0xb0/0xb0 [ 116.360660] rcu_gp_kthread+0x6bf/0xef0 This commit therefore makes NO_HZ_FULL select CPU_ISOLATION, which prevents this behavior and seems like it was the original intention in any case. Fixes: 5c4991e24c69 ("sched/isolation: Split out new CONFIG_CPU_ISOLATION=y config from CONFIG_NO_HZ_FULL") Link: https://lkml.kernel.org/r/20171126084203.GE21779@yexl-desktop Reported-by: kernel test robot <xiaolong...@intel.com> Signed-off-by: Paul E. McKenney <paul...@linux.vnet.ibm.com> Cc: Frederic Weisbecker <frede...@kernel.org> Cc: Thomas Gleixner <t...@linutronix.de> Cc: Chris Metcalf <cmetc...@mellanox.com> Cc: Christoph Lameter <c...@linux.com> Cc: Linus Torvalds <torva...@linux-foundation.org> Cc: Luiz Capitulino <lcapitul...@redhat.com> Cc: Mike Galbraith <efa...@gmx.de> Cc: Peter Zijlstra <pet...@infradead.org> Cc: Rik van Riel <r...@redhat.com> Cc: Wanpeng Li <kernel...@gmail.com> Cc: Ingo Molnar <mi...@kernel.org> Cc: John Stultz <john.stu...@linaro.org> diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig index e776fc8cc1df..f6b5f19223d6 100644 --- a/kernel/time/Kconfig +++ b/kernel/time/Kconfig @@ -95,6 +95,7 @@ config NO_HZ_FULL select RCU_NOCB_CPU select VIRT_CPU_ACCOUNTING_GEN select IRQ_WORK + select CPU_ISOLATION help Adaptively try to shutdown the tick whenever possible, even when the CPU is running tasks. Typically this requires running a single