KVM: arm64: pmu: Set the CHAINED attribute before creating the in-kernel event
authorMarc Zyngier <maz@kernel.org>
Tue, 8 Oct 2019 14:09:55 +0000 (15:09 +0100)
committerMarc Zyngier <maz@kernel.org>
Sun, 20 Oct 2019 09:47:07 +0000 (10:47 +0100)
commit725ce66979fb6da5c1aec5b064d0871bedc23bf7
tree160b07ae49fd048279fc3a8684fafc17de14bbd4
parent6f16371453476fd094760ea3d6f00144e9ae3057
KVM: arm64: pmu: Set the CHAINED attribute before creating the in-kernel event

The current convention for KVM to request a chained event from the
host PMU is to set bit[0] in attr.config1 (PERF_ATTR_CFG1_KVM_PMU_CHAINED).

But as it turns out, this bit gets set *after* we create the kernel
event that backs our virtual counter, meaning that we never get
a 64bit counter.

Moving the setting to an earlier point solves the problem.

Fixes: 80f393a23be6 ("KVM: arm/arm64: Support chained PMU counters")
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
virt/kvm/arm/pmu.c