Question: PCIe Eventgroups #271
-
Hi, Thanks for your help |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
the event groups are setup here: https://github.com/opcm/pcm/blob/0a178ec2573821e3c08beb6bd76808ebb912bc76/pcm-pcie.h#L368 hope this helps.. |
Beta Was this translation helpful? Give feedback.
-
Hello, I want to get PCIRdCur (no. of reads to LLC) in my .cpp file, so what I did was using programPCIeEventGroup() and passed to it a vector of events that I want to monitor, more specifically PCIRdCur_miss (uint_64 of {0x00043c33}) and PCIRdCur_hit (uint_64 of {0x00043c37}). First of all, is that the correct way to determine which events to monitor? And given that my CPU's microarchitecture is CLX, can I program more than 1 event to monitor? The reason I am asking is that I found inside CPUCounters.cpp the following sentence: "//JKT through СLX generations allow programming only one required event at a time" Then, I called getPCIeCounterData(socket_no, ctr). The thing is that I am not sure what to specify as ctr. My understanding is that ctr ranges from 0 to 3 (otherwise, it gives segmentation fault). The question is if the 0-3 range of the ctr variable corresponds to (0)PCIRdCur(RFO/CRd/DRd), and (1)ItoM, and (2)PRd, and (3)WiL, respectively. The reason I guessed so is because in pcm-pcie.h, it loops from ctr = 0 to ctr = eventGroup.size(), so I assumed ctr is used to represent these events. Is this right tho? If that is the case, why does getPCIeCounterData function still displays values when ctr = 1 (monitoring ItoM) while I have already programmed the event group to only monitor PCIRdCur? Thanks for your help in advance. |
Beta Was this translation helpful? Give feedback.
the event groups are setup here: https://github.com/opcm/pcm/blob/0a178ec2573821e3c08beb6bd76808ebb912bc76/pcm-pcie.h#L368
hope this helps..