It might be a question with obvious answer. But I just want to confirm that my understanding is correct.
I am trying to collect PCIE_DATA_BYTES derived event from page 34 of "xeon e5 2600 uncore guide". The table says that result is a sum of two monitored events counters, one is TOR_INSERTS.OPCODE opc=0x194 and another TOR_INSERTS.OPCODE opc=0x19C.
As I understood from guide for each CBo I can collect only one filtered event a time. So it means in this case I have two options to collect required date for specific time range.
Assuming that workload is uniform on time and in sense of memory addresses accesses.
1. Split all CBo on two groups and collect events with one opc for one and with another opc for second, and then just extrapolate result or simply multiply by four.
2. Split monitoring time on two halves and first monitor event with one opc and then with another. Results are simply added.
The choice of option depends from type of workload.
Do I miss any other options?
Thanks for any thoughts.
I think you've got it right. Note that the opcodes 0x194 and 0x19c look like just PCIe writes into the LLC (if I understand correctly). It looks like the size in bytes for the 0x194 opcode is assumed to be 1 byte. That sounds like a swag to me. Usually when I see events like this I think: one event is showing a full cache line transfer and another showing a "not sure what the size is but, it is probably not cached, and it is less than 64 bytes, might be 1, 2, 4, 8 or 16 bytes". Hopefully the the 0x194 counts are small so the fuzziness doesn't mess you up.