Re: [PATCH 03/13] locking/qspinlock: split common mcs queueing code into its own function

From: Peter Zijlstra
Date: Tue Jul 05 2022 - 13:02:25 EST


On Tue, Jul 05, 2022 at 12:38:10AM +1000, Nicholas Piggin wrote:
> +void queued_spin_lock_slowpath(struct qspinlock *lock, u32 val)
> +{
> + if (pv_enabled()) {
> + queued_spin_lock_mcs_queue(lock);
> + return;
> + }
> +
> + if (virt_spin_lock(lock))
> + return;
> +

This reminds me; at the time I meant to make queued_spin_lock_slowpath()
a static_call() and redirect the function appropriately at boot time.
But that was before static_call() was merged and I never seem to have
gotten around to doing that afterwards...