xref: /openbmc/linux/arch/x86/kvm/Kconfig (revision 63b3f96e1a989846a5a521d4fbef4bc86406929d)
1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
2edf88417SAvi Kivity#
3edf88417SAvi Kivity# KVM configuration
4edf88417SAvi Kivity#
5edf88417SAvi Kivity
60ba12d10SAvi Kivitysource "virt/kvm/Kconfig"
75d9b8e30SAvi Kivity
8edf88417SAvi Kivitymenuconfig VIRTUALIZATION
9edf88417SAvi Kivity	bool "Virtualization"
10edf88417SAvi Kivity	depends on HAVE_KVM || X86
11edf88417SAvi Kivity	default y
12a7f7f624SMasahiro Yamada	help
13edf88417SAvi Kivity	  Say Y here to get to see options for using your Linux host to run other
14edf88417SAvi Kivity	  operating systems inside virtual machines (guests).
15edf88417SAvi Kivity	  This option alone does not add any kernel code.
16edf88417SAvi Kivity
17edf88417SAvi Kivity	  If you say N, all options in this submenu will be skipped and disabled.
18edf88417SAvi Kivity
19edf88417SAvi Kivityif VIRTUALIZATION
20edf88417SAvi Kivity
21edf88417SAvi Kivityconfig KVM
22edf88417SAvi Kivity	tristate "Kernel-based Virtual Machine (KVM) support"
23268fe02aSAvi Kivity	depends on HAVE_KVM
2492b5265dSLiu, Jinsong	depends on HIGH_RES_TIMERS
25e42eef4bSArnd Bergmann	depends on X86_LOCAL_APIC
26edf88417SAvi Kivity	select PREEMPT_NOTIFIERS
27cddb8a5cSAndrea Arcangeli	select MMU_NOTIFIER
280ba12d10SAvi Kivity	select HAVE_KVM_IRQCHIP
29297e2105SPaul Mackerras	select HAVE_KVM_IRQFD
3087276880SFeng Wu	select IRQ_BYPASS_MANAGER
3187276880SFeng Wu	select HAVE_KVM_IRQ_BYPASS
32a725d56aSAlexander Graf	select HAVE_KVM_IRQ_ROUTING
33721eecbfSGregory Haskins	select HAVE_KVM_EVENTFD
34af585b92SGleb Natapov	select KVM_ASYNC_PF
3518863bddSAvi Kivity	select USER_RETURN_NOTIFIER
3650eb2a3cSAvi Kivity	select KVM_MMIO
37*63b3f96eSPeter Zijlstra	select SCHED_INFO
38f5132b01SGleb Natapov	select PERF_EVENTS
3907975ad3SJan Kiszka	select HAVE_KVM_MSI
40f2a74347SRaghavendra K T	select HAVE_KVM_CPU_RELAX_INTERCEPT
412d5ba19bSMarcelo Tosatti	select HAVE_KVM_NO_POLL
4272c3c0feSThomas Gleixner	select KVM_XFER_TO_GUEST_WORK
43e108ff2fSPaolo Bonzini	select KVM_GENERIC_DIRTYLOG_READ_PROTECT
44ec53500fSAlex Williamson	select KVM_VFIO
4583fe27eaSPranith Kumar	select SRCU
46a7f7f624SMasahiro Yamada	help
47edf88417SAvi Kivity	  Support hosting fully virtualized guest machines using hardware
48edf88417SAvi Kivity	  virtualization extensions.  You will need a fairly recent
49edf88417SAvi Kivity	  processor equipped with virtualization extensions. You will also
50edf88417SAvi Kivity	  need to select one or more of the processor modules below.
51edf88417SAvi Kivity
52edf88417SAvi Kivity	  This module provides access to the hardware capabilities through
53edf88417SAvi Kivity	  a character device node named /dev/kvm.
54edf88417SAvi Kivity
55edf88417SAvi Kivity	  To compile this as a module, choose M here: the module
56edf88417SAvi Kivity	  will be called kvm.
57edf88417SAvi Kivity
58edf88417SAvi Kivity	  If unsure, say N.
59edf88417SAvi Kivity
604f337fafSPaolo Bonziniconfig KVM_WERROR
614f337fafSPaolo Bonzini	bool "Compile KVM with -Werror"
624f337fafSPaolo Bonzini	# KASAN may cause the build to fail due to larger frames
634f337fafSPaolo Bonzini	default y if X86_64 && !KASAN
644f337fafSPaolo Bonzini	# We use the dependency on !COMPILE_TEST to not be enabled
654f337fafSPaolo Bonzini	# blindly in allmodconfig or allyesconfig configurations
668f116a6cSMatteo Croce	depends on KVM
674f337fafSPaolo Bonzini	depends on (X86_64 && !KASAN) || !COMPILE_TEST
684f337fafSPaolo Bonzini	depends on EXPERT
694f337fafSPaolo Bonzini	help
70a754acc3SJason A. Donenfeld	  Add -Werror to the build flags for KVM.
714f337fafSPaolo Bonzini
724f337fafSPaolo Bonzini	  If in doubt, say "N".
734f337fafSPaolo Bonzini
74edf88417SAvi Kivityconfig KVM_INTEL
758f63aaf5SSean Christopherson	tristate "KVM for Intel (and compatible) processors support"
768f63aaf5SSean Christopherson	depends on KVM && IA32_FEAT_CTL
77a7f7f624SMasahiro Yamada	help
788f63aaf5SSean Christopherson	  Provides support for KVM on processors equipped with Intel's VT
798f63aaf5SSean Christopherson	  extensions, a.k.a. Virtual Machine Extensions (VMX).
80edf88417SAvi Kivity
8158f8ac27SRobert P. J. Day	  To compile this as a module, choose M here: the module
8258f8ac27SRobert P. J. Day	  will be called kvm-intel.
8358f8ac27SRobert P. J. Day
84540745ddSSean Christophersonconfig X86_SGX_KVM
85540745ddSSean Christopherson	bool "Software Guard eXtensions (SGX) Virtualization"
86540745ddSSean Christopherson	depends on X86_SGX && KVM_INTEL
87540745ddSSean Christopherson	help
88540745ddSSean Christopherson
89540745ddSSean Christopherson	  Enables KVM guests to create SGX enclaves.
90540745ddSSean Christopherson
91540745ddSSean Christopherson	  This includes support to expose "raw" unreclaimable enclave memory to
92540745ddSSean Christopherson	  guests via a device node, e.g. /dev/sgx_vepc.
93540745ddSSean Christopherson
94540745ddSSean Christopherson	  If unsure, say N.
95540745ddSSean Christopherson
96edf88417SAvi Kivityconfig KVM_AMD
97edf88417SAvi Kivity	tristate "KVM for AMD processors support"
98edf88417SAvi Kivity	depends on KVM
99a7f7f624SMasahiro Yamada	help
100edf88417SAvi Kivity	  Provides support for KVM on AMD processors equipped with the AMD-V
101edf88417SAvi Kivity	  (SVM) extensions.
102edf88417SAvi Kivity
10358f8ac27SRobert P. J. Day	  To compile this as a module, choose M here: the module
10458f8ac27SRobert P. J. Day	  will be called kvm-amd.
10558f8ac27SRobert P. J. Day
1065dd0a57cSBrijesh Singhconfig KVM_AMD_SEV
1075dd0a57cSBrijesh Singh	def_bool y
1085dd0a57cSBrijesh Singh	bool "AMD Secure Encrypted Virtualization (SEV) support"
1095dd0a57cSBrijesh Singh	depends on KVM_AMD && X86_64
110d30f370dSJanakarajan Natarajan	depends on CRYPTO_DEV_SP_PSP && !(KVM_AMD=y && CRYPTO_DEV_CCP_DD=m)
111a7f7f624SMasahiro Yamada	help
112916391a2STom Lendacky	  Provides support for launching Encrypted VMs (SEV) and Encrypted VMs
113916391a2STom Lendacky	  with Encrypted State (SEV-ES) on AMD processors.
1145dd0a57cSBrijesh Singh
115b59b153dSPaolo Bonziniconfig KVM_XEN
116b59b153dSPaolo Bonzini	bool "Support for Xen hypercall interface"
117b59b153dSPaolo Bonzini	depends on KVM
118b59b153dSPaolo Bonzini	help
119b59b153dSPaolo Bonzini	  Provides KVM support for the hosting Xen HVM guests and
120b59b153dSPaolo Bonzini	  passing Xen hypercalls to userspace.
121b59b153dSPaolo Bonzini
122b59b153dSPaolo Bonzini	  If in doubt, say "N".
123b59b153dSPaolo Bonzini
1248b1fe17cSXiao Guangrongconfig KVM_MMU_AUDIT
1258b1fe17cSXiao Guangrong	bool "Audit KVM MMU"
1268b1fe17cSXiao Guangrong	depends on KVM && TRACEPOINTS
127a7f7f624SMasahiro Yamada	help
1288b1fe17cSXiao Guangrong	 This option adds a R/W kVM module parameter 'mmu_audit', which allows
12994491620SRandy Dunlap	 auditing of KVM MMU events at runtime.
1308b1fe17cSXiao Guangrong
131edf88417SAvi Kivityendif # VIRTUALIZATION
132