This is targetted for 3.10-rc1 or linux-next just after the merge window.
All patches are pushed here for others to apply:
Currently, there can't be multiple instances of single governor_type. If we
a multi-package system, where we have multiple instances of struct policy
package), we can't have multiple instances of same governor. i.e. We can't
multiple instances of ondemand governor for multiple packages.
Governors directory in sysfs is created at /sys/devices/system/cpu/cpufreq/
governor-name/. Which again reflects that there can be only one instance of
governor_type in the system.
This is a bottleneck for multicluster system, where we want different
to use same governor type, but with different tunables.
This patchset is inclined towards fixing this issue. Now we will create
governors directory in cpu/cpu*/cpufreq/ for platforms which have
struct policy alive at any moment. For others the interface is kept same:
@Rafael: Clearly, I don't want to have following patch: "cpufreq: Add
option to enable/disable have_multiple_policies" and added it because of
from Borislov against which nobody else replied :)
So, please drop it if you agree over my comments with earlier version.
- Fixed value of CPUFREQ_GOV_POLICY_EXIT in the correct patch
- Drop indentation fixes from intel_pstate.c
- Few patches from V1 are already picked up by Rafael for 3.9-rc1
- Last two patches are new
- Added dbs_data->exit() routines to free up memory used for struct tuners.
Viresh Kumar (4):
cpufreq: Add per policy governor-init/exit infrastructure
cpufreq: governor: Implement per policy instances of governors
cpufreq: Get rid of "struct global_attr"
cpufreq: Add Kconfig option to enable/disable have_multiple_policies
drivers/cpufreq/Kconfig | 3 +
drivers/cpufreq/acpi-cpufreq.c | 9 +-
drivers/cpufreq/cpufreq.c | 27 +++--
drivers/cpufreq/cpufreq_conservative.c | 148 +++++++++++++---------
drivers/cpufreq/cpufreq_governor.c | 159 ++++++++++++++----------
drivers/cpufreq/cpufreq_governor.h | 43 +++++--
drivers/cpufreq/cpufreq_ondemand.c | 216
drivers/cpufreq/intel_pstate.c | 20 +--
include/linux/cpufreq.h | 44 ++++---
9 files changed, 397 insertions(+), 272 deletions(-)