This exports the asynchronous page fault capability: * Identify capability KVM_CAP_ASYNC_{PF, PF_INT}. * Standardize SDEI event for asynchronous page fault. * Enable kernel config CONFIG_KVM_ASYNC_{PF, PF_SLOT}. Signed-off-by: Gavin Shan <gshan@xxxxxxxxxx> --- arch/arm64/include/uapi/asm/kvm_sdei.h | 1 + arch/arm64/kvm/Kconfig | 2 ++ arch/arm64/kvm/arm.c | 4 ++++ arch/arm64/kvm/sdei.c | 5 +++++ 4 files changed, 12 insertions(+) diff --git a/arch/arm64/include/uapi/asm/kvm_sdei.h b/arch/arm64/include/uapi/asm/kvm_sdei.h index 232092de5e21..47d578abba1a 100644 --- a/arch/arm64/include/uapi/asm/kvm_sdei.h +++ b/arch/arm64/include/uapi/asm/kvm_sdei.h @@ -13,6 +13,7 @@ #define KVM_SDEI_MAX_VCPUS 512 #define KVM_SDEI_INVALID_NUM 0 #define KVM_SDEI_DEFAULT_NUM 0x40400000 +#define KVM_SDEI_ASYNC_PF_NUM 0x40400001 struct kvm_sdei_event_state { uint64_t num; diff --git a/arch/arm64/kvm/Kconfig b/arch/arm64/kvm/Kconfig index 3964acf5451e..dfb3ed0de2ca 100644 --- a/arch/arm64/kvm/Kconfig +++ b/arch/arm64/kvm/Kconfig @@ -31,6 +31,8 @@ menuconfig KVM select SRCU select KVM_VFIO select HAVE_KVM_EVENTFD + select KVM_ASYNC_PF + select KVM_ASYNC_PF_SLOT select HAVE_KVM_IRQFD select HAVE_KVM_MSI select HAVE_KVM_IRQCHIP diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c index be0e6c2db2a5..0940de3ebcff 100644 --- a/arch/arm64/kvm/arm.c +++ b/arch/arm64/kvm/arm.c @@ -269,6 +269,10 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) case KVM_CAP_ARM_SDEI: r = 1; break; + case KVM_CAP_ASYNC_PF: + case KVM_CAP_ASYNC_PF_INT: + r = IS_ENABLED(CONFIG_KVM_ASYNC_PF) ? 1 : 0; + break; default: r = 0; } diff --git a/arch/arm64/kvm/sdei.c b/arch/arm64/kvm/sdei.c index 4f5a582daa97..437303bfafba 100644 --- a/arch/arm64/kvm/sdei.c +++ b/arch/arm64/kvm/sdei.c @@ -19,6 +19,11 @@ static struct kvm_sdei_event_state defined_kse[] = { 1, SDEI_EVENT_PRIORITY_CRITICAL }, + { KVM_SDEI_ASYNC_PF_NUM, + SDEI_EVENT_TYPE_PRIVATE, + 1, + SDEI_EVENT_PRIORITY_CRITICAL + }, }; static struct kvm_sdei_event *kvm_sdei_find_event(struct kvm *kvm, -- 2.23.0 _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm