Le Tue, Mar 31, 2026 at 12:50:14PM -0400, Waiman Long a écrit :
> Since commit 041ee6f3727a ("kthread: Rely on HK_TYPE_DOMAIN for preferred
> affinity management"), kthreads default to use the HK_TYPE_DOMAIN
> cpumask. IOW, it is no longer affected by the setting of the nohz_full
> boot kernel parameter.
>
> That means HK_TYPE_KTHREAD should now be an alias of HK_TYPE_DOMAIN
> instead of HK_TYPE_KERNEL_NOISE to correctly reflect the current kthread
> behavior. Make the change as HK_TYPE_KTHREAD is still being used in
> some networking code.
>
> Fixes: 041ee6f3727a ("kthread: Rely on HK_TYPE_DOMAIN for preferred affinity
> management")
> Signed-off-by: Waiman Long <[email protected]>
This makes ipvs_proc_est_cpumask_get() racy because now without RCU locked the
mask pointer can be released at any point.
Other users:
sysctl_est_cpulist() -> ip_vs_est_stopped_recalc() -> ip_vs_est_reload_start()
Here sysctl_est_cpulist() is only invoked if ->est_cpulist_valid
(->est_mutex makes it stable). So housekeeping_cpumask() should not be called.
But ip_vs_est_max_threads() is more complicated. And it's a sign we should
probably call something like ipvs_proc_est_cpumask_set() when the HK_TYPE_DOMAIN
is modified (and ipvs->est_cpulist_valid is 0) in order to update the ipvs
kthreads accordingly.
Thanks.
--
Frederic Weisbecker
SUSE Labs