MSRDumper is a special made kext for debugging P-State transitions on SandyBridge systems.
It will output the current CPU multiplier and the reached P-States over time in kernel.log.
MSRDumper was written from scratch by me with contributions by DHP. It spawned from the lack of reliable tools for SandyBridge and was used for various tests, including dumping interesting MSR's. The old version was also posted on tonymac to get readings from GigaByte owners.
Technical background: register MSR_PERF_STATUS (0x198) is read to get the current multiplier. For SandyBridge this MSR is only defined per package (all CPU). This kext can be used on other systems as well, but it will only show the multiplier for CPU0. For Nehalem the same MSR was defined per Core and possibly older systems as well. It used to show CPU-load and temperatures, but the constant readouts influenced the actual multiplier, so it is disabled for now.
sudo bash chown -R root:wheel MSRDumper.kext kextload MSRDumper.kextIt is discouraged to copy MSRDumper to /S/L/E and load it at boot-time, because it might overwrite important log messages. Instead, load the kext from any location after the system booted. Do some benchmarks, start different applications, let it run for 15 minutes and see which P-States are used. Unload after use, otherwise it will continuously spam your kernel.log!
MSRDumper.kext.zip 13.83KB 8024 downloads