* [GIT PULL] Nohz / isolation fixes
@ 2017-12-14 14:14 Frederic Weisbecker
2017-12-14 14:14 ` [PATCH 1/3] sched/isolation: Make NO_HZ_FULL select CPU_ISOLATION Frederic Weisbecker
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Frederic Weisbecker @ 2017-12-14 14:14 UTC (permalink / raw)
To: Ingo Molnar
Cc: LKML, Frederic Weisbecker, Peter Zijlstra, Linus Torvalds,
Chris Metcalf, John Stultz, Thomas Gleixner, Luiz Capitulino,
Christoph Lameter, Paul E . McKenney, Wanpeng Li, Mike Galbraith,
Rik van Riel
Ingo,
Please pull the nohz/fixes branch that can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
nohz/fixes
HEAD: 11c3146353bb83028ace8ad089a911c390395986
Thanks,
Frederic
---
Paul E. McKenney (3):
sched/isolation: Make NO_HZ_FULL select CPU_ISOLATION
sched/isolation: Enable CONFIG_CPU_ISOLATION=y by default
sched/isolation: Document boot parameters dependency on CONFIG_CPU_ISOLATION
Documentation/admin-guide/kernel-parameters.rst | 1 +
Documentation/admin-guide/kernel-parameters.txt | 4 ++--
init/Kconfig | 6 +++++-
kernel/time/Kconfig | 1 +
4 files changed, 9 insertions(+), 3 deletions(-)
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/3] sched/isolation: Make NO_HZ_FULL select CPU_ISOLATION
2017-12-14 14:14 [GIT PULL] Nohz / isolation fixes Frederic Weisbecker
@ 2017-12-14 14:14 ` Frederic Weisbecker
2017-12-14 14:14 ` [PATCH 2/3] sched/isolation: Enable CONFIG_CPU_ISOLATION=y by default Frederic Weisbecker
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Frederic Weisbecker @ 2017-12-14 14:14 UTC (permalink / raw)
To: Ingo Molnar
Cc: LKML, Paul E. McKenney, Peter Zijlstra, Linus Torvalds,
Chris Metcalf, John Stultz, Frederic Weisbecker, Thomas Gleixner,
Luiz Capitulino, Christoph Lameter, Wanpeng Li, Mike Galbraith,
Rik van Riel, kernel test robot
From: "Paul E. McKenney" <paulmck@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.ye@intel.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Chris Metcalf <cmetcalf@mellanox.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Luiz Capitulino <lcapitulino@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@redhat.com>
Cc: Wanpeng Li <kernellwp@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: John Stultz <john.stultz@linaro.org>
Signed-off-by: Frederic Weisbecker <frederic@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
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/3] sched/isolation: Enable CONFIG_CPU_ISOLATION=y by default
2017-12-14 14:14 [GIT PULL] Nohz / isolation fixes Frederic Weisbecker
2017-12-14 14:14 ` [PATCH 1/3] sched/isolation: Make NO_HZ_FULL select CPU_ISOLATION Frederic Weisbecker
@ 2017-12-14 14:14 ` Frederic Weisbecker
2017-12-14 14:14 ` [PATCH 3/3] sched/isolation: Document boot parameters dependency on CONFIG_CPU_ISOLATION Frederic Weisbecker
2017-12-14 18:16 ` [GIT PULL] Nohz / isolation fixes Frederic Weisbecker
3 siblings, 0 replies; 6+ messages in thread
From: Frederic Weisbecker @ 2017-12-14 14:14 UTC (permalink / raw)
To: Ingo Molnar
Cc: LKML, Paul E. McKenney, Peter Zijlstra, Linus Torvalds,
Chris Metcalf, John Stultz, Frederic Weisbecker, Thomas Gleixner,
Luiz Capitulino, Christoph Lameter, Wanpeng Li, Mike Galbraith,
Rik van Riel, kernel test robot
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
The "isolcpus=" boot parameter support was always built-in before we
moved the related code under CONFIG_CPU_ISOLATION. Having it disabled by
default is very confusing for people accustomed to use this parameter.
So enable it by dafault to keep the previous behaviour but keep it
optable for those who want to tinify their kernels.
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Chris Metcalf <cmetcalf@mellanox.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Luiz Capitulino <lcapitulino@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@redhat.com>
Cc: Wanpeng Li <kernellwp@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: John Stultz <john.stultz@linaro.org>
---
init/Kconfig | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/init/Kconfig b/init/Kconfig
index 2934249..690a381 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -461,10 +461,14 @@ endmenu # "CPU/Task time and stats accounting"
config CPU_ISOLATION
bool "CPU isolation"
+ default y
help
Make sure that CPUs running critical tasks are not disturbed by
any source of "noise" such as unbound workqueues, timers, kthreads...
- Unbound jobs get offloaded to housekeeping CPUs.
+ Unbound jobs get offloaded to housekeeping CPUs. This is driven by
+ the "isolcpus=" boot parameter.
+
+ Say Y if unsure.
source "kernel/rcu/Kconfig"
--
2.7.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/3] sched/isolation: Document boot parameters dependency on CONFIG_CPU_ISOLATION
2017-12-14 14:14 [GIT PULL] Nohz / isolation fixes Frederic Weisbecker
2017-12-14 14:14 ` [PATCH 1/3] sched/isolation: Make NO_HZ_FULL select CPU_ISOLATION Frederic Weisbecker
2017-12-14 14:14 ` [PATCH 2/3] sched/isolation: Enable CONFIG_CPU_ISOLATION=y by default Frederic Weisbecker
@ 2017-12-14 14:14 ` Frederic Weisbecker
2017-12-14 18:16 ` [GIT PULL] Nohz / isolation fixes Frederic Weisbecker
3 siblings, 0 replies; 6+ messages in thread
From: Frederic Weisbecker @ 2017-12-14 14:14 UTC (permalink / raw)
To: Ingo Molnar
Cc: LKML, Paul E. McKenney, Peter Zijlstra, Linus Torvalds,
Chris Metcalf, John Stultz, Frederic Weisbecker, Thomas Gleixner,
Luiz Capitulino, Christoph Lameter, Wanpeng Li, Mike Galbraith,
Rik van Riel, kernel test robot
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
The "isolcpus=" and "nohz_full=" boot parameters depend on CPU Isolation
support. Let's document that.
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Chris Metcalf <cmetcalf@mellanox.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Luiz Capitulino <lcapitulino@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@redhat.com>
Cc: Wanpeng Li <kernellwp@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: John Stultz <john.stultz@linaro.org>
---
Documentation/admin-guide/kernel-parameters.rst | 1 +
Documentation/admin-guide/kernel-parameters.txt | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/Documentation/admin-guide/kernel-parameters.rst b/Documentation/admin-guide/kernel-parameters.rst
index b2598cc..7242cbd 100644
--- a/Documentation/admin-guide/kernel-parameters.rst
+++ b/Documentation/admin-guide/kernel-parameters.rst
@@ -109,6 +109,7 @@ parameter is applicable::
IPV6 IPv6 support is enabled.
ISAPNP ISA PnP code is enabled.
ISDN Appropriate ISDN support is enabled.
+ ISOL CPU Isolation is enabled.
JOY Appropriate joystick support is enabled.
KGDB Kernel debugger support is enabled.
KVM Kernel Virtual Machine support is enabled.
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 6571fbf..1683107 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -1737,7 +1737,7 @@
isapnp= [ISAPNP]
Format: <RDP>,<reset>,<pci_scan>,<verbosity>
- isolcpus= [KNL,SMP] Isolate a given set of CPUs from disturbance.
+ isolcpus= [KNL,SMP,ISOL] Isolate a given set of CPUs from disturbance.
[Deprecated - use cpusets instead]
Format: [flag-list,]<cpu-list>
@@ -2662,7 +2662,7 @@
Valid arguments: on, off
Default: on
- nohz_full= [KNL,BOOT]
+ nohz_full= [KNL,BOOT,SMP,ISOL]
The argument is a cpu list, as described above.
In kernels built with CONFIG_NO_HZ_FULL=y, set
the specified list of CPUs whose tick will be stopped
--
2.7.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [GIT PULL] Nohz / isolation fixes
2017-12-14 14:14 [GIT PULL] Nohz / isolation fixes Frederic Weisbecker
` (2 preceding siblings ...)
2017-12-14 14:14 ` [PATCH 3/3] sched/isolation: Document boot parameters dependency on CONFIG_CPU_ISOLATION Frederic Weisbecker
@ 2017-12-14 18:16 ` Frederic Weisbecker
3 siblings, 0 replies; 6+ messages in thread
From: Frederic Weisbecker @ 2017-12-14 18:16 UTC (permalink / raw)
To: Ingo Molnar
Cc: LKML, Frederic Weisbecker, Peter Zijlstra, Linus Torvalds,
Chris Metcalf, John Stultz, Thomas Gleixner, Luiz Capitulino,
Christoph Lameter, Paul E . McKenney, Wanpeng Li, Mike Galbraith,
Rik van Riel
2017-12-14 15:14 UTC+01:00, Frederic Weisbecker <frederic@kernel.org>:
> Ingo,
>
> Please pull the nohz/fixes branch that can be found at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
> nohz/fixes
>
> HEAD: 11c3146353bb83028ace8ad089a911c390395986
Sorry please disregard this pull request, I messed up with the
autorship. I'm sending another version.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 3/3] sched/isolation: Document boot parameters dependency on CONFIG_CPU_ISOLATION
2017-12-14 18:18 [GIT PULL] Nohz and isolation fixes v2 Frederic Weisbecker
@ 2017-12-14 18:18 ` Frederic Weisbecker
0 siblings, 0 replies; 6+ messages in thread
From: Frederic Weisbecker @ 2017-12-14 18:18 UTC (permalink / raw)
To: Ingo Molnar
Cc: LKML, Frederic Weisbecker, Peter Zijlstra, Linus Torvalds,
Chris Metcalf, John Stultz, Thomas Gleixner, Luiz Capitulino,
Christoph Lameter, Paul E . McKenney, Wanpeng Li, Mike Galbraith,
Rik van Riel, kernel test robot
The "isolcpus=" and "nohz_full=" boot parameters depend on CPU Isolation
support. Let's document that.
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Chris Metcalf <cmetcalf@mellanox.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Luiz Capitulino <lcapitulino@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@redhat.com>
Cc: Wanpeng Li <kernellwp@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: John Stultz <john.stultz@linaro.org>
---
Documentation/admin-guide/kernel-parameters.rst | 1 +
Documentation/admin-guide/kernel-parameters.txt | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/Documentation/admin-guide/kernel-parameters.rst b/Documentation/admin-guide/kernel-parameters.rst
index b2598cc..7242cbd 100644
--- a/Documentation/admin-guide/kernel-parameters.rst
+++ b/Documentation/admin-guide/kernel-parameters.rst
@@ -109,6 +109,7 @@ parameter is applicable::
IPV6 IPv6 support is enabled.
ISAPNP ISA PnP code is enabled.
ISDN Appropriate ISDN support is enabled.
+ ISOL CPU Isolation is enabled.
JOY Appropriate joystick support is enabled.
KGDB Kernel debugger support is enabled.
KVM Kernel Virtual Machine support is enabled.
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 6571fbf..1683107 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -1737,7 +1737,7 @@
isapnp= [ISAPNP]
Format: <RDP>,<reset>,<pci_scan>,<verbosity>
- isolcpus= [KNL,SMP] Isolate a given set of CPUs from disturbance.
+ isolcpus= [KNL,SMP,ISOL] Isolate a given set of CPUs from disturbance.
[Deprecated - use cpusets instead]
Format: [flag-list,]<cpu-list>
@@ -2662,7 +2662,7 @@
Valid arguments: on, off
Default: on
- nohz_full= [KNL,BOOT]
+ nohz_full= [KNL,BOOT,SMP,ISOL]
The argument is a cpu list, as described above.
In kernels built with CONFIG_NO_HZ_FULL=y, set
the specified list of CPUs whose tick will be stopped
--
2.7.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-12-14 18:19 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-14 14:14 [GIT PULL] Nohz / isolation fixes Frederic Weisbecker
2017-12-14 14:14 ` [PATCH 1/3] sched/isolation: Make NO_HZ_FULL select CPU_ISOLATION Frederic Weisbecker
2017-12-14 14:14 ` [PATCH 2/3] sched/isolation: Enable CONFIG_CPU_ISOLATION=y by default Frederic Weisbecker
2017-12-14 14:14 ` [PATCH 3/3] sched/isolation: Document boot parameters dependency on CONFIG_CPU_ISOLATION Frederic Weisbecker
2017-12-14 18:16 ` [GIT PULL] Nohz / isolation fixes Frederic Weisbecker
2017-12-14 18:18 [GIT PULL] Nohz and isolation fixes v2 Frederic Weisbecker
2017-12-14 18:18 ` [PATCH 3/3] sched/isolation: Document boot parameters dependency on CONFIG_CPU_ISOLATION Frederic Weisbecker
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).