I'm trying to monitor the offcore and uncore events in Xeon E5-4620.
After reading Chapter 18 of "Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3B", I get the impression that Xeon E5 family should support all offcore events in Intel® Core™ i7-2xxx, Intel® Core™ i5-2xxx, Intel® Core™ i3-2xxx Processor Series. However, Chapter 19 lists many more events for Intel® Core™ i7-2xxx, Intel® Core™ i5-2xxx, Intel® Core™ i3-2xxx Processor Series than for Xeon E5. I am particularly interested in offcore events related to snoop traffic. For example, I tried OFFCORE_RESPONSE.DEMAND_CODE_RD.LLC_HIT.SNOOP_MISS_0/1, but amplxe says the event isn't supported.
"Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3B" doesn't list uncore events for Xeon E5 at all, even though it says E5 supports uncore performance monitoring. I tried uncore events of Intel® Core™ i7-2xxx, Intel® Core™ i5-2xxx, Intel® Core™ i3-2xxx Processor Series in amplxe. For example, I tried UNC_CBO_XSNP_RESPONSE.MISS, but again amplxe says the event isn't supported.
I'm quite confused. E5 shouldn't support so few events. I use VTune(TM) Amplifier XE 2013 Update 2, so it's already pretty new. So how to monitor offcore and uncore events in E5 processors and particularly how to monitor snoop traffic?
Here are my comments:
1. E5 have ~800 events but VTune(TM) Amplifier only support "commonly used events", not entire event set. They are enough to meet your requirements. If not, please go Intel Premier to submit a new feature request, and explain why.
2. Different processor may have different event name, usually you can use predefined analysis types - it is easy way to avoid blocking at event name.
3. If you want to try your preferring event, try to find supported events first in your system. for example:
amplxe-runss -event-list | grep OFFCORE_RESPONSE.DEMAND_DATA_RD
Thank you, Peter. Now I can see all offcore events now, but uncore events are still missing in amplxe-runss -event-list. Can we use vtune to monitor uncore events? It seems the predefined bandwidth analysis uses uncore events. Is there a way to monitor any uncore events in vtune?
After some searching, it seems PTU might be a solution.