Subject: [PATCH] Don't export sched_mc_power_savings on multi-socket single core system

Fix to prevent sched_mc_power_saving from being exported through sysfs
for multi-scoket single core system. Max cores should be always greater than
one (1). My earlier patch that introduced fix for not exporting
'sched_mc_power_saving' on laptops broke it on multi-socket single core
system. This fix addresses issue on both laptop and multi-socket single
core system.
Below are the Test results:

1. Single socket - multi-core
Before Patch: Does not export 'sched_mc_power_saving'
After Patch: Does not export 'sched_mc_power_saving'
Result: Pass

2. Multi Socket - single core
Before Patch: exports 'sched_mc_power_saving'
After Patch: Does not export 'sched_mc_power_saving'
Result: Pass

3. Multi Socket - Multi core
Before Patch: exports 'sched_mc_power_saving'
After Patch: exports 'sched_mc_power_saving'


Signed-off-by: Mahesh Salgaonkar <[email protected]>

Index: linux-2.6/arch/x86/include/asm/topology.h
===================================================================
--- linux-2.6.orig/arch/x86/include/asm/topology.h
+++ linux-2.6/arch/x86/include/asm/topology.h
@@ -203,7 +203,8 @@ struct pci_bus;
void set_pci_bus_resources_arch_default(struct pci_bus *b);

#ifdef CONFIG_SMP
-#define mc_capable() (cpumask_weight(cpu_core_mask(0)) != nr_cpu_ids)
+#define mc_capable() (boot_cpu_data.x86_max_cores > 1) && \
+ (cpumask_weight(cpu_core_mask(0)) != nr_cpu_ids)
#define smt_capable() (smp_num_siblings > 1)
#endif


2009-04-08 12:02:28

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] Don't export sched_mc_power_savings on multi-socket single core system


* Mahesh Jagannath Salgaonkar <[email protected]> wrote:

> Fix to prevent sched_mc_power_saving from being exported through
> sysfs for multi-scoket single core system. Max cores should be
> always greater than one (1). My earlier patch that introduced fix
> for not exporting 'sched_mc_power_saving' on laptops broke it on
> multi-socket single core system. This fix addresses issue on both
> laptop and multi-socket single core system. Below are the Test
> results:

> +#define mc_capable() (boot_cpu_data.x86_max_cores > 1) && \
> + (cpumask_weight(cpu_core_mask(0)) != nr_cpu_ids)
> #define smt_capable() (smp_num_siblings > 1)

patch looks good but is whitespace damaged (all tabs were converted
to spaces). See Documentation/email-clients.txt about how to set up
your client.

Ingo