Skip to content

locking/mutex: Rewrite basic mutex

Peter Zijlstra linux-bcache lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest8 patches 46 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/8locking/drm: Kill mutex trickerydrivers/gpu/drm/i915/i915_gem_shrinker.c drivers/gpu/drm/msm/msm_gem_shrinker.c+6 -4317 replies
2/8locking/mutex: Rework mutex::ownerinclude/linux/mutex-debug.h include/linux/mutex.h kernel/locking/mutex-debug.c +4 more+187 -3053 replies
3/8locking/mutex: Kill arch specific codearch/alpha/include/asm/mutex.h arch/arc/include/asm/mutex.h arch/arm/include/asm/mutex.h +35 more+0 -10260 replies
4/8locking/mutex: Allow MUTEX_SPIN_ON_OWNER when DEBUG_MUTEXESkernel/Kconfig.locks+1 -10 replies
5/8locking/mutex: Add lock handoff to avoid starvationkernel/locking/mutex.c+119 -2311 replies
6/8locking/mutex: Restructure wait loopkernel/locking/mutex.c+25 -513 replies
7/8locking/mutex: Simplify some ww_mutex code in __mutex_lock_common()kernel/locking/mutex.c+4 -90 replies
8/8locking/mutex: Enable optimistic spinning of woken waiterkernel/locking/mutex.c+54 -234 replies

Reviews trailers per patch

2 of 8 patches have a Reviewed-by or Acked-by.

PatchJason LowWill DeaconWaiman LongChris Wilson
SeriesT-b
1/8
2/8R-b
3/8
4/8
5/8R-b T-b
6/8Requested-by
7/8
8/8

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 4 reviewers.

Read the v1 thread

Cover letter [PATCH -v4 0/8] locking/mutex: Rewrite basic mutex

Hi all,

Since you all should not be sending patches during the merge window, I figured I should to keep you all occupied with something.

Please review, test and otherwise try to break these here patches.

I would like to get these patches into -tip (and -next) once the merge window closes, so please spend these quiet days staring at this stuff.

Small changes only, mostly the handoff logic as suggested by Waiman last time.

---
 arch/alpha/include/asm/mutex.h           |   9 -
 arch/arc/include/asm/mutex.h             |  18 -
 arch/arm/include/asm/mutex.h             |  21 --
 arch/arm64/include/asm/Kbuild            |   1 -
 arch/avr32/include/asm/mutex.h           |   9 -
 arch/blackfin/include/asm/Kbuild         |   1 -
 arch/c6x/include/asm/mutex.h             |   6 -
 arch/cris/include/asm/mutex.h            |   9 -
 arch/frv/include/asm/mutex.h             |   9 -
 arch/h8300/include/asm/mutex.h           |   9 -
 arch/hexagon/include/asm/mutex.h         |   8 -
 arch/ia64/include/asm/mutex.h            |  90 -----
 arch/m32r/include/asm/mutex.h            |   9 -
 arch/m68k/include/asm/Kbuild             |   1 -
 arch/metag/include/asm/Kbuild            |   1 -
 arch/microblaze/include/asm/mutex.h      |   1 -
 arch/mips/include/asm/Kbuild             |   1 -
 arch/mn10300/include/asm/mutex.h         |  16 -
 arch/nios2/include/asm/mutex.h           |   1 -
 arch/openrisc/include/asm/mutex.h        |  27 --
 arch/parisc/include/asm/Kbuild           |   1 -
 arch/powerpc/include/asm/mutex.h         | 132 -------
 arch/s390/include/asm/mutex.h            |   9 -
 arch/score/include/asm/mutex.h           |   6 -
 arch/sh/include/asm/mutex-llsc.h         | 109 ------
 arch/sh/include/asm/mutex.h              |  12 -
 arch/sparc/include/asm/Kbuild            |   1 -
 arch/tile/include/asm/Kbuild             |   1 -
 arch/um/include/asm/Kbuild               |   1 -
 arch/unicore32/include/asm/mutex.h       |  20 --
 arch/x86/include/asm/mutex.h             |   5 -
 arch/x86/include/asm/mutex_32.h          | 110 ------
 arch/x86/include/asm/mutex_64.h          | 127 -------
 arch/xtensa/include/asm/mutex.h          |   9 -
 drivers/gpu/drm/i915/i915_gem_shrinker.c |  26 +-
 drivers/gpu/drm/msm/msm_gem_shrinker.c   |  23 +-
 include/asm-generic/mutex-dec.h          |  88 -----
 include/asm-generic/mutex-null.h         |  19 --
 include/asm-generic/mutex-xchg.h         | 120 -------
 include/asm-generic/mutex.h              |   9 -
 include/linux/mutex-debug.h              |  24 --
 include/linux/mutex.h                    |  46 ++-
 kernel/Kconfig.locks                     |   2 +-
 kernel/locking/mutex-debug.c             |  13 -
 kernel/locking/mutex-debug.h             |  10 -
 kernel/locking/mutex.c                   | 569 ++++++++++++++++++-------------
 kernel/locking/mutex.h                   |  26 --
 kernel/sched/core.c                      |   2 +-
 48 files changed, 364 insertions(+), 1403 deletions(-)