I’m using Hikey960 running the minimized buildroot OPTEE Linux. I want to configure some PMU events so that firstly I choose to get the value of cycle counter. But I failed to configure the PMU register well: it seems that PMU registers are reset soon. So I did some experiments for your reference.
In kernel init
I write the values I want into PMU register like pmintenset_el1, pmcntenset_el0, pmuserenr_el0, pmcr_el0, pmccfiltr_el0
…Also I read and print their values after I set them. All registers above are set well and I successfully get the cycle count from pmccntr_el0
just in kernel’s init
function. Then so strange is that I can only get 0 from pmccntr_el0
in any other kernel module(and I have no right to access it from userspace, inferring that pmuserenr_el0 is not configured well).
And when I code some reading of PMU registers I set before in the kernel exit
and print them out: the result shows that like I never have set anyone of them!!!
btw, I tried the on_each_cpu()
to set all 8 cores and the result is the same.
Anyone’s ideas would be extremely helpful!
Thanks