I am a user of the BeagleBoard and PandaBoard. Due to the requirements of my project, I want to have a Linux kernel that can support the Adjustable voltage scaling (AVS) through Smart Reflex as well as the PAPI (Performance Application Programming Interface http://icl.cs.utk.edu/papi/) , which is an interface to access the performance monitor counters (PMCs) in ARM processor (support Cortex A8 and A9).
Firstly, we have found that the PAPI can be supported in any mainline Linux kernel version above 3.0(PAPI Results 1), including 3.4.0-rc3 and 3.6.0-rc5, the two versions which are used to add Smart Reflext support in Linux kernel. Then we followed the post in http://lists.infradead.org/pipermail/linux-arm-kernel/2012-May/097920.html , to test the AVS on BeagleBoard and Pandaboard. It turns out that both the kernel images obtained from the package : mainline-3.4-voltdm-tps-v1 and mainline-3.6-rc5-omap-tps-v2 can support AVS but fails to support PAPI (PAPI Results 2). In the next step, we obtained the AVS patch and apply it to the Linux mainline kernel version 3.4.0-rc3, 3.4.1 and 3.6.0-rc5, it proved that the patched mainline Linux kernel can now support AVS but fail to support PAPI.
To the best of my knowledge, the PAPI functions are successfully inserted in all the above cases. But after the AVS patch is applied, PAPI fails to return meaningful PMC counts. It seems to me that the implementation of AVS somewhat blocks the normal use of the PMCs in BeagleBoard. I am wondering somebody have been aware of this problem, and it is appreciable if you can share your experience on this issue.
PAPI Results 1
(BeagleBoard, under Linux mainline above v3.0, including 3.4.0-rc3 and 3.6.0-rc5):
Caution: 15 counters had zero values
Caution: 14 counter pair(s) had identical values
Thank you very much.