Le Tue, Apr 21, 2026 at 10:50:00AM +0200, Thomas Gleixner a écrit :
> On Mon, Apr 20 2026 at 23:03, Waiman Long wrote:
> > +   /*
> > +    * To properly enable/disable nohz_full dynticks for the affected CPUs,
> > +    * the new nohz_full CPUs have to be copied to tick_nohz_full_mask and
> > +    * ct_cpu_track_user/ct_cpu_untrack_user() will have to be called
> > +    * for those CPUs that have their states changed. Those CPUs should be
> > +    * in an offline state.
> > +    */
> > +   for_each_cpu_andnot(cpu, cpumask, tick_nohz_full_mask) {
> > +           WARN_ON_ONCE(cpu_online(cpu));
> > +           ct_cpu_track_user(cpu);
> > +           cpumask_set_cpu(cpu, tick_nohz_full_mask);
> > +   }
> > +
> > +   for_each_cpu_andnot(cpu, tick_nohz_full_mask, cpumask) {
> > +           WARN_ON_ONCE(cpu_online(cpu));
> > +           ct_cpu_untrack_user(cpu);
> > +           cpumask_clear_cpu(cpu, tick_nohz_full_mask);
> > +   }
> > +}
> 
> So this writes to tick_nohz_full_mask while other CPUs can access
> it. That's just wrong and I'm not at all interested in the resulting
> KCSAN warnings.
> 
> tick_nohz_full_mask needs to become a RCU protected pointer, which is
> updated once the new mask is established in a separately allocated one.

How about just dropping tick_nohz_full_mask that is just
 ~housekeeping_cpumask(HK_TYPE_KERNEL_NOISE) which itself is becoming RCU
protected in this patchset?

Thanks.

> 
> Thanks,
> 
>         tglx
> 
> 

-- 
Frederic Weisbecker
SUSE Labs

Reply via email to