On Tue, Feb 02, 2021 at 10:57:12AM -0800, Ben Gardon wrote:
rwlocks do not currently have any facility to detect contention
like spinlocks do. In order to allow users of rwlocks to better
manage
latency, add contention detection for queued rwlocks.
CC: Ingo Molnar <mingo@xxxxxxxxxx>
CC: Will Deacon <will@xxxxxxxxxx>
Acked-by: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Acked-by: Davidlohr Bueso <dbueso@xxxxxxx>
Acked-by: Waiman Long <longman@xxxxxxxxxx>
Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Signed-off-by: Ben Gardon <bgardon@xxxxxxxxxx>
When building mips:defconfig, this patch results in:
Error log:
In file included from include/linux/spinlock.h:90,
from include/linux/ipc.h:5,
from include/uapi/linux/sem.h:5,
from include/linux/sem.h:5,
from include/linux/compat.h:14,
from arch/mips/kernel/asm-offsets.c:12:
arch/mips/include/asm/spinlock.h:17:28: error: redefinition of
'queued_spin_unlock'
17 | #define queued_spin_unlock queued_spin_unlock
| ^~~~~~~~~~~~~~~~~~
arch/mips/include/asm/spinlock.h:22:20: note: in expansion of macro
'queued_spin_unlock'
22 | static inline void queued_spin_unlock(struct qspinlock
*lock)
| ^~~~~~~~~~~~~~~~~~
In file included from include/asm-generic/qrwlock.h:17,
from ./arch/mips/include/generated/asm/qrwlock.h:1,
from arch/mips/include/asm/spinlock.h:13,
from include/linux/spinlock.h:90,
from include/linux/ipc.h:5,
from include/uapi/linux/sem.h:5,
from include/linux/sem.h:5,
from include/linux/compat.h:14,
from arch/mips/kernel/asm-offsets.c:12:
include/asm-generic/qspinlock.h:94:29: note: previous definition of
'queued_spin_unlock' was here
94 | static __always_inline void queued_spin_unlock(struct
qspinlock *lock)
| ^~~~~~~~~~~~~~~~~~