diff options
author | Michael Holzheu <holzheu@linux.vnet.ibm.com> | 2015-08-13 04:35:11 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2015-08-19 04:03:14 -0400 |
commit | c0e5ddab6e985c83714b31a88098e76c39ff084a (patch) | |
tree | 75c79a6d934a2ce0688190f15a8b20131006f7ac | |
parent | b179b037e568a27ab3e8f5bedea1f4455aba7378 (diff) |
s390/numa: re-add DIE sched_domain_topology_level
By accident this level has been removed by the NUMA infrastructure patch.
For non-NUMA systems with CPUs that span more than one book, this makes
the scheduler only use one of the books and the other books remain idle.
Fix this and re-add the missing level.
For NUMA and non-NUMA we have the following scheduling domains and groups:
- SMT (Groups: CPU threads)
- MC (Groups: Cores)
- BOOK (Groups: Books)
For the non-NUMA case we have one last level scheduling domain:
- DIE (Groups: Whole system, has all CPUs -> cpu_cpu_mask)
For the NUMA case we have the following two last level scheduling domains:
- DIE (Groups: NUMA nodes -> cpu_cpu_mask -> returns node siblings)
- NUMA (Groups: Whole system, has all CPUs -> created in sched_init_numa())
Fixes: e8054b654bf5 ("s390/numa: add topology tree infrastructure")
Reported-and-tested-by: Evgeny Cherkashin <Eugene.Crosser@ru.ibm.com>
Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r-- | arch/s390/kernel/topology.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/s390/kernel/topology.c b/arch/s390/kernel/topology.c index 1fbe1f83f89c..bf05e7fc3e70 100644 --- a/arch/s390/kernel/topology.c +++ b/arch/s390/kernel/topology.c | |||
@@ -451,6 +451,7 @@ static struct sched_domain_topology_level s390_topology[] = { | |||
451 | { cpu_thread_mask, cpu_smt_flags, SD_INIT_NAME(SMT) }, | 451 | { cpu_thread_mask, cpu_smt_flags, SD_INIT_NAME(SMT) }, |
452 | { cpu_coregroup_mask, cpu_core_flags, SD_INIT_NAME(MC) }, | 452 | { cpu_coregroup_mask, cpu_core_flags, SD_INIT_NAME(MC) }, |
453 | { cpu_book_mask, SD_INIT_NAME(BOOK) }, | 453 | { cpu_book_mask, SD_INIT_NAME(BOOK) }, |
454 | { cpu_cpu_mask, SD_INIT_NAME(DIE) }, | ||
454 | { NULL, }, | 455 | { NULL, }, |
455 | }; | 456 | }; |
456 | 457 | ||