2

I am using Intel spr architecture, with a kernel version of 5.14 and a perf version of 4.18.

I tried to analyze the meaning of LLC related events based on the method in this answer, but found that all events have the same ID:

[ C(LL  ) ] = {
  [ C(OP_READ) ] = {
    [ C(RESULT_ACCESS) ] = 0x12a,
    [ C(RESULT_MISS)   ] = 0x12a,
  },
  [ C(OP_WRITE) ] = {
    [ C(RESULT_ACCESS) ] = 0x12a,
    [ C(RESULT_MISS)   ] = 0x12a,
  },
},

Furthermore, I checked Intel's perfmon and found that many events share the same eventcode and umask, only distinguished by MSRValue.

{
  "EventCode": "0x2A,0x2B",        <== same
  "UMask": "0x01",                 <== same
  "EventName": "OCR.DEMAND_DATA_RD.ANY_RESPONSE",
  "BriefDescription": "Counts demand data reads that have any type of response.",
  "PublicDescription": "Counts demand data reads that have any type of response.",
  "Counter": "0,1,2,3",
  "PEBScounters": "0",
  "SampleAfterValue": "100003",
  "MSRIndex": "0x1a6,0x1a7",
  "MSRValue": "0x10001",         <== different
  "CollectPEBSRecord": "0",
  "TakenAlone": "0",
  "CounterMask": "0",
  "Invert": "0",
  "EdgeDetect": "0",
  "PEBS": "0",
  "Data_LA": "0",
  "L1_Hit_Indication": "0",
  "Errata": "null",
  "Offcore": "1",
  "Deprecated": "0",
  "Speculative": "0"
},
{
  "EventCode": "0x2A,0x2B",
  "UMask": "0x01",
  "EventName": "OCR.DEMAND_RFO.ANY_RESPONSE",
  "BriefDescription": "Counts demand reads for ownership (RFO) requests and software prefetches for exclusive ownership (PREFETCHW) that have any type of response.",
  "PublicDescription": "Counts demand reads for ownership (RFO) requests and software prefetches for exclusive ownership (PREFETCHW) that have any type of response.",
  "Counter": "0,1,2,3",
  "PEBScounters": "0",
  "SampleAfterValue": "100003",
  "MSRIndex": "0x1a6,0x1a7",
  "MSRValue": "0x3F3FFC0002",
  "CollectPEBSRecord": "0",
  "TakenAlone": "0",
  "CounterMask": "0",
  "Invert": "0",
  "EdgeDetect": "0",
  "PEBS": "0",
  "Data_LA": "0",
  "L1_Hit_Indication": "0",
  "Errata": "null",
  "Offcore": "1",
  "Deprecated": "0",
  "Speculative": "0"
},
...

In this case, how should I distinguish which entry in the perfmon array corresponds to each LLC related event in perf?

  • Offcore events are measured by more or less programming the PERFEVTSEL registers as usual and by additionally programming the OFFCORE_RSP register. The latter filters the type of requests and responses counted so it can discriminate various events sharing the same event code. So I think you need to do more digging into the kernel to see what those events correspond to. – Margaret Bloom Apr 15 '23 at 10:57
  • @MargaretBloom In this case, how should I specify the corresponding event in the form of raw event in perf? like -e rXXX – Frontier_Setter Apr 17 '23 at 06:16

0 Answers0