Le Fri, Jul 10, 2026 at 11:28:18AM +0800, Jing Wu a écrit :
> When kernel-noise isolation is requested for a CPU at runtime via a
> cpuset isolated partition, tick suppression must be activated on the
> affected CPU without requiring nohz_full= at boot.
> 
> tick_nohz_full_mask and tick_nohz_full_running are currently set only
> during boot by tick_nohz_full_setup(). There is no runtime path to add
> or remove CPUs from the full-dynticks set.
> 
> Add tick_nohz_cpu_isolate() and tick_nohz_cpu_deisolate(), both called
> with the target CPU offline (between remove_cpu and add_cpu in the
> hotplug cycling path):
> 
>   tick_nohz_cpu_isolate(cpu) - lazily allocates tick_nohz_full_mask
>     if it was never set up at boot, sets the CPU's bit in the mask,
>     sets tick_nohz_full_running, and calls ct_cpu_track_user() to
>     activate per-CPU context tracking so kernel/user transitions
>     suppress the scheduler tick.
> 
>   tick_nohz_cpu_deisolate(cpu) - reverses the above: deactivates
>     context tracking via ct_cpu_untrack_user(), clears the CPU's bit,
>     and clears tick_nohz_full_running when the mask becomes empty.
> 
> A per-function mutex guards the lazy allocation and running flag
> updates against concurrent isolation requests.
> 
> Co-developed-by: Qiliang Yuan <[email protected]>
> Signed-off-by: Qiliang Yuan <[email protected]>
> Signed-off-by: Jing Wu <[email protected]>
> ---
>  include/linux/tick.h     |  4 ++++
>  kernel/time/tick-sched.c | 45 +++++++++++++++++++++++++++++++++++++++++++++

tick_nohz_full_running is essentially a duplicate of
~housekeeping_cpumask(HK_TYPE_KERNEL_NOISE) and tick_nohz_full_running a
duplicate of housekeeping_enabled(HK_TYPE_KERNEL_NOISE).

Perhaps those two variables should be removed?

Thanks.

-- 
Frederic Weisbecker
SUSE Labs

Reply via email to