I need to measure memory bandwidth on a data-center where each node is a 2 socket Xeon E5-2670.
I know it can be measured with Uncore performance counters (iMC performance monitoring CAS_COUNT) as described in Intel Xeon E5-2600 Product Family Uncore Performance Monitoring Guide, but when I look in /sys/bus/event_source/devices/ there is no uncore counters... (I guess this is because it runs old Linux kernel 3.0, but unfortunately I cannot change this, nor I can be root).
I have also tried using perf with raw events (umask and event code i found in previous document -- Intel Xeon E5-2600 Product Family Uncore Performance Monitoring Guide), but I am not sure whether these readings are correct -- moreover I didn't find umask and event code for each memory channel, but just one.
1. Can anybody comment on this and show me hoe to get umask and event code for all channels?
2. Is there any formula for the measurement of memory bandwidth that uses only Core performance counters on Xeon E5-2670 (some formula that use LLC misses, prefetching , etc,).
Thanks for your help,