Merge tag 'block-6.1-2022-10-20' of git://git.kernel.dk/linux
[linux-block.git] / arch / x86 / kvm / Kconfig
CommitLineData
b2441318 1# SPDX-License-Identifier: GPL-2.0
6aa8b732
AK
2#
3# KVM configuration
4#
fb56dbb3 5
0ba12d10 6source "virt/kvm/Kconfig"
5d9b8e30 7
de062065
JE
8menuconfig VIRTUALIZATION
9 bool "Virtualization"
fb56dbb3 10 depends on HAVE_KVM || X86
de062065 11 default y
a7f7f624 12 help
36a74097
AK
13 Say Y here to get to see options for using your Linux host to run other
14 operating systems inside virtual machines (guests).
06bfb7eb
JE
15 This option alone does not add any kernel code.
16
17 If you say N, all options in this submenu will be skipped and disabled.
de062065
JE
18
19if VIRTUALIZATION
fd24dc4a 20
6aa8b732
AK
21config KVM
22 tristate "Kernel-based Virtual Machine (KVM) support"
268fe02a 23 depends on HAVE_KVM
92b5265d 24 depends on HIGH_RES_TIMERS
e42eef4b 25 depends on X86_LOCAL_APIC
15ad7146 26 select PREEMPT_NOTIFIERS
cddb8a5c 27 select MMU_NOTIFIER
0ba12d10 28 select HAVE_KVM_IRQCHIP
982ed0de 29 select HAVE_KVM_PFNCACHE
297e2105 30 select HAVE_KVM_IRQFD
17601bfe 31 select HAVE_KVM_DIRTY_RING_TSO
fc0693d4 32 select HAVE_KVM_DIRTY_RING_ACQ_REL
87276880
FW
33 select IRQ_BYPASS_MANAGER
34 select HAVE_KVM_IRQ_BYPASS
a725d56a 35 select HAVE_KVM_IRQ_ROUTING
721eecbf 36 select HAVE_KVM_EVENTFD
af585b92 37 select KVM_ASYNC_PF
18863bdd 38 select USER_RETURN_NOTIFIER
50eb2a3c 39 select KVM_MMIO
63b3f96e 40 select SCHED_INFO
f5132b01 41 select PERF_EVENTS
2aef6f30 42 select GUEST_PERF_EVENTS
07975ad3 43 select HAVE_KVM_MSI
f2a74347 44 select HAVE_KVM_CPU_RELAX_INTERCEPT
2d5ba19b 45 select HAVE_KVM_NO_POLL
72c3c0fe 46 select KVM_XFER_TO_GUEST_WORK
e108ff2f 47 select KVM_GENERIC_DIRTYLOG_READ_PROTECT
ec53500f 48 select KVM_VFIO
83fe27ea 49 select SRCU
ed922739 50 select INTERVAL_TREE
7d62874f 51 select HAVE_KVM_PM_NOTIFIER if PM
a7f7f624 52 help
6aa8b732
AK
53 Support hosting fully virtualized guest machines using hardware
54 virtualization extensions. You will need a fairly recent
55 processor equipped with virtualization extensions. You will also
56 need to select one or more of the processor modules below.
57
58 This module provides access to the hardware capabilities through
59 a character device node named /dev/kvm.
60
61 To compile this as a module, choose M here: the module
62 will be called kvm.
63
64 If unsure, say N.
65
4f337faf
PB
66config KVM_WERROR
67 bool "Compile KVM with -Werror"
68 # KASAN may cause the build to fail due to larger frames
69 default y if X86_64 && !KASAN
70 # We use the dependency on !COMPILE_TEST to not be enabled
71 # blindly in allmodconfig or allyesconfig configurations
8f116a6c 72 depends on KVM
4f337faf
PB
73 depends on (X86_64 && !KASAN) || !COMPILE_TEST
74 depends on EXPERT
75 help
a754acc3 76 Add -Werror to the build flags for KVM.
4f337faf
PB
77
78 If in doubt, say "N".
79
6aa8b732 80config KVM_INTEL
8f63aaf5
SC
81 tristate "KVM for Intel (and compatible) processors support"
82 depends on KVM && IA32_FEAT_CTL
a7f7f624 83 help
8f63aaf5
SC
84 Provides support for KVM on processors equipped with Intel's VT
85 extensions, a.k.a. Virtual Machine Extensions (VMX).
6aa8b732 86
58f8ac27
RD
87 To compile this as a module, choose M here: the module
88 will be called kvm-intel.
89
540745dd
SC
90config X86_SGX_KVM
91 bool "Software Guard eXtensions (SGX) Virtualization"
92 depends on X86_SGX && KVM_INTEL
93 help
94
95 Enables KVM guests to create SGX enclaves.
96
97 This includes support to expose "raw" unreclaimable enclave memory to
98 guests via a device node, e.g. /dev/sgx_vepc.
99
100 If unsure, say N.
101
6aa8b732
AK
102config KVM_AMD
103 tristate "KVM for AMD processors support"
104 depends on KVM
a7f7f624 105 help
6aa8b732
AK
106 Provides support for KVM on AMD processors equipped with the AMD-V
107 (SVM) extensions.
fd24dc4a 108
58f8ac27
RD
109 To compile this as a module, choose M here: the module
110 will be called kvm-amd.
111
5dd0a57c
BS
112config KVM_AMD_SEV
113 def_bool y
114 bool "AMD Secure Encrypted Virtualization (SEV) support"
115 depends on KVM_AMD && X86_64
d30f370d 116 depends on CRYPTO_DEV_SP_PSP && !(KVM_AMD=y && CRYPTO_DEV_CCP_DD=m)
a7f7f624 117 help
916391a2
TL
118 Provides support for launching Encrypted VMs (SEV) and Encrypted VMs
119 with Encrypted State (SEV-ES) on AMD processors.
5dd0a57c 120
b59b153d
PB
121config KVM_XEN
122 bool "Support for Xen hypercall interface"
123 depends on KVM
124 help
125 Provides KVM support for the hosting Xen HVM guests and
126 passing Xen hypercalls to userspace.
127
128 If in doubt, say "N".
129
e9d0c0c4
DS
130config KVM_EXTERNAL_WRITE_TRACKING
131 bool
132
de062065 133endif # VIRTUALIZATION