^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) # KVM configuration
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) source "virt/kvm/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) menuconfig VIRTUALIZATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) bool "Virtualization"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) depends on HAVE_KVM || X86
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) Say Y here to get to see options for using your Linux host to run other
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) operating systems inside virtual machines (guests).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) This option alone does not add any kernel code.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) If you say N, all options in this submenu will be skipped and disabled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) if VIRTUALIZATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) config KVM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) tristate "Kernel-based Virtual Machine (KVM) support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) depends on HAVE_KVM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) depends on HIGH_RES_TIMERS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) # for TASKSTATS/TASK_DELAY_ACCT:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) depends on NET && MULTIUSER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) depends on X86_LOCAL_APIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) select PREEMPT_NOTIFIERS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) select MMU_NOTIFIER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) select HAVE_KVM_IRQCHIP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) select HAVE_KVM_IRQFD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) select IRQ_BYPASS_MANAGER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) select HAVE_KVM_IRQ_BYPASS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) select HAVE_KVM_IRQ_ROUTING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) select HAVE_KVM_EVENTFD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) select KVM_ASYNC_PF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) select USER_RETURN_NOTIFIER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) select KVM_MMIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) select TASKSTATS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) select TASK_DELAY_ACCT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) select PERF_EVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) select HAVE_KVM_MSI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) select HAVE_KVM_CPU_RELAX_INTERCEPT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) select HAVE_KVM_NO_POLL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) select KVM_XFER_TO_GUEST_WORK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) select KVM_GENERIC_DIRTYLOG_READ_PROTECT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) select KVM_VFIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) select SRCU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) Support hosting fully virtualized guest machines using hardware
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) virtualization extensions. You will need a fairly recent
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) processor equipped with virtualization extensions. You will also
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) need to select one or more of the processor modules below.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) This module provides access to the hardware capabilities through
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) a character device node named /dev/kvm.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) To compile this as a module, choose M here: the module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) will be called kvm.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) config KVM_WERROR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) bool "Compile KVM with -Werror"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) # KASAN may cause the build to fail due to larger frames
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) default y if X86_64 && !KASAN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) # We use the dependency on !COMPILE_TEST to not be enabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) # blindly in allmodconfig or allyesconfig configurations
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) depends on KVM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) depends on (X86_64 && !KASAN) || !COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) depends on EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) Add -Werror to the build flags for KVM.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) If in doubt, say "N".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) config KVM_INTEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) tristate "KVM for Intel (and compatible) processors support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) depends on KVM && IA32_FEAT_CTL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) Provides support for KVM on processors equipped with Intel's VT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) extensions, a.k.a. Virtual Machine Extensions (VMX).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) To compile this as a module, choose M here: the module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) will be called kvm-intel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) config KVM_AMD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) tristate "KVM for AMD processors support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) depends on KVM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) Provides support for KVM on AMD processors equipped with the AMD-V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) (SVM) extensions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) To compile this as a module, choose M here: the module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) will be called kvm-amd.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) config KVM_AMD_SEV
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) bool "AMD Secure Encrypted Virtualization (SEV) support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) depends on KVM_AMD && X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) depends on CRYPTO_DEV_SP_PSP && !(KVM_AMD=y && CRYPTO_DEV_CCP_DD=m)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) Provides support for launching Encrypted VMs on AMD processors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) config KVM_MMU_AUDIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) bool "Audit KVM MMU"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) depends on KVM && TRACEPOINTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) This option adds a R/W kVM module parameter 'mmu_audit', which allows
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) auditing of KVM MMU events at runtime.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) endif # VIRTUALIZATION