Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

sched/isolation: Make "isolcpus=nohz" equivalent to "nohz_full"

The "isolcpus=nohz" boot parameter and flag were used to disable tick
when running a single task. Nowsdays, this "nohz" flag is seldomly used
as it is included as part of the "nohz_full" parameter. Extend this
flag to cover other kernel noises disabled by the "nohz_full" parameter
to make them equivalent. This also eliminates the need to use both the
"isolcpus" and the "nohz_full" parameters to fully isolated a given
set of CPUs.

Suggested-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Waiman Long <longman@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Frederic Weisbecker <frederic@kernel.org>
Link: https://lore.kernel.org/r/20241030175253.125248-3-longman@redhat.com

authored by

Waiman Long and committed by
Peter Zijlstra
1174b934 ae5c6777

+8 -2
+3 -1
Documentation/admin-guide/kernel-parameters.txt
··· 2432 2432 specified in the flag list (default: domain): 2433 2433 2434 2434 nohz 2435 - Disable the tick when a single task runs. 2435 + Disable the tick when a single task runs as well as 2436 + disabling other kernel noises like having RCU callbacks 2437 + offloaded. This is equivalent to the nohz_full parameter. 2436 2438 2437 2439 A residual 1Hz tick is offloaded to workqueues, which you 2438 2440 need to affine to housekeeping through the global
+5 -1
kernel/sched/isolation.c
··· 209 209 int len; 210 210 211 211 while (isalpha(*str)) { 212 + /* 213 + * isolcpus=nohz is equivalent to nohz_full. 214 + */ 212 215 if (!strncmp(str, "nohz,", 5)) { 213 216 str += 5; 214 - flags |= HK_FLAG_TICK; 217 + flags |= HK_FLAG_TICK | HK_FLAG_WQ | HK_FLAG_TIMER | 218 + HK_FLAG_RCU | HK_FLAG_MISC | HK_FLAG_KTHREAD; 215 219 continue; 216 220 } 217 221