linux/arch/s390/kernel
Heiko Carstens 1b25fda053 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>
2017-09-20 13:47:54 +02:00
..
vdso32 s390/mm: use new mm defines instead of magic values 2017-07-26 08:25:09 +02:00
vdso64 s390/mm: use new mm defines instead of magic values 2017-07-26 08:25:09 +02:00
.gitignore
als.c s390/sclp: don't add new lines to each printed string 2017-02-08 14:13:20 +01:00
asm-offsets.c s390/time: add support for the TOD clock epoch extension 2017-07-26 08:25:14 +02:00
audit.c
audit.h
base.S s390/kdump: fix nosmt kernel parameter 2015-06-25 09:39:26 +02:00
cache.c s390/cpuinfo: show dynamic and static cpu mhz 2016-06-13 15:58:17 +02:00
compat_audit.c
compat_linux.c s390: kernel: Audit and remove any unnecessary uses of module.h 2017-02-17 07:40:31 +01:00
compat_linux.h s390: add support for vector extension 2014-10-09 09:14:13 +02:00
compat_ptrace.h
compat_signal.c signal: Remove kernel interal si_code magic 2017-07-24 14:30:28 -05:00
compat_wrapper.c s390: add a system call for guarded storage 2017-03-22 08:14:25 +01:00
cpcmd.c s390/cpcmd,vmcp: avoid GFP_DMA allocations 2017-08-09 09:09:35 -04:00
crash_dump.c s390/kdump: Add final note 2017-03-28 16:54:31 +02:00
debug.c s390/time: add support for the TOD clock epoch extension 2017-07-26 08:25:14 +02:00
diag.c s390/diag: add diag26c support 2017-06-20 15:44:15 -04:00
dis.c s390: kernel: Audit and remove any unnecessary uses of module.h 2017-02-17 07:40:31 +01:00
dumpstack.c s390/mm: use new mm defines instead of magic values 2017-07-26 08:25:09 +02:00
early_printk.c s390/sclp: make early sclp code readable 2017-02-08 14:13:19 +01:00
early.c s390/topology: alternative topology for topology-less machines 2017-09-20 13:47:54 +02:00
ebcdic.c s390: kernel: Audit and remove any unnecessary uses of module.h 2017-02-17 07:40:31 +01:00
entry.h s390: add a system call for guarded storage 2017-03-22 08:14:25 +01:00
entry.S s390,kvm: provide plumbing for machines checks when running guests 2017-06-28 12:57:47 +02:00
fpu.c s390/fpu: improve kernel_fpu_[begin|end] 2016-08-29 11:05:01 +02:00
ftrace.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2017-05-16 09:24:44 -07:00
guarded_storage.c s390: add a system call for guarded storage 2017-03-22 08:14:25 +01:00
head64.S s390/time: add support for the TOD clock epoch extension 2017-07-26 08:25:14 +02:00
head_kdump.S s390: remove 31 bit support 2015-03-25 11:49:33 +01:00
head.S s390/time: add support for the TOD clock epoch extension 2017-07-26 08:25:14 +02:00
idle.c sched/headers: Prepare to move cputime functionality from <linux/sched.h> into <linux/sched/cputime.h> 2017-03-02 08:42:39 +01:00
ipl.c s390/ipl: revert Load Normal semantics for LPAR CCW-type re-IPL 2017-06-14 15:35:31 +02:00
irq.c s390/time: add support for the TOD clock epoch extension 2017-07-26 08:25:14 +02:00
jump_label.c s390: Prevent hotplug rwsem recursion 2017-05-26 10:10:46 +02:00
kdebugfs.c s390/debugfs: introduce top-level 's390' directory 2017-03-22 08:29:15 +01:00
kprobes.c s390: Prevent hotplug rwsem recursion 2017-05-26 10:10:46 +02:00
lgr.c s390: kernel: make lgr explicitly non-modular 2016-10-31 17:55:42 +01:00
machine_kexec.c kexec: move vmcoreinfo out of the kernel's .bss section 2017-07-12 16:25:59 -07:00
Makefile s390/debugfs: introduce top-level 's390' directory 2017-03-22 08:29:15 +01:00
mcount.S s390: move exports to definitions 2016-08-07 23:47:20 -04:00
module.c s390: add no-execute support 2017-02-08 14:13:25 +01:00
nmi.c KVM: s390: Backup the guest's machine check info 2017-06-27 16:05:38 +02:00
os_info.c s390: proper type casts for csum_partial invocations 2017-01-16 07:27:53 +01:00
perf_cpum_cf_events.c s390/cpum_cf: correct variable naming (cleanup) 2017-03-31 07:53:33 +02:00
perf_cpum_cf.c s390/cpum_cf: make hw_perf_event_update() a void function 2017-03-31 07:53:35 +02:00
perf_cpum_sf.c s390/perf: fix bug when creating per-thread event 2017-09-13 16:34:23 +02:00
perf_event.c s390/perf: fix null string in perf list pmu command 2017-06-12 16:26:00 +02:00
pgm_check.S s390: remove 31 bit support 2015-03-25 11:49:33 +01:00
process.c arch: remove unused macro/function thread_saved_pc() 2017-06-28 16:13:57 -07:00
processor.c s390/cpuinfo: show facilities as reported by stfle 2017-03-22 08:29:02 +01:00
ptrace.c s390/ptrace: guarded storage regset for the current task 2017-06-12 16:25:59 +02:00
reipl.S s390/dump: rework CPU register dump code 2015-11-27 09:24:14 +01:00
relocate_kernel.S s390/mm: use new mm defines instead of magic values 2017-07-26 08:25:09 +02:00
runtime_instr.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/task_stack.h> 2017-03-02 08:42:36 +01:00
setup.c s390/vmcp: make use of contiguous memory allocator 2017-08-09 09:09:35 -04:00
signal.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/task_stack.h> 2017-03-02 08:42:36 +01:00
smp.c s390/smp: convert cpuhp_setup_state() return code to zero on success 2017-08-23 13:31:49 +02:00
stacktrace.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/debug.h> 2017-03-02 08:42:34 +01:00
suspend.c s390/mm: tag normal pages vs pages used in page tables 2017-07-25 06:55:28 +02:00
swsusp.S s390/sclp: don't add new lines to each printed string 2017-02-08 14:13:20 +01:00
sys_s390.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
syscalls.S s390: add a system call for guarded storage 2017-03-22 08:14:25 +01:00
sysinfo.c S390/sysinfo: use uuid_is_null instead of opencoding it 2017-06-05 16:59:06 +02:00
time.c s390/dasd: Change unsigned long long to unsigned long 2017-08-23 13:31:51 +02:00
topology.c s390/topology: alternative topology for topology-less machines 2017-09-20 13:47:54 +02:00
trace.c s390/diag: avoid lockdep recursion 2016-02-11 13:05:56 +01:00
traps.c s390: add missing header includes for type checking 2017-06-12 16:25:55 +02:00
uprobes.c s390: rename struct psw_bits members 2017-06-12 16:26:02 +02:00
vdso.c s390/mm: tag normal pages vs pages used in page tables 2017-07-25 06:55:28 +02:00
vmlinux.lds.S s390: move _text symbol to address higher than zero 2017-05-09 10:44:38 +02:00
vtime.c s390/cputime: simplify account_system_index_scaled 2017-06-12 16:25:57 +02:00