s390: add SMT support
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 14 Jan 2015 16:52:10 +0000 (17:52 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 22 Jan 2015 11:16:01 +0000 (12:16 +0100)
commit10ad34bc76dfbc49bda327a13012f6754c0c72e0
tree4d76fb6882da2eb3e77b53c4fe64f6367ffbd79d
parent1f6b83e5e4d3aed46eac1d219322fba9c7341cd8
s390: add SMT support

The multi-threading facility is introduced with the z13 processor family.
This patch adds code to detect the multi-threading facility. With the
facility enabled each core will surface multiple hardware threads to the
system. Each hardware threads looks like a normal CPU to the operating
system with all its registers and properties.

The SCLP interface reports the SMT topology indirectly via the maximum
thread id. Each reported CPU in the result of a read-scp-information
is a core representing a number of hardware threads.

To reflect the reduced CPU capacity if two hardware threads run on a
single core the MT utilization counter set is used to normalize the
raw cputime obtained by the CPU timer deltas. This scaled cputime is
reported via the taskstats interface. The normal /proc/stat numbers
are based on the raw cputime and are not affected by the normalization.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
18 files changed:
arch/s390/Kconfig
arch/s390/include/asm/cpu_mf.h
arch/s390/include/asm/reset.h
arch/s390/include/asm/sclp.h
arch/s390/include/asm/sigp.h
arch/s390/include/asm/smp.h
arch/s390/include/asm/sysinfo.h
arch/s390/include/asm/topology.h
arch/s390/kernel/base.S
arch/s390/kernel/dis.c
arch/s390/kernel/ipl.c
arch/s390/kernel/machine_kexec.c
arch/s390/kernel/smp.c
arch/s390/kernel/sysinfo.c
arch/s390/kernel/topology.c
arch/s390/kernel/vtime.c
drivers/s390/char/sclp_early.c
drivers/s390/cio/cio.c