Support PV sched and PV qspinlock
Zengruan Ye (9):
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: Enable PV qspinlock
KVM: arm64: Add tracepoints for PV qspinlock
lishusen (1):
KVM: arm64: Add configuration for feature pv-sched
Documentation/virt/kvm/arm/pvsched.rst | 74 ++++++++
arch/arm64/Kconfig | 20 +++
arch/arm64/include/asm/Kbuild | 1 -
arch/arm64/include/asm/kvm_host.h | 24 +++
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/kernel/Makefile | 3 +-
arch/arm64/kernel/paravirt-spinlocks.c | 21 +++
arch/arm64/kernel/paravirt.c | 189 ++++++++++++++++++++
arch/arm64/kernel/trace-paravirt.h | 66 +++++++
arch/arm64/kvm/Makefile | 2 +-
arch/arm64/kvm/arm.c | 26 +++
arch/arm64/kvm/handle_exit.c | 3 +
arch/arm64/kvm/hypercalls.c | 24 +++
arch/arm64/kvm/pvsched.c | 81 +++++++++
arch/arm64/kvm/trace_arm.h | 18 ++
include/linux/arm-smccc.h | 25 +++
include/linux/cpuhotplug.h | 1 +
21 files changed, 715 insertions(+), 3 deletions(-)
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/pvsched.c
--
2.33.0