Adjusting CPU core voltages via sysfs on Centrino
PATCH 1/1 Adjusting CPU core voltages via sysfs on Centrino
Hi everyone.
This patch makes speedstep-centrino add a read/writable /sys/devices/system/cpu/cpu0/cpufreq/scaling_voltages file, allowing hand-tuning the voltages table on the Centrino. It only permits lowering voltages relative to what was originally determined from ACPI or tables.
I don't know if this is a desirable thing to have in a standard kernel. Only tested on a Dothan with voltage tables from ACPI. Comments are very welcome. The patch might be considered bloated and/or spaghetti-code. It is Kconfigurable with CONFIG_X86_SPEEDSTEP_CENTRINO_ADJUST_VOLTAGES.
Perhaps instability should be mentioned in the Kconfig help as a possible side-effect of lowering the voltage too much.
/ Rickard Holmberg
arch/i386/kernel/cpu/cpufreq/Kconfig +12 -0
@@ -131,6 +131,18 @@ config X86_SPEEDSTEP_CENTRINO_ACPI If in doubt, say Y. +config X86_SPEEDSTEP_CENTRINO_ADJUST_VOLTAGES + bool "Allow adjusting Pentium M core voltages" + depends on X86_SPEEDSTEP_CENTRINO + default n + help + Allow hand-tuning the Pentium M CPU core voltage tables + through the sysfs file system. It is primarily useful to lower + the CPU core temperature and reduce power consumption in + battery powered environments. + + If in doubt, say N. + config X86_SPEEDSTEP_CENTRINO_TABLE bool "Built-in tables for Banias CPUs" depends on X86_SPEEDSTEP_CENTRINO
arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c +172 -1
203 lines not on this page · raw message
Hi,
I'd suggest _not_ applying this patch to the Linux kernel as per the same reasons we do not have table overrides / voltage overrides for powernow-k8. In addition, the voltage encoding does change across EST revisions, IIRC. Thirdly, with the new powerop infrastructure in discussion, I'd like to avoid adding things we'd need to handle in an "compatibility mode".
Thanks,
Dominik