aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2015-02-19 11:53:16 -0500
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2015-02-19 12:05:38 -0500
commit61b0b01686d482205db14987826e1a11dd17d65c (patch)
tree6231308c7dbff1ad58e66de14ff5872d61d3577d
parent4ba2815d3bf38d6a959d2d11b08cf862550dcfcc (diff)
s390/spinlock: disabled compare-and-delay by default
Until we have hard performance data about the effects of CAD in the spinlock loop disable the instruction by default. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r--arch/s390/kernel/early.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c
index 70a329450901..4427ab7ac23a 100644
--- a/arch/s390/kernel/early.c
+++ b/arch/s390/kernel/early.c
@@ -393,17 +393,19 @@ static __init void detect_machine_facilities(void)
393 S390_lowcore.machine_flags |= MACHINE_FLAG_TLB_LC; 393 S390_lowcore.machine_flags |= MACHINE_FLAG_TLB_LC;
394 if (test_facility(129)) 394 if (test_facility(129))
395 S390_lowcore.machine_flags |= MACHINE_FLAG_VX; 395 S390_lowcore.machine_flags |= MACHINE_FLAG_VX;
396 if (test_facility(128))
397 S390_lowcore.machine_flags |= MACHINE_FLAG_CAD;
398#endif 396#endif
399} 397}
400 398
401static int __init nocad_setup(char *str) 399static int __init cad_setup(char *str)
402{ 400{
403 S390_lowcore.machine_flags &= ~MACHINE_FLAG_CAD; 401 int val;
402
403 get_option(&str, &val);
404 if (val && test_facility(128))
405 S390_lowcore.machine_flags |= MACHINE_FLAG_CAD;
404 return 0; 406 return 0;
405} 407}
406early_param("nocad", nocad_setup); 408early_param("cad", cad_setup);
407 409
408static int __init cad_init(void) 410static int __init cad_init(void)
409{ 411{