Messages in this thread | | | Date | Fri, 22 Oct 2021 10:23:02 +0100 | From | Mark Rutland <> | Subject | Re: [PATCH] locking: Generic ticket lock |
| |
Hi Peter,
On Thu, Oct 21, 2021 at 03:05:15PM +0200, Peter Zijlstra wrote: > +static __always_inline void ticket_lock(arch_spinlock_t *lock) > +{ > + u32 val = atomic_fetch_add_acquire(ONE_TICKET, lock);
I wonder, should these atomics be arch_atomic_*(), in case an arch_ or raw_ lock is used in noinstr code? The plain atomic_*() forms can have explicit inline instrumentation.
I haven't seen any issues with qspinlock so far, and that also uses the (instrumented) atomics, so maybe that's not actually a problem, but I'm not sure what we intend here w.r.t. instrumentability.
Thanks, Mark.
| |