]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
rqspinlock: Add basic support for CONFIG_PARAVIRT
authorKumar Kartikeya Dwivedi <memxor@gmail.com>
Sun, 16 Mar 2025 04:05:30 +0000 (21:05 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 19 Mar 2025 15:03:05 +0000 (08:03 -0700)
commitecbd8047526d3e9681043c287dea7bc67ef33eb4
treee43a42794fc1b248f2040e43b0aa93da7175a270
parentc9102a68c070134ade5c941d7315481a77bcea53
rqspinlock: Add basic support for CONFIG_PARAVIRT

We ripped out PV and virtualization related bits from rqspinlock in an
earlier commit, however, a fair lock performs poorly within a virtual
machine when the lock holder is preempted. As such, retain the
virt_spin_lock fallback to test and set lock, but with timeout and
deadlock detection. We can do this by simply depending on the
resilient_tas_spin_lock implementation from the previous patch.

We don't integrate support for CONFIG_PARAVIRT_SPINLOCKS yet, as that
requires more involved algorithmic changes and introduces more
complexity. It can be done when the need arises in the future.

Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Link: https://lore.kernel.org/r/20250316040541.108729-15-memxor@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
arch/x86/include/asm/rqspinlock.h [new file with mode: 0644]
include/asm-generic/rqspinlock.h
kernel/bpf/rqspinlock.c