KVM: arm64: GICv4.1: Try to save VLPI state in save_pending_tables
authorShenming Lu <lushenming@huawei.com>
Mon, 22 Mar 2021 06:01:56 +0000 (14:01 +0800)
committerMarc Zyngier <maz@kernel.org>
Wed, 24 Mar 2021 18:12:21 +0000 (18:12 +0000)
commitf66b7b151e00427168409f8c1857970e926b1e27
treefef8b682e2756675973d589c6d60e3422f39dee5
parent80317fe4a65375fae668672a1398a0fb73eb9023
KVM: arm64: GICv4.1: Try to save VLPI state in save_pending_tables

After pausing all vCPUs and devices capable of interrupting, in order
to save the states of all interrupts, besides flushing the states in
kvm’s vgic, we also try to flush the states of VLPIs in the virtual
pending tables into guest RAM, but we need to have GICv4.1 and safely
unmap the vPEs first.

As for the saving of VSGIs, which needs the vPEs to be mapped and might
conflict with the saving of VLPIs, but since we will map the vPEs back
at the end of save_pending_tables and both savings require the kvm->lock
to be held (thus only happen serially), it will work fine.

Signed-off-by: Shenming Lu <lushenming@huawei.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20210322060158.1584-5-lushenming@huawei.com
arch/arm64/kvm/vgic/vgic-v3.c