All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] powerpc: queued spinlocks and rwlocks
@ 2020-07-02  7:48 ` Nicholas Piggin
  0 siblings, 0 replies; 73+ messages in thread
From: Nicholas Piggin @ 2020-07-02  7:48 UTC (permalink / raw)
  Cc: Nicholas Piggin, Will Deacon, Peter Zijlstra, Boqun Feng,
	Ingo Molnar, Waiman Long, Anton Blanchard, linuxppc-dev,
	linux-kernel, virtualization, kvm-ppc, linux-arch

This series adds an option to use queued spinlocks for powerpc, and
makes it the default for the Book3S-64 subarch.

This effort starts with the generic code so it's very simple but
still very performant. There are optimisations that can be made to
slowpaths, but I think it's better to attack those incrementally
if/when we find things, and try to add the improvements to generic
code as much as possible.

Still in the process of getting numbers and testing, but the
implementation turned out to be surprisingly simple and we have a
config option, so I think we could merge it fairly soon.

Thanks,
Nick

Nicholas Piggin (8):
  powerpc/powernv: must include hvcall.h to get PAPR defines
  powerpc/pseries: use smp_rmb() in H_CONFER spin yield
  powerpc/pseries: move some PAPR paravirt functions to their own file
  powerpc: move spinlock implementation to simple_spinlock
  powerpc/64s: implement queued spinlocks and rwlocks
  powerpc/pseries: implement paravirt qspinlocks for SPLPAR
  powerpc/qspinlock: optimised atomic_try_cmpxchg_lock that adds the
    lock hint
  powerpc/64s: remove paravirt from simple spinlocks (RFC only)

 arch/powerpc/Kconfig                          |  13 +
 arch/powerpc/include/asm/Kbuild               |   2 +
 arch/powerpc/include/asm/atomic.h             |  28 ++
 arch/powerpc/include/asm/paravirt.h           |  84 +++++
 arch/powerpc/include/asm/qspinlock.h          |  75 +++++
 arch/powerpc/include/asm/qspinlock_paravirt.h |   5 +
 arch/powerpc/include/asm/simple_spinlock.h    | 235 +++++++++++++
 .../include/asm/simple_spinlock_types.h       |  21 ++
 arch/powerpc/include/asm/spinlock.h           | 308 +-----------------
 arch/powerpc/include/asm/spinlock_types.h     |  17 +-
 arch/powerpc/kvm/book3s_hv_rm_mmu.c           |   6 -
 arch/powerpc/lib/Makefile                     |   1 -
 arch/powerpc/lib/locks.c                      |  65 ----
 arch/powerpc/platforms/powernv/pci-ioda-tce.c |   1 +
 arch/powerpc/platforms/pseries/Kconfig        |   5 +
 arch/powerpc/platforms/pseries/setup.c        |   6 +-
 include/asm-generic/qspinlock.h               |   4 +
 17 files changed, 488 insertions(+), 388 deletions(-)
 create mode 100644 arch/powerpc/include/asm/paravirt.h
 create mode 100644 arch/powerpc/include/asm/qspinlock.h
 create mode 100644 arch/powerpc/include/asm/qspinlock_paravirt.h
 create mode 100644 arch/powerpc/include/asm/simple_spinlock.h
 create mode 100644 arch/powerpc/include/asm/simple_spinlock_types.h
 delete mode 100644 arch/powerpc/lib/locks.c

-- 
2.23.0


^ permalink raw reply	[flat|nested] 73+ messages in thread

end of thread, other threads:[~2020-07-03 10:53 UTC | newest]

Thread overview: 73+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-02  7:48 [PATCH 0/8] powerpc: queued spinlocks and rwlocks Nicholas Piggin
2020-07-02  7:48 ` Nicholas Piggin
2020-07-02  7:48 ` Nicholas Piggin
2020-07-02  7:48 ` Nicholas Piggin
2020-07-02  7:48 ` [PATCH 1/8] powerpc/powernv: must include hvcall.h to get PAPR defines Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48 ` [PATCH 2/8] powerpc/pseries: use smp_rmb() in H_CONFER spin yield Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  8:28   ` Peter Zijlstra
2020-07-02  8:28     ` Peter Zijlstra
2020-07-02  8:28     ` Peter Zijlstra
2020-07-02  8:28     ` Peter Zijlstra
2020-07-02 10:36     ` Nicholas Piggin
2020-07-02 10:36       ` Nicholas Piggin
2020-07-02 10:36       ` Nicholas Piggin
2020-07-02  7:48 ` [PATCH 3/8] powerpc/pseries: move some PAPR paravirt functions to their own file Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48 ` [PATCH 4/8] powerpc: move spinlock implementation to simple_spinlock Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48 ` [PATCH 5/8] powerpc/64s: implement queued spinlocks and rwlocks Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  8:02   ` Will Deacon
2020-07-02  8:02     ` Will Deacon
2020-07-02  8:02     ` Will Deacon
2020-07-02 10:25     ` Nicholas Piggin
2020-07-02 10:25       ` Nicholas Piggin
2020-07-02 10:25       ` Nicholas Piggin
2020-07-02 10:35       ` Will Deacon
2020-07-02 10:35         ` Will Deacon
2020-07-02 10:35         ` Will Deacon
2020-07-02 10:47         ` Nicholas Piggin
2020-07-02 10:47           ` Nicholas Piggin
2020-07-02 10:47           ` Nicholas Piggin
2020-07-02 10:47           ` Nicholas Piggin
2020-07-02 10:48           ` Will Deacon
2020-07-02 10:48             ` Will Deacon
2020-07-02 10:48             ` Will Deacon
2020-07-02 10:48             ` Will Deacon
2020-07-03 10:52           ` Michael Ellerman
2020-07-03 10:52             ` Michael Ellerman
2020-07-03 10:52             ` Michael Ellerman
2020-07-02  7:48 ` [PATCH 6/8] powerpc/pseries: implement paravirt qspinlocks for SPLPAR Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02 16:15   ` kernel test robot
2020-07-02 16:15     ` kernel test robot
2020-07-02 16:15     ` kernel test robot
2020-07-02 16:15     ` kernel test robot
2020-07-03  0:36     ` Waiman Long
2020-07-03  0:36       ` Waiman Long
2020-07-03  0:36       ` Waiman Long
2020-07-02 21:01   ` Waiman Long
2020-07-02 21:01     ` Waiman Long
2020-07-02 21:01     ` Waiman Long
2020-07-02  7:48 ` [PATCH 7/8] powerpc/qspinlock: optimised atomic_try_cmpxchg_lock that adds the lock hint Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48 ` [PATCH 8/8] powerpc/64s: remove paravirt from simple spinlocks (RFC only) Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin
2020-07-02  7:48   ` Nicholas Piggin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.