Re: [PATCH 00/11] MIPS: cmpxchg(), xchg() fixes & queued locks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06/09/2017 20:26, Paul Burton wrote:
> This series makes a bunch of cleanups & improvements to the cmpxchg() &
> xchg() macros & functions, allowing them to be used on values smaller
> than 4 bytes, then switches MIPS over to use generic queued spinlocks &
> queued read/write locks.
> 
> Applies atop v4.12-rc4.
> 
> Paul Burton (11):
>   MIPS: cmpxchg: Unify R10000_LLSC_WAR & non-R10000_LLSC_WAR cases
>   MIPS: cmpxchg: Pull xchg() asm into a macro
>   MIPS: cmpxchg: Use __compiletime_error() for bad cmpxchg() pointers
>   MIPS: cmpxchg: Error out on unsupported xchg() calls
>   MIPS: cmpxchg: Drop __xchg_u{32,64} functions
>   MIPS: cmpxchg: Implement __cmpxchg() as a function
>   MIPS: cmpxchg: Implement 1 byte & 2 byte xchg()
>   MIPS: cmpxchg: Implement 1 byte & 2 byte cmpxchg()
>   MIPS: cmpxchg: Rearrange __xchg() arguments to match xchg()
>   MIPS: Use queued read/write locks (qrwlock)
>   MIPS: Use queued spinlocks (qspinlock)
> 
>  arch/mips/Kconfig                      |   2 +
>  arch/mips/include/asm/Kbuild           |   2 +
>  arch/mips/include/asm/cmpxchg.h        | 280 ++++++++++------------
>  arch/mips/include/asm/spinlock.h       | 426 +--------------------------------
>  arch/mips/include/asm/spinlock_types.h |  34 +--
>  arch/mips/kernel/Makefile              |   2 +-
>  arch/mips/kernel/cmpxchg.c             | 109 +++++++++
>  7 files changed, 239 insertions(+), 616 deletions(-)
>  create mode 100644 arch/mips/kernel/cmpxchg.c

FWIW, I've been running this patchset, along with the cpu_has_* patches, on my
SGI Octane for two weeks now, constantly compiling code, and haven't seen any
issues thus far.

Tested-by: Joshua Kinard <kumba@xxxxxxxxxx>




[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux