Enable "PMU" counters for Khadas VIM3 in the Google AOSP kernel

From: Ehsan Aghapour
Date: Thu Oct 07 2021 - 19:11:26 EST


Hello All,

I am working on Google AOSP kernel and require to enable PMU. PMU is
working well in Khadas kernel for both A53 and A73 cores but it is not
enabled in Google AOSP kernel 5.4. I try adding arm_pmu definition in
device tree at /arch/arm64/boot/dts/amlogic/meson-g12b.dtsi as follow:
arm_pmu {
compatible = "arm,armv8-pmuv3";
clusterb-enabled;
interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
reg = <0x0 0xff634680 0x0 0x4>,
<0x0 0xff6347c0 0x0 0x04>;
cpumasks = <0x3 0x3C>;
/* default 10ms */
relax-timer-ns = <10000000>;
/* default 10000us */
max-wait-cnt = <10000>;
};

However in this case I only see A53 performance counters in DS5
Streamline and performance counters of A73 cores are zero yet.

Would you please help me solve the problem? (If device tree need
change or kernel config to enable pmu counters for both CPUs).


This is related kernel log:
"[ 1.965309] hw perfevents: no interrupt-affinity property for
/arm_pmu, guessing.
[ 1.970821] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7
counters available
...
[ 7.131341] ueventd: LoadWithAliases was unable to load
of:Narm_pmuT(null)Carm,armv8-pmuv3"


Best regards,
Ehsan