On Tue, May 09 2023 at 13:07, Peter Zijlstra wrote: > On Mon, May 08, 2023 at 09:43:55PM +0200, Thomas Gleixner wrote: > >> +static inline void cpuhp_ap_update_sync_state(enum cpuhp_sync_state state) >> +{ >> + atomic_t *st = this_cpu_ptr(&cpuhp_state.ap_sync_state); >> + int sync = atomic_read(st); >> + >> + while (!atomic_try_cmpxchg(st, &sync, state)); >> +} > > Why isn't: > > atomic_set(st, state); > > any good? Good question. It's only the other side (control CPU) which needs to be careful. Thanks, tglx