AVS implementation for Beagleboard in conflict with the normal use of PMC

Hello every,

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):

Added PAPI_L1_DCM
Added PAPI_L1_ICM
Added PAPI_L2_TCM
Added PAPI_TLB_DM
Added PAPI_TLB_IM
Added PAPI_STL_ICY
Added PAPI_BR_TKN
Added PAPI_BR_MSP
Added PAPI_TOT_INS
Added PAPI_LD_INS
Added PAPI_SR_INS
Added PAPI_BR_INS
Added PAPI_TOT_CYC
Added PAPI_L1_DCA
Added PAPI_L1_ICA
Added PAPI_L2_TCA

Event Counts:
PAPI_L1_DCM 64151
PAPI_L1_ICM 159362
PAPI_L2_TCM 1883
PAPI_TLB_DM 1835
PAPI_TLB_IM 8
PAPI_STL_ICY 42987476
PAPI_BR_TKN 221854641
PAPI_BR_MSP 91776
PAPI_TOT_INS 2186773029
PAPI_LD_INS 203921167
PAPI_SR_INS 101849208
PAPI_BR_INS 218947812
PAPI_TOT_CYC 1946058572
PAPI_L1_DCA 387448691
PAPI_L1_ICA 1228403974
PAPI_L2_TCA 220495

multiplex2.c PASSED

PAPI Results 2 (under mainline-3.4-voltdm-tps-v1 and mainline-3.6-rc5-omap-tps-v2 ,as well as the mainline version 3.4.0-rc3, 3.4.1 and 3.6.0-rc5 that are patched with AVS patch):

Added PAPI_L1_DCM
Added PAPI_L1_ICM
Added PAPI_L2_TCM
Added PAPI_TLB_DM
Added PAPI_TLB_IM
Added PAPI_STL_ICY
Added PAPI_BR_TKN
Added PAPI_BR_MSP
Added PAPI_TOT_INS
Added PAPI_LD_INS
Added PAPI_SR_INS
Added PAPI_BR_INS
Added PAPI_TOT_CYC
Added PAPI_L1_DCA
Added PAPI_L1_ICA
Added PAPI_L2_TCA

Event Counts:
PAPI_L1_DCM 0
PAPI_L1_ICM 0
PAPI_L2_TCM 0
PAPI_TLB_DM 0
PAPI_TLB_IM 0
PAPI_STL_ICY 0
PAPI_BR_TKN 0
PAPI_BR_MSP 0
PAPI_TOT_INS 0
PAPI_LD_INS 0
PAPI_SR_INS 0
PAPI_BR_INS 0
PAPI_TOT_CYC 1950636665
PAPI_L1_DCA 0
PAPI_L1_ICA 0
PAPI_L2_TCA 0

Caution: 15 counters had zero values
Caution: 14 counter pair(s) had identical values
multiplex2.c PASSED

Thank you very much.

Qiong

Any chance you can let everyone know which of the four BeagleBoards you are using?

Gerald

Hello Gerald,
Thank you for your reply, I do not understand what is four BeagleBoards?
four PMC?

Regards,
Qiong

http://beagleboard.org/Support/FAQ

Gerald

This is going to be for the original BeagleBoard and by compatibility the BeagleBoard-xM.

The forth beagleboard, OMAP 3530.

I will try to find a BeagleBoard-xM to test.
在 2014年2月19日星期三UTC+1下午10时04分48秒,Jason Kridner写道: