
Compared with the previous IPIV, the IPIV-BUGFIX has the following changes: 1. Use Kconfig to Control whether to enable IPIV. 2. Users use ioctl to control whether to enable IPIV. 3. Use the SMCCC interface for Guest OS to control whether to enable IPIV. 4. ensure that enable_ipiv_from_guest are the same before and after live migration 5. make sure vcpu_id == vcpu_idx. 6. the MPIDR cannot be changed When IPIV is enabled. 7. fix bug that ipiv enable is displayed on the host when "kvm-arm.vgic_v4_enable=0 kvm-arm.ipiv_enabled=1" is configured. 8. Add Exception Printing Jinqian Yang (5): arm64/config: add config to control whether enable IPIV feature KVM: arm64: fix live migration bug of IPIv KVM: arm64: using kvm_vgic_global_state for ipiv kvm: hisi: print error for IPIV arm64/kabi: use KABI_EXTEND to skip KABI check Zhou Wang (6): KVM: arm64: Introduce ipiv enable ioctl KVM: arm64: Document PV-sgi interface KVM: arm64: Implement PV_SGI related calls irqchip/gic: Add HiSilicon PV SGI support kvm: hisi: make sure vcpu_id and vcpu_idx have same value in IPIv kvm: hisi: Don't allow to change mpidr in IPIv Documentation/virt/kvm/arm/hypercalls.rst | 4 ++ Documentation/virt/kvm/arm/pvsgi.rst | 33 ++++++++++++++ arch/arm64/Kconfig | 13 ++++++ arch/arm64/configs/openeuler_defconfig | 1 + arch/arm64/include/asm/kvm_host.h | 3 ++ arch/arm64/include/uapi/asm/kvm.h | 5 +++ arch/arm64/kvm/arm.c | 36 +++++++++++---- arch/arm64/kvm/hisilicon/hisi_virt.c | 32 ++++++++++++- arch/arm64/kvm/hisilicon/hisi_virt.h | 20 +++++++-- arch/arm64/kvm/hypercalls.c | 26 +++++++++++ arch/arm64/kvm/sys_regs.c | 34 +++++++++----- arch/arm64/kvm/vgic/vgic-init.c | 42 ++++++++++++++--- arch/arm64/kvm/vgic/vgic-its.c | 19 ++++++++ arch/arm64/kvm/vgic/vgic-mmio-v3.c | 1 - drivers/irqchip/irq-gic-v3-its.c | 50 ++++++++++++++------- drivers/irqchip/irq-gic-v3.c | 55 ++++++++++++++++++----- include/linux/arm-smccc.h | 15 +++++++ include/linux/irqchip/arm-gic-v3.h | 10 +++++ include/linux/irqchip/arm-gic-v4.h | 5 ++- include/uapi/linux/kvm.h | 2 +- 20 files changed, 348 insertions(+), 58 deletions(-) create mode 100644 Documentation/virt/kvm/arm/pvsgi.rst -- 2.33.0