summaryrefslogtreecommitdiffstats
path: root/virt
diff options
context:
space:
mode:
authorMarc Zyngier2019-03-04 18:37:44 +0100
committerMarc Zyngier2019-03-19 18:56:24 +0100
commitebff0b0e3d3c862c16c487959db5e0d879632559 (patch)
treef2b934999ffb9654dfc3c0a6623052acd44115d0 /virt
parentLinux 5.1-rc1 (diff)
downloadkernel-qcow2-linux-ebff0b0e3d3c862c16c487959db5e0d879632559.tar.gz
kernel-qcow2-linux-ebff0b0e3d3c862c16c487959db5e0d879632559.tar.xz
kernel-qcow2-linux-ebff0b0e3d3c862c16c487959db5e0d879632559.zip
KVM: arm64: Reset the PMU in preemptible context
We've become very cautious to now always reset the vcpu when nothing is loaded on the physical CPU. To do so, we now disable preemption and do a kvm_arch_vcpu_put() to make sure we have all the state in memory (and that it won't be loaded behind out back). This now causes issues with resetting the PMU, which calls into perf. Perf itself uses mutexes, which clashes with the lack of preemption. It is worth realizing that the PMU is fully emulated, and that no PMU state is ever loaded on the physical CPU. This means we can perfectly reset the PMU outside of the non-preemptible section. Fixes: e761a927bc9a ("KVM: arm/arm64: Reset the VCPU without preemption and vcpu state loaded") Reported-by: Julien Grall <julien.grall@arm.com> Tested-by: Julien Grall <julien.grall@arm.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'virt')
0 files changed, 0 insertions, 0 deletions