Re: [PATCH v3 0/5] Switch arm64 over to qrwlock

From: Will Deacon
Date: Thu Oct 19 2017 - 12:53:31 EST


Hi all,

On Thu, Oct 12, 2017 at 01:20:46PM +0100, Will Deacon wrote:
> This is version three of the patches previously posted here:
>
> v1: http://lists.infradead.org/pipermail/linux-arm-kernel/2017-October/534666.html
> v2: http://lists.infradead.org/pipermail/linux-arm-kernel/2017-October/534981.html
>
> Changes since v2 include:
>
> * Drop unused cnt argument
> * Fix typo in UNLOCK Kconfig inlining options
> * Added Tested-by tags
>
> Thanks to all of those who provided review and testing feedback!

I've not had any more feedback on this and the testing results are very
encouraging so I'd like to merge it for 4.15. However, it might make more
sense for the whole thing to go via -tip instead.

Ingo, Peter: what do you prefer?

Will

> Will Deacon (5):
> kernel/locking: Use struct qrwlock instead of struct __qrwlock
> locking/atomic: Add atomic_cond_read_acquire
> kernel/locking: Use atomic_cond_read_acquire when spinning in qrwlock
> arm64: locking: Move rwlock implementation over to qrwlocks
> kernel/locking: Prevent slowpath writers getting held up by fastpath
>
> arch/arm64/Kconfig | 17 ++++
> arch/arm64/include/asm/Kbuild | 1 +
> arch/arm64/include/asm/spinlock.h | 164 +-------------------------------
> arch/arm64/include/asm/spinlock_types.h | 6 +-
> include/asm-generic/atomic-long.h | 3 +
> include/asm-generic/qrwlock.h | 37 ++-----
> include/asm-generic/qrwlock_types.h | 15 ++-
> include/linux/atomic.h | 4 +
> kernel/locking/qrwlock.c | 86 +++--------------
> 9 files changed, 61 insertions(+), 272 deletions(-)
>
> --
> 2.1.4
>