From: Lai Jiangshan <jiangshan.ljs@xxxxxxxxxxxx> Add a new Kconfig option and create stub files for what will eventually be a new module named PVM (Pagetable-based PV Virtual Machine). PVM will function as a vendor module, similar to VMX/SVM for KVM, but it doesn't require hardware virtualization assistance. Signed-off-by: Lai Jiangshan <jiangshan.ljs@xxxxxxxxxxxx> Signed-off-by: Hou Wenlong <houwenlong.hwl@xxxxxxxxxxxx> --- arch/x86/kvm/Kconfig | 9 +++++++++ arch/x86/kvm/Makefile | 3 +++ arch/x86/kvm/pvm/pvm.c | 26 ++++++++++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 arch/x86/kvm/pvm/pvm.c diff --git a/arch/x86/kvm/Kconfig b/arch/x86/kvm/Kconfig index 950c12868d30..49a8b3489a0a 100644 --- a/arch/x86/kvm/Kconfig +++ b/arch/x86/kvm/Kconfig @@ -118,6 +118,15 @@ config KVM_AMD_SEV Provides support for launching Encrypted VMs (SEV) and Encrypted VMs with Encrypted State (SEV-ES) on AMD processors. +config KVM_PVM + tristate "Pagetable-based PV Virtual Machine" + depends on KVM && X86_64 + help + Provides Pagetable-based PV Virtual Machine for KVM. + + To compile this as a module, choose M here: the module + will be called kvm-pvm. + config KVM_SMM bool "System Management Mode emulation" default y diff --git a/arch/x86/kvm/Makefile b/arch/x86/kvm/Makefile index 97bad203b1b1..036458a27d5e 100644 --- a/arch/x86/kvm/Makefile +++ b/arch/x86/kvm/Makefile @@ -33,9 +33,12 @@ ifdef CONFIG_HYPERV kvm-amd-y += svm/svm_onhyperv.o endif +kvm-pvm-y += pvm/pvm.o + obj-$(CONFIG_KVM) += kvm.o obj-$(CONFIG_KVM_INTEL) += kvm-intel.o obj-$(CONFIG_KVM_AMD) += kvm-amd.o +obj-$(CONFIG_KVM_PVM) += kvm-pvm.o AFLAGS_svm/vmenter.o := -iquote $(obj) $(obj)/svm/vmenter.o: $(obj)/kvm-asm-offsets.h diff --git a/arch/x86/kvm/pvm/pvm.c b/arch/x86/kvm/pvm/pvm.c new file mode 100644 index 000000000000..1dfa1ae57c8c --- /dev/null +++ b/arch/x86/kvm/pvm/pvm.c @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Pagetable-based Virtual Machine driver for Linux + * + * Copyright (C) 2020 Ant Group + * Copyright (C) 2020 Alibaba Group + * + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + * + */ +#include <linux/module.h> + +MODULE_AUTHOR("AntGroup"); +MODULE_LICENSE("GPL"); + +static void pvm_exit(void) +{ +} +module_exit(pvm_exit); + +static int __init pvm_init(void) +{ + return 0; +} +module_init(pvm_init); -- 2.19.1.6.gb485710b