linux_dsm_epyc7002/virt/kvm/arm
Christoffer Dall 923a2e30e5 KVM: arm/arm64: Move VGIC APR save/restore to vgic put/load
The APRs can only have bits set when the guest acknowledges an interrupt
in the LR and can only have a bit cleared when the guest EOIs an
interrupt in the LR.  Therefore, if we have no LRs with any
pending/active interrupts, the APR cannot change value and there is no
need to clear it on every exit from the VM (hint: it will have already
been cleared when we exited the guest the last time with the LRs all
EOIed).

The only case we need to take care of is when we migrate the VCPU away
from a CPU or migrate a new VCPU onto a CPU, or when we return to
userspace to capture the state of the VCPU for migration.  To make sure
this works, factor out the APR save/restore functionality into separate
functions called from the VCPU (and by extension VGIC) put/load hooks.

Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2018-03-19 10:53:21 +00:00
..
hyp KVM: arm/arm64: Move VGIC APR save/restore to vgic put/load 2018-03-19 10:53:21 +00:00
vgic KVM: arm/arm64: Move VGIC APR save/restore to vgic put/load 2018-03-19 10:53:21 +00:00
aarch32.c KVM: arm/arm64: Prepare to handle deferred save/restore of SPSR_EL1 2018-03-19 10:53:17 +00:00
arch_timer.c KVM: arm/arm64: Move vcpu_load call after kvm_vcpu_first_run_init 2018-03-19 10:53:09 +00:00
arm.c KVM: arm/arm64: Handle VGICv3 save/restore from the main VGIC code on VHE 2018-03-19 10:53:21 +00:00
mmio.c KVM: Fix stack-out-of-bounds read in write_mmio 2017-12-18 12:57:01 +01:00
mmu.c KVM: arm/arm64: Get rid of vcpu->arch.irq_lines 2018-03-19 10:53:10 +00:00
perf.c KVM: arm/arm64: Move shared files to virt/kvm/arm 2017-05-04 13:57:26 +02:00
pmu.c KVM: arm64: Rewrite system register accessors to read/write functions 2018-03-19 10:53:16 +00:00
psci.c arm64: KVM: Report SMCCC_ARCH_WORKAROUND_1 BP hardening support 2018-02-06 22:54:05 +00:00
trace.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00