Re: [PATCH RESEND^2] x86/paravirt: add backoff mechanism to virt_spin_lock
From: Peter Zijlstra
Date: Wed Aug 13 2025 - 10:40:12 EST
On Wed, Aug 13, 2025 at 08:50:43AM +0800, Wangyang Guo wrote:
> When multiple threads waiting for lock at the same time, once lock owner
> releases the lock, waiters will see lock available and all try to lock,
> which may cause an expensive CAS storm.
>
> Binary exponential backoff is introduced. As try-lock attempt increases,
> there is more likely that a larger number threads compete for the same
> lock, so increase wait time in exponential.
You shouldn't be using virt_spin_lock() to begin with. That means you've
misconfigured your guest.
We have paravirt spinlocks for a reason.