lkml.org 
[lkml]   [2022]   [Jul]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH v2 00/12] locking/qspinlock: simplify code generation
Date
This accounts for comments from last post. Thanks for the feedback.

Thanks,
Nick

v2:
- Remove BUILD_BUG_ON contradiction
- Add Longman's for pending bit for !paravirt case
- Make queued_spin_lock_mcs_queue __always_inline
- Drop cmpxchg_acquire->trylock patch that changed generated
code slightly (and had wild indenting).
- Fix dropped acquire memory ordering in pv_wait_node cleanup
(and renamed it to pv_wait_node_acquire).


Nicholas Piggin (12):
locking/qspinlock: remove pv_node abstraction
locking/qspinlock: inline mcs_spinlock functions into qspinlock
locking/qspinlock: split common mcs queueing code into its own
function
locking/qspinlock: move pv lock word helpers into qspinlock.c
locking/qspinlock: be less clever with the preprocessor
locking/qspinlock: merge qspinlock_paravirt.h into qspinlock.c
locking/qspinlock: remove arch qspinlock_paravirt.h includes
locking/qspinlock: stop renaming queued_spin_lock_slowpath to
native_queued_spin_lock_slowpath
locking/qspinlock: rename __pv_init_lock_hash to pv_spinlocks_init
locking/qspinlock: paravirt use simple trylock in case idx overflows
locking/qspinlock: separate pv_wait_node from the non-paravirt path
locking/qspinlock: simplify pv_wait_head_or_lock calling scheme

arch/alpha/include/asm/Kbuild | 1 -
arch/arc/include/asm/Kbuild | 1 -
arch/arm/include/asm/mcs_spinlock.h | 24 -
arch/arm64/include/asm/Kbuild | 1 -
arch/hexagon/include/asm/Kbuild | 1 -
arch/ia64/include/asm/Kbuild | 1 -
arch/m68k/include/asm/Kbuild | 1 -
arch/microblaze/include/asm/Kbuild | 1 -
arch/mips/include/asm/Kbuild | 1 -
arch/nios2/include/asm/Kbuild | 1 -
arch/parisc/include/asm/Kbuild | 1 -
arch/powerpc/include/asm/Kbuild | 1 -
arch/powerpc/include/asm/qspinlock.h | 45 +-
arch/powerpc/include/asm/qspinlock_paravirt.h | 7 -
arch/powerpc/include/asm/spinlock.h | 2 +-
arch/s390/include/asm/Kbuild | 1 -
arch/sh/include/asm/Kbuild | 1 -
arch/sparc/include/asm/Kbuild | 1 -
arch/um/include/asm/Kbuild | 1 -
arch/x86/hyperv/hv_spinlock.c | 2 +-
arch/x86/include/asm/Kbuild | 1 -
arch/x86/include/asm/qspinlock.h | 19 +-
arch/x86/include/asm/qspinlock_paravirt.h | 72 --
arch/x86/kernel/kvm.c | 2 +-
arch/x86/kernel/paravirt-spinlocks.c | 71 ++
arch/x86/kernel/paravirt.c | 2 +-
arch/x86/xen/spinlock.c | 2 +-
arch/xtensa/include/asm/Kbuild | 1 -
include/asm-generic/mcs_spinlock.h | 13 -
include/asm-generic/qspinlock.h | 6 +
kernel/locking/mcs_spinlock.h | 121 ---
kernel/locking/qspinlock.c | 835 ++++++++++++++----
kernel/locking/qspinlock_paravirt.h | 562 ------------
33 files changed, 764 insertions(+), 1038 deletions(-)
delete mode 100644 arch/arm/include/asm/mcs_spinlock.h
delete mode 100644 arch/powerpc/include/asm/qspinlock_paravirt.h
delete mode 100644 arch/x86/include/asm/qspinlock_paravirt.h
delete mode 100644 include/asm-generic/mcs_spinlock.h
delete mode 100644 kernel/locking/mcs_spinlock.h
delete mode 100644 kernel/locking/qspinlock_paravirt.h

--
2.35.1

\
 
 \ /
  Last update: 2022-07-13 09:07    [W:0.145 / U:1.092 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site