s390/topology: alternative topology for topology-less machines
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Tue, 19 Sep 2017 10:52:22 +0000 (12:52 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 20 Sep 2017 11:47:54 +0000 (13:47 +0200)
commit1b25fda0533462c9cee3a22e8a7bea68fa670af2
tree1a4832e32bc9cb33e9a8e807a47b3045c7f1e3ca
parentba385c0594e723d41790ecfb12c610e6f90c7785
s390/topology: alternative topology for topology-less machines

If running on machines that do not provide topology information we
currently generate a "fake" topology which defines the maximum
distance between each cpu: each cpu will be put into an own drawer.

Historically this used to be the best option for (virtual) machines in
overcommited hypervisors.

For some workloads however it is better to generate a different
topology where all cpus are siblings within a package (all cpus are
core siblings). This shows performance improvements of up to 10%,
depending on the workload.

In order to keep the current behaviour, but also allow to switch to
the different core sibling topology use the existing "topology="
kernel parameter:

Specifying "topology=on" on machines without topology information will
generate the core siblings (fake) topology information, instead of the
default topology information where all cpus have the maximum distance.

On machines which provide topology information specifying
"topology=on" does not have any effect.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/early.c
arch/s390/kernel/topology.c