From: "Paul E. McKenney" <paul...@linux.vnet.ibm.com>

CONFIG_NO_HZ_FULL doesn't make sense without CONFIG_CPU_ISOLATION. In
fact enabling the first without the second is a regression as nohz_full=
boot parameter gets silently ignored.

Besides this unnatural combination hangs RCU gp kthread when running
rcutorture for reasons that are not yet fully understood:

        rcu_preempt kthread starved for 9974 jiffies! g4294967208
        +c4294967207 f0x0 RCU_GP_WAIT_FQS(3) ->state=0x402 ->cpu=0
        rcu_preempt     I 7464     8      2 0x80000000
        Call Trace:
                __schedule+0x493/0x620
                schedule+0x24/0x40
                schedule_timeout+0x330/0x3b0
                ? preempt_count_sub+0xea/0x140
                ? collect_expired_timers+0xb0/0xb0
                rcu_gp_kthread+0x6bf/0xef0

This commit therefore makes NO_HZ_FULL select CPU_ISOLATION, which
prevents all these bad behaviours.

Fixes: 5c4991e24c69 ("sched/isolation: Split out new CONFIG_CPU_ISOLATION=y 
config from CONFIG_NO_HZ_FULL")

Reported-by: kernel test robot <xiaolong...@intel.com>
Signed-off-by: Paul E. McKenney <paul...@linux.vnet.ibm.com>
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>
Signed-off-by: Frederic Weisbecker <frede...@kernel.org>
---
 kernel/time/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig
index e776fc8..f6b5f19 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
-- 
2.7.4

Reply via email to