Messages in this thread | | | Date | Tue, 9 May 2023 13:35:48 +0200 | From | Peter Zijlstra <> | Subject | Re: [patch v3 18/36] [patch V2 18/38] cpu/hotplug: Add CPU state tracking and synchronization |
| |
On Tue, May 09, 2023 at 01:07:23PM +0200, 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?
Hmm, should at the very least be atomic_set_release(), but if you want the full barrier then:
(void)atomic_xchg(st, state);
is the much saner way to write the above.
| |