OSDN Git Service

KVM: arm64: PMU: Simplify setting a counter to a specific value
authorMarc Zyngier <maz@kernel.org>
Sun, 13 Nov 2022 16:38:24 +0000 (16:38 +0000)
committerMarc Zyngier <maz@kernel.org>
Thu, 17 Nov 2022 15:39:51 +0000 (15:39 +0000)
commit9917264d74d9063341968a8e071266358496777b
treed8aa61e39ce9c7eafce537f5f6570681984518ae
parent0cb9c3c87a9d3287eaf353936e6846d885102439
KVM: arm64: PMU: Simplify setting a counter to a specific value

kvm_pmu_set_counter_value() is pretty odd, as it tries to update
the counter value while taking into account the value that is
currently held by the running perf counter.

This is not only complicated, this is quite wrong. Nowhere in
the architecture is it said that the counter would be offset
by something that is pending. The counter should be updated
with the value set by SW, and start counting from there if
required.

Remove the odd computation and just assign the provided value
after having released the perf event (which is then restarted).

Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221113163832.3154370-9-maz@kernel.org
arch/arm64/kvm/pmu-emul.c