I am doing a study in controlling idle-states (C0 to C6/7) of a Sandy Bridge Processor
specifically on a (i7-2677M).
I have observed a some issues in reporting application latency and thus power consumption
when tapping into the built in hardware counters while using Papi-C, and manually setting C-state preferences
by writing to the: /dev/cpu_dma_latency to hit C-state modes.
Based on the Intel documentation and C-state definition, placing cores at higher (deeper sleep states) should incur higher wakeup time latency.
However, after manually setting the preference to have all cores running at C0 (active state) and running a simple micro-benchmark (DGEMM),
I am getting higher latency (run time) values at this state (all cores at C0) versus (having all cores initially at C6/C7 deep sleep state),
and having the preference at default (ondemand).
Experimental Setup: 1 thread, DGEMM, Ubuntu 12.04
1. All cores set preference to be C6/C7: runtime = 4.84 sec
2. All cores set to C0 (active mode): runtime = 7.70 sec
It doesn't make sense to me that having all cores initially at C0 perform
significantly worse than having them all at C6/C7. Could anyone explain why this may be the case?