powerpc/qspinlock: powerpc qspinlock implementation
authorNicholas Piggin <npiggin@gmail.com>
Mon, 28 Nov 2022 03:11:13 +0000 (13:11 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 2 Dec 2022 06:48:02 +0000 (17:48 +1100)
commit9f61521c7a284e799050cd2adacc9a611bd2b491
treeea553dc89ef9d27ee506c2f76b413869fc352d31
parent247f34f7b80357943234f93f247a1ae6b6c3a740
powerpc/qspinlock: powerpc qspinlock implementation

Add a powerpc specific implementation of queued spinlocks. This is the
build framework with a very simple (non-queued) spinlock implementation
to begin with. Later changes add queueing, and other features and
optimisations one-at-a-time. It is done this way to more easily see how
the queued spinlocks are built, and to make performance and correctness
bisects more useful.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
[mpe: Drop paravirt.h & processor.h changes to fix 32-bit build]
[mpe: Fix 32-bit build of qspinlock.o & disallow GENERIC_LOCKBREAK per Nick]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/CONLLQB6DCJU.2ZPOS7T6S5GRR@bobo
arch/powerpc/Kconfig
arch/powerpc/include/asm/qspinlock.h
arch/powerpc/include/asm/qspinlock_paravirt.h [deleted file]
arch/powerpc/include/asm/qspinlock_types.h [new file with mode: 0644]
arch/powerpc/include/asm/spinlock.h
arch/powerpc/include/asm/spinlock_types.h
arch/powerpc/lib/Makefile
arch/powerpc/lib/qspinlock.c [new file with mode: 0644]