Skip to content

Commit 9a57c37

Browse files
Sebastian Andrzej SiewiorPeter Zijlstra
authored andcommitted
futex: Temporary disable FUTEX_PRIVATE_HASH
Chris Mason reported a performance regression on big iron. Reports of this kind were usually reported as part of a micro benchmark but Chris' test did mimic his real workload. This makes it a real regression. The root cause is rcuref_get() which is invoked during each futex operation. If all threads of an application do this simultaneously then it leads to cache line bouncing and the performance drops. Disable FUTEX_PRIVATE_HASH entirely for this cycle. The performance regression will be addressed in the following cycle enabling the option again. Closes: https://lore.kernel.org/all/[email protected]/ Reported-by: Chris Mason <[email protected]> Signed-off-by: Sebastian Andrzej Siewior <[email protected]> Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Link: https://lkml.kernel.org/r/[email protected]
1 parent d0b3b7b commit 9a57c37

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

init/Kconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1716,9 +1716,13 @@ config FUTEX_PI
17161716
depends on FUTEX && RT_MUTEXES
17171717
default y
17181718

1719+
#
1720+
# marked broken for performance reasons; gives us one more cycle to sort things out.
1721+
#
17191722
config FUTEX_PRIVATE_HASH
17201723
bool
17211724
depends on FUTEX && !BASE_SMALL && MMU
1725+
depends on BROKEN
17221726
default y
17231727

17241728
config FUTEX_MPOL

0 commit comments

Comments
 (0)