AMDpctl Code
Status: Beta
Brought to you by:
apritzel
amdpctl
================
amdpctl allows access to the P-states of recent AMD processors.
P-states define a valid combination of voltage and frequency, to which
the processor can switch easily to save power. In opposite to C-states the
CPU remains fully operational, though at a possibly lower speed.
Normally P-states are processor defined and can sometimes be tweaked by
the BIOS. amdpctl can query the current P-states settings and also allows
to change it. On this way you can overclock your processor (if that CPU model
allows it) or you can underclock or undervolt your CPU (supported by all CPUs).
With undervolting you can save power without sacrificing performance.
With all these tweaking you drive your CPU to the egde (if not beyond) its
specification, so it may become unstable or may even overheat.
The least precaution before doing the tweaking is to bring your system to
a state where a hard crash wouldn't hurt it (unmounting precious partitions,
switching to single user state, sync-ing the buffers, etc.).
I'd also recommend to do a backup of your data.
For experiments it could also be handy to use a live system, started from
a CD or USB stick without mounting any hard disk partitions. This way the
possibility of damaging your data can be minimized.
*** WARNING ***:
All these precautions cannot prevent the danger of hurting the CPU by
applying absurd settings to it. The author cannot help responsible for
any damage occured due to the usage of amdpctl.
*** WARNING ***
* Try to increase or decrease the voltage and frequency only in small steps.
* Test the stability of the system after each setting.
* Go back a few steps should the system become unstable.
* Use only sensible combinations of voltage and frequency. Higher frequencies
require higher voltage, look at the factory settings to get an idea.
Contact:
---------------
Check for updated versions on:
http://sourceforge.net/projects/amdpctl/
There are two mailing lists:
* amdpctl-users@lists.sourceforge.net
for questions about using this tool or bug reports
subscribing: https://lists.sourceforge.net/lists/listinfo/amdpctl-users
* amdpctl-devel@lists.sourceforge.net
for patches, bug-reports, feature requests
subscribing: https://lists.sourceforge.net/lists/listinfo/amdpctl-devel
Installation:
---------------
$ make
# make PREFIX=/usr install
The Makefile honors a DESTDIR setting to copy the installation files into
a different base directory than /.
Usage:
---------------
See the manpage (man amdpctl) or the online help (amdpctl -h).
Usage examples:
# amdpctl
will query the current P-state settings on all CPUs and display it
# amdpctl -p 3
will query the current P-state settings of CPU 3 and display it
# amdpctl tweak 2 --volt 1.1 --freq 2500
will program the P-state 2 to use 1.1 Volts and a frequency of 2500 MHz
CPU support status:
----------------
Not supported:
* anything not 64-bit capable
* K6, K7, Athlon XP, Athlon MP
* Family 0Fh (K8) (probably never will)
- three-digit Opterons
- Opteron 12xx, 22xx, 82xx
- Athlon 64, Athlon X2, older Semprons
* Family 15h, model 10h (coming soon)
- Trinity, AMD A-10
Currently supported CPUs are:
* Family 10h
Barcelona, Shanghai, Hydra, Magny-Cours
Phenom, PhenomII, AthlonII, TurionII
Opteron 13xx, 23xx, 83xx, 24xx, 84xx
Opteron 41xx, 61xx
* Family 12h
Llano, AMD-A Series
* Family 14h
Brazos, Ontario, Zacate, AMD-E Series
* Family 15h, models 00h - 0Fh
Bulldozer, AMD-FX series
Opteron 32xx, 42xx, 62xx
The models listed are not an exhaustive lists, just popular examples.
The actual criterion for support is the CPU family/model setting, which can
be queried via /proc/cpuinfo:
$ grep -E "cpu family|model[^ ]" /proc/cpuinfo | head -2
Linux lists the family and model in decimal values, so 16 means 10h