There are some tests that fail when running on bare metal (including a passthrough prototype). There are three issues with the tests. The first one is that there are some missing isb()'s between enabling event counting and the actual counting. This wasn't an issue on KVM as trapping on registers served as context synchronization events. The second issue is that some tests assume that registers reset to 0. And finally, the third issue is that overflowing the low counter of a chained event sets the overflow flag in PMVOS and some tests fail by checking for it not being set. Addressed all comments from the previous version: https://lore.kernel.org/kvmarm/YvPsBKGbHHQP+0oS@xxxxxxxxxx/T/#mb077998e2eb9fb3e15930b3412fd7ba2fb4103ca - add pmu_reset() for 32-bit arm [Andrew] - collect r-b from Alexandru Thanks! Ricardo Ricardo Koller (4): arm: pmu: Add missing isb()'s after sys register writing arm: pmu: Add reset_pmu() for 32-bit arm arm: pmu: Reset the pmu registers before starting some tests arm: pmu: Check for overflow in the low counter in chained counters tests arm/pmu.c | 72 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 55 insertions(+), 17 deletions(-) -- 2.37.1.559.g78731f0fdb-goog