I'm trying to get the % of LLC cpu time for hit and misses using the following for Xeon E5 family processor
% of cycles spent on memory access (LLC misses):
(MEM_LOAD_UOPS_MISC_RETIRED.LLC_MISS_PS * 210) / CPU_CLK_UNHALTED.THREAD
% of cycles spent on last level cache access (2nd level misses that hit in LLC):
((MEM_LOAD_RETIRED.L3_HIT_PS * 40) + (MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HIT_PS * 88) + (MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HITM_PS * 99)) / CPU_CLK_UNHALTED.THREAD
We are using Intel Vtune 2013 on Linux Ubuntu 12.04 to capture the General exploration with default settings for PMU events.
We dont find all the necessary (listed below) counters in the vtune GE analysis…
Here is the list of counters that are not visible…( Xeon e5 family)
However, we find the non _PS versions of above counters are available. So question is why _PS counter are not available in LINUX vtune 2013 ? Can we use Non _PS counters for the above formulas ? If not, how do we enable _PS counters in the vtune capture for general exploration (GE)?
I verified on E5500 machine, that is true:
But I think there is no any problem to use these events (without "_PS") in formulas for E5 machines.
MEM_LOAD_UOPS_MISC_RETIRED.LLC_MISS (which is used in above formula to calculate % cycles on memory accesses) is also not there in the output counters..Is this same as MEM_LOAD_UOPS_RETIRED.LLC_MISS??
For Nehalem processors, use MEM_LOAD_RETIRED.LLC_MISS instead of MEM_LOAD_UOPS_MISC_RETIRED.LLC_MISS
For SandBridge processors, use MEM_LOAD_UOPS_MISC_RETIRED.LLC_MISS_PS
For IvyBridge processors, use MEM_LOAD_UOPS_RETIRED.LLC_MISS_PS
You need to check what exact LLC miss event name is in your system. Guideline author wrote the article when SandBridge processor is ready, so use SandyBridge event name in formula, as the example.