PMU counters are reading zeroes in Streamline
Applies to: ARMv7 Architecture, ARMv8 Architecture, DS-5
- PMU counters are reading zeroes in Streamline.
- One of the reasons why you are seeing PMU counters reading zeroes is because the perf interface is not being correctly implemented or initialized.
Please check the Linux Kernel perf implementation. The following files in the Linux kernel define, initialize and implement the perf interface to the PMU counters:
- For ARMv7-A:
- For ARMv8-A:
An example of these files can be seen in the Linaro git repository.
Another reason why you are seeing PMU counters reading zeroes is because the permission bits have not been set. The use of these bits will depend on whether the processor implements Security Extensions. Please check the non-invasive debug configuration bits during the initialization stage in the Linux kernel:
- PMAUTHSTATUS (Performance Monitors Authentication Status register)
- SNI (Secure non-invasive debug features implemented)
- SNE (Secure non-invasive debug enabled bit)
- SDER (Secure Debug Enable register, Security Extensions)
- SUNIDEN (Secure User Non-Invasive Debug Enable bit)
- DBGDSCR (Debug Status and Control register)
For further information on these bits, please refer to the following sections/chapters in the ARM Architecture Reference Manual documents (ARM ARMv7-A, ARM ARMv8-A - Registration required):
- PMAUTHSTATUS, Performance Monitors Authentication Status register
- DBGAUTHSTATUS, Authentication Status register
- Non-Invasive Debug Authentication
- Effects of non-invasive debug authentication on the Performance Monitors
Rate this article
Disagree? Move your mouse over the bar and click