Software Archive
Read-only legacy content
17061 Discussions

Read core C-states from MSR

Francisco_I_
Beginner
2,498 Views

Hi,

Is there any documented way to obtain the current C-state of a given core (or P-state of the package) natively from the Xeon Phi card? On Xeon systems, we usually do so through MSR:

#define MSR_PKG_C2_RESIDENCY            0x60D
#define MSR_PKG_C3_RESIDENCY            0x3F8
#define MSR_PKG_C6_RESIDENCY            0x3F9
#define MSR_PKG_C7_RESIDENCY            0x3FA
#define MSR_PKG_C8_RESIDENCY            0x630
#define MSR_PKG_C9_RESIDENCY            0x631
#define MSR_PKG_C10_RESIDENCY           0x632
#define MSR_CORE_C1_RESIDENCY           0x660
#define MSR_CORE_C3_RESIDENCY           0x3FC
#define MSR_CORE_C6_RESIDENCY           0x3FD
#define MSR_CORE_C7_RESIDENCY           0x3FE

Is it possible to achieve similar functionality by reading any special register on the Xeon Phi?

Besides, we have obtained some information through sysfs for C-states (files /sys/devices/system/cpu/cpu*/cpuidle/state*). Is there any other sysfs file of interest, for example for getting P-states?

Thanks,

0 Kudos
1 Reply
TaylorIoTKidd
New Contributor I
2,498 Views

I investigated this question before. The answer is that there are no MSRs you can read to measure the core or package C-states or P-state statistics, including residency. As the OS drives power state transitions, it collects some statistics on the fly. Collecting such statistics introduces latency which will reduce performance so I suspect that such statistics are minimal.

I was collecting some sysfs information for a blog series I've been meaning to write on measuring power / energy, time permitting. ll see if I can find my sysfs information and pass it along.

Regards
--
Taylor

 

0 Kudos
Reply