On Fri, Sep 8, 2023 at 4:10 AM WANG Xuerui <kernel@xxxxxxxxxx> wrote: > > > On 8/31/23 16:30, Tianrui Zhao wrote: > > Enable LoongArch kvm config and add the makefile to support build kvm > > module. > > > > Reviewed-by: Bibo Mao <maobibo@xxxxxxxxxxx> > > Reported-by: kernel test robot <lkp@xxxxxxxxx> > > Link: https://lore.kernel.org/oe-kbuild-all/202304131526.iXfLaVZc-lkp@xxxxxxxxx/ > > Signed-off-by: Tianrui Zhao <zhaotianrui@xxxxxxxxxxx> > > --- > > arch/loongarch/Kbuild | 1 + > > arch/loongarch/Kconfig | 3 ++ > > arch/loongarch/configs/loongson3_defconfig | 2 + > > arch/loongarch/kvm/Kconfig | 45 ++++++++++++++++++++++ > > arch/loongarch/kvm/Makefile | 22 +++++++++++ > > 5 files changed, 73 insertions(+) > > create mode 100644 arch/loongarch/kvm/Kconfig > > create mode 100644 arch/loongarch/kvm/Makefile > > > > diff --git a/arch/loongarch/Kbuild b/arch/loongarch/Kbuild > > index b01f5cdb27..40be8a1696 100644 > > --- a/arch/loongarch/Kbuild > > +++ b/arch/loongarch/Kbuild > > @@ -2,6 +2,7 @@ obj-y += kernel/ > > obj-y += mm/ > > obj-y += net/ > > obj-y += vdso/ > > +obj-y += kvm/ > Do we want to keep the list alphabetically sorted here? kvm directory can be at last, but I'm afraid that it should be ifdef CONFIG_KVM obj-y += kvm/ endif If such a guard is unnecessary, then I agree to use alphabetical order. Huacai > > > > # for cleaning > > subdir- += boot > > diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig > > index ecf282dee5..7f2f7ccc76 100644 > > --- a/arch/loongarch/Kconfig > > +++ b/arch/loongarch/Kconfig > > @@ -123,6 +123,7 @@ config LOONGARCH > > select HAVE_KPROBES > > select HAVE_KPROBES_ON_FTRACE > > select HAVE_KRETPROBES > > + select HAVE_KVM > > select HAVE_MOD_ARCH_SPECIFIC > > select HAVE_NMI > > select HAVE_PCI > > @@ -650,3 +651,5 @@ source "kernel/power/Kconfig" > > source "drivers/acpi/Kconfig" > > > > endmenu > > + > > +source "arch/loongarch/kvm/Kconfig" > > diff --git a/arch/loongarch/configs/loongson3_defconfig b/arch/loongarch/configs/loongson3_defconfig > > index d64849b4cb..7acb4ae7af 100644 > > --- a/arch/loongarch/configs/loongson3_defconfig > > +++ b/arch/loongarch/configs/loongson3_defconfig > > @@ -63,6 +63,8 @@ CONFIG_EFI_ZBOOT=y > > CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y > > CONFIG_EFI_CAPSULE_LOADER=m > > CONFIG_EFI_TEST=m > > +CONFIG_VIRTUALIZATION=y > > +CONFIG_KVM=m > > CONFIG_MODULES=y > > CONFIG_MODULE_FORCE_LOAD=y > > CONFIG_MODULE_UNLOAD=y > > diff --git a/arch/loongarch/kvm/Kconfig b/arch/loongarch/kvm/Kconfig > > new file mode 100644 > > index 0000000000..bf7d6e7cde > > --- /dev/null > > +++ b/arch/loongarch/kvm/Kconfig > > @@ -0,0 +1,45 @@ > > +# SPDX-License-Identifier: GPL-2.0 > > +# > > +# KVM configuration > > +# > > + > > +source "virt/kvm/Kconfig" > > + > > +menuconfig VIRTUALIZATION > > + bool "Virtualization" > > + help > > + Say Y here to get to see options for using your Linux host to run > > + other operating systems inside virtual machines (guests). > > + This option alone does not add any kernel code. > > + > > + If you say N, all options in this submenu will be skipped and > > + disabled. > > + > > +if VIRTUALIZATION > > + > > +config AS_HAS_LVZ_EXTENSION > > + def_bool $(as-instr,hvcl 0) > > + > > +config KVM > > + tristate "Kernel-based Virtual Machine (KVM) support" > > + depends on HAVE_KVM > > + depends on AS_HAS_LVZ_EXTENSION > > + select MMU_NOTIFIER > > + select ANON_INODES > > + select PREEMPT_NOTIFIERS > > + select KVM_MMIO > > + select KVM_GENERIC_DIRTYLOG_READ_PROTECT > > + select KVM_GENERIC_HARDWARE_ENABLING > > + select KVM_XFER_TO_GUEST_WORK > > + select HAVE_KVM_DIRTY_RING_ACQ_REL > > + select HAVE_KVM_VCPU_ASYNC_IOCTL > > + select HAVE_KVM_EVENTFD > > + select SRCU > Make the list of selects also alphabetically sorted? > > + help > > + Support hosting virtualized guest machines using hardware > > + virtualization extensions. You will need a fairly processor > > + equipped with virtualization extensions. > > The word "fairly" seems extraneous here, and can be simply dropped. > > (I suppose you forgot to delete it after tweaking the original sentence, > that came from arch/x86/kvm: "You will need a fairly recent processor > ..." -- all LoongArch processors are recent!) > > > + > > + If unsure, say N. > > + > > +endif # VIRTUALIZATION > > diff --git a/arch/loongarch/kvm/Makefile b/arch/loongarch/kvm/Makefile > > new file mode 100644 > > index 0000000000..2335e873a6 > > --- /dev/null > > +++ b/arch/loongarch/kvm/Makefile > > @@ -0,0 +1,22 @@ > > +# SPDX-License-Identifier: GPL-2.0 > > +# > > +# Makefile for LOONGARCH KVM support > "LoongArch" -- you may want to check the entire patch series for such > ALL-CAPS references to LoongArch in natural language paragraphs, they > all want to be spelled "LoongArch". > > +# > > + > > +ccflags-y += -I $(srctree)/$(src) > > + > > +include $(srctree)/virt/kvm/Makefile.kvm > > + > > +obj-$(CONFIG_KVM) += kvm.o > > + > > +kvm-y += main.o > > +kvm-y += vm.o > > +kvm-y += vmid.o > > +kvm-y += tlb.o > > +kvm-y += mmu.o > > +kvm-y += vcpu.o > > +kvm-y += exit.o > > +kvm-y += interrupt.o > > +kvm-y += timer.o > > +kvm-y += switch.o > > +kvm-y += csr_ops.o > I'd suggest sorting this list too to better avoid editing conflicts in > the future. > > -- > WANG "xen0n" Xuerui > > Linux/LoongArch mailing list: https://lore.kernel.org/loongarch/ > >