PMU's cycles counter showing unstable values

I'm trying to measure performance of my code  by using pmu. Code placed in EL1. To test pmu I created simple loop of couple operations. I did it under spinlock with disabled interrupts to prevent any preemption. Then I printed cycle counter to check how much cycles this my test code takes. But I see very different  values at each print, ex: 100, 200, 10000, 50, 

...

My question is: why output is so different? What cause this?

PS: in countrary to cycle counter,  pmu's instructions counter is stable and I observe same output at each time.

Also I tried to use ARM timer, but it also showing different values similarly to pmu's cycles counter.

Parents Reply Children
More questions in this forum