| # SPDX-License-Identifier: GPL-2.0 |
| # |
| # KVM configuration |
| # |
| |
| source "virt/kvm/Kconfig" |
| |
| menuconfig VIRTUALIZATION |
| bool "Virtualization" |
| depends on HAVE_KVM || X86 |
| default y |
| 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 KVM |
| tristate "Kernel-based Virtual Machine (KVM) support" |
| depends on HAVE_KVM |
| depends on HIGH_RES_TIMERS |
| depends on X86_LOCAL_APIC |
| select PREEMPT_NOTIFIERS |
| select MMU_NOTIFIER |
| select HAVE_KVM_IRQCHIP |
| select HAVE_KVM_PFNCACHE |
| select HAVE_KVM_IRQFD |
| select HAVE_KVM_DIRTY_RING_TSO |
| select HAVE_KVM_DIRTY_RING_ACQ_REL |
| select IRQ_BYPASS_MANAGER |
| select HAVE_KVM_IRQ_BYPASS |
| select HAVE_KVM_IRQ_ROUTING |
| select HAVE_KVM_EVENTFD |
| select KVM_ASYNC_PF |
| select USER_RETURN_NOTIFIER |
| select KVM_MMIO |
| select SCHED_INFO |
| select PERF_EVENTS |
| select GUEST_PERF_EVENTS |
| select HAVE_KVM_MSI |
| select HAVE_KVM_CPU_RELAX_INTERCEPT |
| select HAVE_KVM_NO_POLL |
| select KVM_XFER_TO_GUEST_WORK |
| select KVM_GENERIC_DIRTYLOG_READ_PROTECT |
| select KVM_VFIO |
| select INTERVAL_TREE |
| select HAVE_KVM_PM_NOTIFIER if PM |
| select KVM_GENERIC_HARDWARE_ENABLING |
| help |
| Support hosting fully virtualized guest machines using hardware |
| virtualization extensions. You will need a fairly recent |
| processor equipped with virtualization extensions. You will also |
| need to select one or more of the processor modules below. |
| |
| This module provides access to the hardware capabilities through |
| a character device node named /dev/kvm. |
| |
| To compile this as a module, choose M here: the module |
| will be called kvm. |
| |
| If unsure, say N. |
| |
| config KVM_WERROR |
| bool "Compile KVM with -Werror" |
| # KASAN may cause the build to fail due to larger frames |
| default y if X86_64 && !KASAN |
| # We use the dependency on !COMPILE_TEST to not be enabled |
| # blindly in allmodconfig or allyesconfig configurations |
| depends on KVM |
| depends on (X86_64 && !KASAN) || !COMPILE_TEST |
| depends on EXPERT |
| help |
| Add -Werror to the build flags for KVM. |
| |
| If in doubt, say "N". |
| |
| config KVM_INTEL |
| tristate "KVM for Intel (and compatible) processors support" |
| depends on KVM && IA32_FEAT_CTL |
| help |
| Provides support for KVM on processors equipped with Intel's VT |
| extensions, a.k.a. Virtual Machine Extensions (VMX). |
| |
| To compile this as a module, choose M here: the module |
| will be called kvm-intel. |
| |
| config X86_SGX_KVM |
| bool "Software Guard eXtensions (SGX) Virtualization" |
| depends on X86_SGX && KVM_INTEL |
| help |
| |
| Enables KVM guests to create SGX enclaves. |
| |
| This includes support to expose "raw" unreclaimable enclave memory to |
| guests via a device node, e.g. /dev/sgx_vepc. |
| |
| If unsure, say N. |
| |
| config KVM_AMD |
| tristate "KVM for AMD processors support" |
| depends on KVM && (CPU_SUP_AMD || CPU_SUP_HYGON) |
| help |
| Provides support for KVM on AMD processors equipped with the AMD-V |
| (SVM) extensions. |
| |
| To compile this as a module, choose M here: the module |
| will be called kvm-amd. |
| |
| config KVM_AMD_SEV |
| def_bool y |
| bool "AMD Secure Encrypted Virtualization (SEV) support" |
| depends on KVM_AMD && X86_64 |
| depends on CRYPTO_DEV_SP_PSP && !(KVM_AMD=y && CRYPTO_DEV_CCP_DD=m) |
| help |
| Provides support for launching Encrypted VMs (SEV) and Encrypted VMs |
| with Encrypted State (SEV-ES) on AMD processors. |
| |
| config KVM_SMM |
| bool "System Management Mode emulation" |
| default y |
| depends on KVM |
| help |
| Provides support for KVM to emulate System Management Mode (SMM) |
| in virtual machines. This can be used by the virtual machine |
| firmware to implement UEFI secure boot. |
| |
| If unsure, say Y. |
| |
| config KVM_XEN |
| bool "Support for Xen hypercall interface" |
| depends on KVM |
| help |
| Provides KVM support for the hosting Xen HVM guests and |
| passing Xen hypercalls to userspace. |
| |
| If in doubt, say "N". |
| |
| config KVM_PROVE_MMU |
| bool "Prove KVM MMU correctness" |
| depends on DEBUG_KERNEL |
| depends on KVM |
| depends on EXPERT |
| help |
| Enables runtime assertions in KVM's MMU that are too costly to enable |
| in anything remotely resembling a production environment, e.g. this |
| gates code that verifies a to-be-freed page table doesn't have any |
| present SPTEs. |
| |
| If in doubt, say "N". |
| |
| config KVM_EXTERNAL_WRITE_TRACKING |
| bool |
| |
| endif # VIRTUALIZATION |