aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/include/asm/setup.h
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2015-01-14 11:52:33 -0500
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2015-01-23 09:17:04 -0500
commit2c72a44ecdf2a7ceac73844226e97ed2d5dd1e82 (patch)
treea8475e1252115402a27b4c9a822943782085b151 /arch/s390/include/asm/setup.h
parent55b5eb75e7ccdfe94b6ea1be6bba0c21149abecf (diff)
s390/spinlock: add compare-and-delay to lock wait loops
Add the compare-and-delay instruction to the spin-lock and rw-lock retry loops. A CPU executing the compare-and-delay instruction stops until the lock value has changed. This is done to make the locking code for contended locks to behave better in regard to the multi- hreading facility. A thread of a core executing a compare-and-delay will allow the other threads of a core to get a larger share of the core resources. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/include/asm/setup.h')
-rw-r--r--arch/s390/include/asm/setup.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/s390/include/asm/setup.h b/arch/s390/include/asm/setup.h
index 7736fdd72595..b8d1e54b4733 100644
--- a/arch/s390/include/asm/setup.h
+++ b/arch/s390/include/asm/setup.h
@@ -57,6 +57,7 @@ extern void detect_memory_memblock(void);
57#define MACHINE_FLAG_TE (1UL << 15) 57#define MACHINE_FLAG_TE (1UL << 15)
58#define MACHINE_FLAG_TLB_LC (1UL << 17) 58#define MACHINE_FLAG_TLB_LC (1UL << 17)
59#define MACHINE_FLAG_VX (1UL << 18) 59#define MACHINE_FLAG_VX (1UL << 18)
60#define MACHINE_FLAG_CAD (1UL << 19)
60 61
61#define MACHINE_IS_VM (S390_lowcore.machine_flags & MACHINE_FLAG_VM) 62#define MACHINE_IS_VM (S390_lowcore.machine_flags & MACHINE_FLAG_VM)
62#define MACHINE_IS_KVM (S390_lowcore.machine_flags & MACHINE_FLAG_KVM) 63#define MACHINE_IS_KVM (S390_lowcore.machine_flags & MACHINE_FLAG_KVM)
@@ -80,6 +81,7 @@ extern void detect_memory_memblock(void);
80#define MACHINE_HAS_TE (0) 81#define MACHINE_HAS_TE (0)
81#define MACHINE_HAS_TLB_LC (0) 82#define MACHINE_HAS_TLB_LC (0)
82#define MACHINE_HAS_VX (0) 83#define MACHINE_HAS_VX (0)
84#define MACHINE_HAS_CAD (0)
83#else /* CONFIG_64BIT */ 85#else /* CONFIG_64BIT */
84#define MACHINE_HAS_IEEE (1) 86#define MACHINE_HAS_IEEE (1)
85#define MACHINE_HAS_CSP (1) 87#define MACHINE_HAS_CSP (1)
@@ -93,6 +95,7 @@ extern void detect_memory_memblock(void);
93#define MACHINE_HAS_TE (S390_lowcore.machine_flags & MACHINE_FLAG_TE) 95#define MACHINE_HAS_TE (S390_lowcore.machine_flags & MACHINE_FLAG_TE)
94#define MACHINE_HAS_TLB_LC (S390_lowcore.machine_flags & MACHINE_FLAG_TLB_LC) 96#define MACHINE_HAS_TLB_LC (S390_lowcore.machine_flags & MACHINE_FLAG_TLB_LC)
95#define MACHINE_HAS_VX (S390_lowcore.machine_flags & MACHINE_FLAG_VX) 97#define MACHINE_HAS_VX (S390_lowcore.machine_flags & MACHINE_FLAG_VX)
98#define MACHINE_HAS_CAD (S390_lowcore.machine_flags & MACHINE_FLAG_CAD)
96#endif /* CONFIG_64BIT */ 99#endif /* CONFIG_64BIT */
97 100
98/* 101/*