+++ /dev/null
-From: Gerald Schaefer <geraldsc@de.ibm.com>
-Subject: kernel: disable cpu topology support by default
-References: bnc#450096,LTC#50392
-
-Symptom: System performance may be lower than expected.
-Problem: If the hardware supports the configuration-topology facility
- the system cpu topology information will be passed to the
- scheduler. The scheduler bases its load balancing decisions
- also on the cpu topology. This may have a negative performance
- impact on machines where I/O interrupts are distributed unevenly
- to cpus. Those cpus which are grouped together and get more I/O
- interrupts than others will tend to have a higher average load.
-Solution: Disable cpu topology support by default and add a kernel parameter
- which allows to switch it on. In order to switch support on
- topology=on needs to be added to the kernel parameter line.
-
-Acked-by: John Jolly <jjolly@suse.de>
----
- Documentation/kernel-parameters.txt | 8 ++++++++
- arch/s390/kernel/topology.c | 12 +++++++++++-
- 2 files changed, 19 insertions(+), 1 deletion(-)
-
---- a/arch/s390/kernel/topology.c
-+++ b/arch/s390/kernel/topology.c
-@@ -59,6 +59,7 @@ struct core_info {
- cpumask_t mask;
- };
-
-+static int topology_enabled;
- static void topology_work_fn(struct work_struct *work);
- static struct tl_info *tl_info;
- static struct core_info core_info;
-@@ -79,7 +80,7 @@ cpumask_t cpu_coregroup_map(unsigned int
- cpumask_t mask;
-
- cpus_clear(mask);
-- if (!machine_has_topology)
-+ if (!topology_enabled || !machine_has_topology)
- return cpu_present_map;
- spin_lock_irqsave(&topology_lock, flags);
- while (core) {
-@@ -264,6 +265,15 @@ static void topology_interrupt(__u16 cod
- schedule_work(&topology_work);
- }
-
-+static int __init early_parse_topology(char *p)
-+{
-+ if (strncmp(p, "on", 2))
-+ return 0;
-+ topology_enabled = 1;
-+ return 0;
-+}
-+early_param("topology", early_parse_topology);
-+
- static int __init init_topology_update(void)
- {
- int rc;
---- a/Documentation/kernel-parameters.txt
-+++ b/Documentation/kernel-parameters.txt
-@@ -2194,6 +2194,14 @@ and is between 256 and 4096 characters.
- See comment before function dc390_setup() in
- drivers/scsi/tmscsim.c.
-
-+ topology= [S390]
-+ Format: {off | on}
-+ Specify if the kernel should make use of the cpu
-+ topology informations if the hardware supports these.
-+ The scheduler will make use of these informations and
-+ e.g. base its process migration decisions on it.
-+ Default is off.
-+
- tp720= [HW,PS2]
-
- trix= [HW,OSS] MediaTrix AudioTrix Pro