瀏覽代碼

[S390] topology: add SCHED_MC config option

This allows us to easily check for performance differences seen with
!CONFIG_SCHED_MC and topology=off.
Actually there shouldn't be any (besides a small overhead because of
additional code).

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Heiko Carstens 14 年之前
父節點
當前提交
8d11e02183
共有 2 個文件被更改,包括 12 次插入1 次删除
  1. 10 1
      arch/s390/Kconfig
  2. 2 0
      arch/s390/kernel/sysinfo.c

+ 10 - 1
arch/s390/Kconfig

@@ -196,9 +196,18 @@ config HOTPLUG_CPU
 	  can be controlled through /sys/devices/system/cpu/cpu#.
 	  can be controlled through /sys/devices/system/cpu/cpu#.
 	  Say N if you want to disable CPU hotplug.
 	  Say N if you want to disable CPU hotplug.
 
 
+config SCHED_MC
+	def_bool y
+	prompt "Multi-core scheduler support"
+	depends on SMP
+	help
+	  Multi-core scheduler support improves the CPU scheduler's decision
+	  making when dealing with multi-core CPU chips at a cost of slightly
+	  increased overhead in some places.
+
 config SCHED_BOOK
 config SCHED_BOOK
 	bool "Book scheduler support"
 	bool "Book scheduler support"
-	depends on SMP
+	depends on SMP && SCHED_MC
 	help
 	help
 	  Book scheduler support improves the CPU scheduler's decision making
 	  Book scheduler support improves the CPU scheduler's decision making
 	  when dealing with machines that have several books.
 	  when dealing with machines that have several books.

+ 2 - 0
arch/s390/kernel/sysinfo.c

@@ -106,11 +106,13 @@ static int stsi_15_1_x(struct sysinfo_15_1_x *info, char *page, int len)
 	for (i = 0; i < TOPOLOGY_NR_MAG; i++)
 	for (i = 0; i < TOPOLOGY_NR_MAG; i++)
 		len += sprintf(page + len, " %d", info->mag[i]);
 		len += sprintf(page + len, " %d", info->mag[i]);
 	len += sprintf(page + len, "\n");
 	len += sprintf(page + len, "\n");
+#ifdef CONFIG_SCHED_MC
 	store_topology(info);
 	store_topology(info);
 	len += sprintf(page + len, "CPU Topology SW:     ");
 	len += sprintf(page + len, "CPU Topology SW:     ");
 	for (i = 0; i < TOPOLOGY_NR_MAG; i++)
 	for (i = 0; i < TOPOLOGY_NR_MAG; i++)
 		len += sprintf(page + len, " %d", info->mag[i]);
 		len += sprintf(page + len, " %d", info->mag[i]);
 	len += sprintf(page + len, "\n");
 	len += sprintf(page + len, "\n");
+#endif
 	return len;
 	return len;
 }
 }