Hi everyone~ My questions focus on PMU for armv8.
In architecture reference manual Armv8 I can always find words like "If xxx is implemented", in which, xxx may be armv8.6-ecv/ armv8.5-PMU/PMUv3.1 etc. Something may be different for these specific implementations. So my question comes up that how can I get the information about whether a specific(a73 for example) has one of the implementations? I checked the PMU part a73 technical reference manual but got nothing about the PMU version it is implemented.
Next, for an event counter, we can control this counter to count events in EL0/EL1 by setting the PMEVTYPER.P/U. What does it mean? could I count only a userspace app's event and count no events running in the kernel with the PMEVTYPER.P/U be 0b1/0b0. Or could I count event impacted by the kernel without the inference of the user app?
Anyone's ideas would be greatly helpful, thx!
For question 1: Check "G8.2.80 ID_DFR0, Debug Feature Register 0"
2nd question: Seem pretty obvious: You can choose to ignore events on a certain exception level. So for example, if you do a system call, you like to know the user land (EL0) overhead and not the actual time it takes in EL1. So you disable counting EL1 events.
Very Nice reply that solved my questions. Thank you a lot!
I'm new in this area. May I know whether I ask my question in the right place, for the types and degrees of difficulty of questions :)