linux/Documentation/features/locking
Alexandre Ghiti ab83647fad
riscv: Add qspinlock support
In order to produce a generic kernel, a user can select
CONFIG_COMBO_SPINLOCKS which will fallback at runtime to the ticket
spinlock implementation if Zabha or Ziccrse are not present.

Note that we can't use alternatives here because the discovery of
extensions is done too late and we need to start with the qspinlock
implementation because the ticket spinlock implementation would pollute
the spinlock value, so let's use static keys.

This is largely based on Guo's work and Leonardo reviews at [1].

Link: https://lore.kernel.org/linux-riscv/20231225125847.2778638-1-guoren@kernel.org/ [1]
Signed-off-by: Guo Ren <guoren@kernel.org>
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Reviewed-by: Andrea Parri <parri.andrea@gmail.com>
Link: https://lore.kernel.org/r/20241103145153.105097-14-alexghiti@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
2024-11-11 07:33:20 -08:00
..
cmpxchg-local Documentation: Drop IA64 from feature descriptions 2023-09-11 08:13:18 +00:00
lockdep Documentation: Drop IA64 from feature descriptions 2023-09-11 08:13:18 +00:00
queued-rwlocks Documentation: Drop IA64 from feature descriptions 2023-09-11 08:13:18 +00:00
queued-spinlocks riscv: Add qspinlock support 2024-11-11 07:33:20 -08:00