cpupower: Enable disabled Cstates if they are below max latency
cpupower idle-set -D <latency> currently only disables all C-states that have a higher latency than the specified <latency>. But if deep sleep states were already disabled and have a lower latency, they should get enabled again. For example: This call: cpupower idle-set -D 30 disables all C-states with a higher or equal latency than 30. If one then calls: cpupower idle-set -D 100 C-states with a latency between 30-99 will get enabled again with this patch now. It is ensured that only C-states with a latency of 100 and higher are disabled. Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
645209472d
commit
19c9fb896f
|
@ -20,7 +20,9 @@ Disable a specific processor sleep state.
|
|||
Enable a specific processor sleep state.
|
||||
.TP
|
||||
\fB\-D\fR \fB\-\-disable-by-latency\fR <LATENCY>
|
||||
Disable all idle states with a equal or higher latency than <LATENCY>
|
||||
Disable all idle states with a equal or higher latency than <LATENCY>.
|
||||
|
||||
Enable all idle states with a latency lower than <LATENCY>.
|
||||
.TP
|
||||
\fB\-E\fR \fB\-\-enable-all\fR
|
||||
Enable all idle states if not enabled already.
|
||||
|
|
|
@ -148,12 +148,21 @@ int cmd_idle_set(int argc, char **argv)
|
|||
(cpu, idlestate);
|
||||
state_latency = sysfs_get_idlestate_latency
|
||||
(cpu, idlestate);
|
||||
if (disabled == 1 || latency > state_latency)
|
||||
if (disabled == 1) {
|
||||
if (latency > state_latency){
|
||||
ret = sysfs_idlestate_disable
|
||||
(cpu, idlestate, 0);
|
||||
if (ret == 0)
|
||||
printf(_("Idlestate %u enabled on CPU %u\n"), idlestate, cpu);
|
||||
}
|
||||
continue;
|
||||
ret = sysfs_idlestate_disable
|
||||
(cpu, idlestate, 1);
|
||||
if (ret == 0)
|
||||
}
|
||||
if (latency <= state_latency){
|
||||
ret = sysfs_idlestate_disable
|
||||
(cpu, idlestate, 1);
|
||||
if (ret == 0)
|
||||
printf(_("Idlestate %u disabled on CPU %u\n"), idlestate, cpu);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'E':
|
||||
|
|
Loading…
Reference in a new issue