I am developing an app for a Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz. I need to access the cores energy consumption. I am doing it using the RAPL feature. I have access to the dram and package energy consumption but when I tried to access the core consumption (PP0) I always read zero from the MSR_PP0_ENERGY_STATUS. I am using the MSR specification from the Software Developer Manual table 35.25.
As I said the I can read the package and dram energy consumption but the PP0 always return 0. From the manual I understood this feature is present in my processor. What could be wrong? I tried my program in an Intel(R) Core(TM) i7-4702MQ CPU @ 2.20GHz and works perfect but in the server is not working. Thanks in advance.
I have checked the Performance Counter Monitor, but this tools only gives information about package and dram. This things also works in my code.
I tried a modified version of http://web.eece.maine.edu/~vweaver/projects/rapl/rapl-read.c, I just added the support for Haswell-E. The DRAM and PKG info works but the info about PP0 do not, although it is supposed to work.
I tried it myself on a HSW-EP system and i get the same results, i have found out this is possibly due to the BIOS hiding the MSR or it not having been calibrated by the mainboard manufacturer.
See threads for similar issues with DRAM energy usage:
If it is the BIOS hiding the register then there might be an option to unhide it or you can ask you mainboard manufacturer to see if they can help you with a fixed BIOS.
It looks to me like the PP0 domain is not supported on the Xeon E5 v3 products. The PP0 Energy status MSR always returns zero energy consumed and the PPO Perf Status register no longer exists.
Thanks for your replies.
Otto I will try to contact the mainboard manufacturer for a bios update. Maybe this is the answer.
John I also thought that the PP0 domain is not supported on the Xeon E5 v3, but in the "Intel® 64 and IA-32 Architectures
Software Developer’s Manual Volume 3 (3A, 3B & 3C): System Programming Guide" in the Section 35.11. They said that the MSRs for Haswell-E (Intel ® Xeon ® Processor E5 26XX v3) are listed in tables 35.16, 35.20, 35.22 and 35.25. The MSR_PP0_ENERGY_STATUS is listed in table 35.16. None of the MSRs related to PP1 are listed in this tables, and when I tried to access any of this MSRs I get an error. It is very rare Intel implements a PP0 MSRs that always returns zero buy could be.
I'm sorry for the confusion.
We now have confirmation from our architecture team that Intel Xeon E5 v3 processors don't support MSR_PP0_ENERGY_STATUS, It is therefore expected that they always return zero. In particular, a BIOS update won't help either. We hope to get the documentation fixed soon.