[RFC PATCH v1 0/2] sched: unified sched_powersavings tunables

From: Vaidyanathan Srinivasan
Date: Mon Jan 16 2012 - 11:22:44 EST


Hi,

I have created the following RFC patch based on the recent discussions
and consensus on simplifying the power aware scheduler in the kernel.

Ref: LWN: Rethinking power-aware scheduling
http://lwn.net/Articles/474915/

The goal of the unified tunable are as follows:

* Simple and single tunable for different (all) topology
* Good default powersavings for kernel
* Potential to map this setting to other subsystems like cpufreq and
cpuidle

What this patch does: (first step)

* Create a single sched_powersavings tunable in sysfs
* Enable current sched_mc and sched_smt features based on
value of this single tunable

What this patch is yet to do:

* Tune the default power savings to pack packages only till
a threshold of say 50%
* Add notifiers to change setting on battery/AC transitions
* Feed the thresholds from arch specific code so that different archs
can do 'optimal' packing based on topology
* May be move this to /sys/device/system/powersavings and add additional
platform tunables like x86_energy_perf_policy?

This RFC has only x86 changes and has been tested on dual-socket,
quad-core,HT configuration.

Please let me know your comments and feedback.

Thanks,
Vaidy

---

Vaidyanathan Srinivasan (2):
sched: unified sched_powersavings sysfs tunable
sched: fix group_capacity for thread level consolidation


arch/x86/Kconfig | 20 ++++--------
arch/x86/kernel/smpboot.c | 2 +
block/blk.h | 11 ++++---
drivers/base/cpu.c | 2 +
include/linux/sched.h | 29 +++++++++--------
include/linux/topology.h | 9 +----
kernel/sched/core.c | 75 +++++++++++----------------------------------
kernel/sched/fair.c | 38 ++++++++++++++++-------
8 files changed, 77 insertions(+), 109 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/