diff options
author | Gerald Schaefer <gerald.schaefer@de.ibm.com> | 2011-01-05 06:48:14 -0500 |
---|---|---|
committer | Martin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com> | 2011-01-05 06:47:31 -0500 |
commit | 34b133f8e94e39ff3cf4d1c1f67f2e07cdc3d54e (patch) | |
tree | 462da9df24831e825deca5987e0fd283034cdfde /arch/s390/Kconfig | |
parent | c03017544e3b2e60aa3c8ae451fac01595f1bf11 (diff) |
[S390] mutex: Introduce arch_mutex_cpu_relax()
The spinning mutex implementation uses cpu_relax() in busy loops as a
compiler barrier. Depending on the architecture, cpu_relax() may do more
than needed in this specific mutex spin loops. On System z we also give
up the time slice of the virtual cpu in cpu_relax(), which prevents
effective spinning on the mutex.
This patch replaces cpu_relax() in the spinning mutex code with
arch_mutex_cpu_relax(), which can be defined by each architecture that
selects HAVE_ARCH_MUTEX_CPU_RELAX. The default is still cpu_relax(), so
this patch should not affect other architectures than System z for now.
Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <1290437256.7455.4.camel@thinkpad>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/s390/Kconfig')
-rw-r--r-- | arch/s390/Kconfig | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index 3243f7a52c72..c05d0819f562 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig | |||
@@ -87,6 +87,7 @@ config S390 | |||
87 | select HAVE_KERNEL_LZMA | 87 | select HAVE_KERNEL_LZMA |
88 | select HAVE_KERNEL_LZO | 88 | select HAVE_KERNEL_LZO |
89 | select HAVE_GET_USER_PAGES_FAST | 89 | select HAVE_GET_USER_PAGES_FAST |
90 | select HAVE_ARCH_MUTEX_CPU_RELAX | ||
90 | select ARCH_INLINE_SPIN_TRYLOCK | 91 | select ARCH_INLINE_SPIN_TRYLOCK |
91 | select ARCH_INLINE_SPIN_TRYLOCK_BH | 92 | select ARCH_INLINE_SPIN_TRYLOCK_BH |
92 | select ARCH_INLINE_SPIN_LOCK | 93 | select ARCH_INLINE_SPIN_LOCK |