Support features: pv-qspinlock pv-sched TWED ncsnp TLBI
Jingyi Wang (1): KVM: arm64: Make use of TWED feature
Quan Zhou (5): KVM: arm64: Support a new HiSi CPU type KVM: arm64: Probe and configure DVMBM capability on HiSi CPUs KVM: arm64: Add kvm_vcpu_arch::cpus_ptr and pre_cpus_ptr KVM: arm64: Add kvm_arch::dvm_cpumask and dvm_lock KVM: arm64: Implement the capability of DVMBM
Yanan Wang (1): KVM: arm64: Only probe Hisi ncsnp feature on Hisi CPUs
Zenghui Yu (3): KVM: arm64: Probe Hisi CPU TYPE from ACPI/DTB KVM: arm64: Add support for probing Hisi ncsnp capability KVM: arm64: Fix {fp_asimd,sve}_exit_stat manipulation
Zengruan Ye (11): arm64: cpufeature: TWED support detection KVM: arm64: Document PV-sched interface KVM: arm64: Implement PV_SCHED_FEATURES call KVM: arm64: Support pvsched preempted via shared structure KVM: arm64: Add interface to support vCPU preempted check KVM: arm64: Support the vCPU preemption check KVM: arm64: Add SMCCC PV-sched to kick cpu KVM: arm64: Implement PV_SCHED_KICK_CPU call KVM: arm64: Add interface to support PV qspinlock KVM: arm64: Enable PV qspinlock KVM: arm64: Add tracepoints for PV qspinlock
chenjiajun (1): kvm: debugfs: export remaining aarch64 kvm exit reasons to debugfs
lishusen (2): KVM: arm64: Replace pv.ops by static_call for PV qspinlock feature KVM: arm64: Add configuration for feature pv-sched
yezengruan (1): kvm: arm64: fix some pvsched bugs
C | 0 .../admin-guide/kernel-parameters.txt | 3 + Documentation/virt/kvm/arm/pvsched.rst | 74 ++++ arch/arm64/Kconfig | 30 ++ arch/arm64/configs/openeuler_defconfig | 1 + arch/arm64/include/asm/Kbuild | 1 - arch/arm64/include/asm/kvm_arm.h | 8 + arch/arm64/include/asm/kvm_emulate.h | 27 ++ arch/arm64/include/asm/kvm_host.h | 63 +++ arch/arm64/include/asm/paravirt.h | 51 +++ arch/arm64/include/asm/pvsched-abi.h | 16 + arch/arm64/include/asm/qspinlock.h | 48 +++ arch/arm64/include/asm/qspinlock_paravirt.h | 12 + arch/arm64/include/asm/spinlock.h | 13 + arch/arm64/include/asm/virt.h | 5 + arch/arm64/kernel/Makefile | 3 +- arch/arm64/kernel/cpufeature.c | 12 + arch/arm64/kernel/image-vars.h | 5 + arch/arm64/kernel/paravirt-spinlocks.c | 21 + arch/arm64/kernel/paravirt.c | 189 +++++++++ arch/arm64/kernel/trace-paravirt.h | 66 +++ arch/arm64/kvm/Kconfig | 1 + arch/arm64/kvm/Makefile | 3 +- arch/arm64/kvm/arm.c | 93 +++++ arch/arm64/kvm/handle_exit.c | 12 + arch/arm64/kvm/hisilicon/Kconfig | 7 + arch/arm64/kvm/hisilicon/Makefile | 2 + arch/arm64/kvm/hisilicon/hisi_virt.c | 389 ++++++++++++++++++ arch/arm64/kvm/hisilicon/hisi_virt.h | 61 +++ arch/arm64/kvm/hyp/include/hyp/switch.h | 2 + arch/arm64/kvm/hyp/pgtable.c | 2 +- arch/arm64/kvm/hypercalls.c | 24 ++ arch/arm64/kvm/mmu.c | 1 + arch/arm64/kvm/pvsched.c | 81 ++++ arch/arm64/kvm/sys_regs.c | 11 + arch/arm64/kvm/trace_arm.h | 18 + arch/arm64/tools/cpucaps | 1 + include/linux/arm-smccc.h | 25 ++ include/linux/cpuhotplug.h | 1 + 39 files changed, 1378 insertions(+), 4 deletions(-) create mode 100644 C create mode 100644 Documentation/virt/kvm/arm/pvsched.rst create mode 100644 arch/arm64/include/asm/pvsched-abi.h create mode 100644 arch/arm64/include/asm/qspinlock.h create mode 100644 arch/arm64/include/asm/qspinlock_paravirt.h create mode 100644 arch/arm64/kernel/paravirt-spinlocks.c create mode 100644 arch/arm64/kernel/trace-paravirt.h create mode 100644 arch/arm64/kvm/hisilicon/Kconfig create mode 100644 arch/arm64/kvm/hisilicon/Makefile create mode 100644 arch/arm64/kvm/hisilicon/hisi_virt.c create mode 100644 arch/arm64/kvm/hisilicon/hisi_virt.h create mode 100644 arch/arm64/kvm/pvsched.c