18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci#
38c2ecf20Sopenharmony_ci# KVM configuration
48c2ecf20Sopenharmony_ci#
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_cisource "virt/kvm/Kconfig"
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_cimenuconfig VIRTUALIZATION
98c2ecf20Sopenharmony_ci	bool "Virtualization"
108c2ecf20Sopenharmony_ci	depends on HAVE_KVM || X86
118c2ecf20Sopenharmony_ci	default y
128c2ecf20Sopenharmony_ci	help
138c2ecf20Sopenharmony_ci	  Say Y here to get to see options for using your Linux host to run other
148c2ecf20Sopenharmony_ci	  operating systems inside virtual machines (guests).
158c2ecf20Sopenharmony_ci	  This option alone does not add any kernel code.
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci	  If you say N, all options in this submenu will be skipped and disabled.
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ciif VIRTUALIZATION
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciconfig KVM
228c2ecf20Sopenharmony_ci	tristate "Kernel-based Virtual Machine (KVM) support"
238c2ecf20Sopenharmony_ci	depends on HAVE_KVM
248c2ecf20Sopenharmony_ci	depends on HIGH_RES_TIMERS
258c2ecf20Sopenharmony_ci	# for TASKSTATS/TASK_DELAY_ACCT:
268c2ecf20Sopenharmony_ci	depends on NET && MULTIUSER
278c2ecf20Sopenharmony_ci	depends on X86_LOCAL_APIC
288c2ecf20Sopenharmony_ci	select PREEMPT_NOTIFIERS
298c2ecf20Sopenharmony_ci	select MMU_NOTIFIER
308c2ecf20Sopenharmony_ci	select HAVE_KVM_IRQCHIP
318c2ecf20Sopenharmony_ci	select HAVE_KVM_IRQFD
328c2ecf20Sopenharmony_ci	select IRQ_BYPASS_MANAGER
338c2ecf20Sopenharmony_ci	select HAVE_KVM_IRQ_BYPASS
348c2ecf20Sopenharmony_ci	select HAVE_KVM_IRQ_ROUTING
358c2ecf20Sopenharmony_ci	select HAVE_KVM_EVENTFD
368c2ecf20Sopenharmony_ci	select KVM_ASYNC_PF
378c2ecf20Sopenharmony_ci	select USER_RETURN_NOTIFIER
388c2ecf20Sopenharmony_ci	select KVM_MMIO
398c2ecf20Sopenharmony_ci	select TASKSTATS
408c2ecf20Sopenharmony_ci	select TASK_DELAY_ACCT
418c2ecf20Sopenharmony_ci	select PERF_EVENTS
428c2ecf20Sopenharmony_ci	select HAVE_KVM_MSI
438c2ecf20Sopenharmony_ci	select HAVE_KVM_CPU_RELAX_INTERCEPT
448c2ecf20Sopenharmony_ci	select HAVE_KVM_NO_POLL
458c2ecf20Sopenharmony_ci	select KVM_XFER_TO_GUEST_WORK
468c2ecf20Sopenharmony_ci	select KVM_GENERIC_DIRTYLOG_READ_PROTECT
478c2ecf20Sopenharmony_ci	select KVM_VFIO
488c2ecf20Sopenharmony_ci	select SRCU
498c2ecf20Sopenharmony_ci	help
508c2ecf20Sopenharmony_ci	  Support hosting fully virtualized guest machines using hardware
518c2ecf20Sopenharmony_ci	  virtualization extensions.  You will need a fairly recent
528c2ecf20Sopenharmony_ci	  processor equipped with virtualization extensions. You will also
538c2ecf20Sopenharmony_ci	  need to select one or more of the processor modules below.
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci	  This module provides access to the hardware capabilities through
568c2ecf20Sopenharmony_ci	  a character device node named /dev/kvm.
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci	  To compile this as a module, choose M here: the module
598c2ecf20Sopenharmony_ci	  will be called kvm.
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci	  If unsure, say N.
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ciconfig KVM_WERROR
648c2ecf20Sopenharmony_ci	bool "Compile KVM with -Werror"
658c2ecf20Sopenharmony_ci	# KASAN may cause the build to fail due to larger frames
668c2ecf20Sopenharmony_ci	default y if X86_64 && !KASAN
678c2ecf20Sopenharmony_ci	# We use the dependency on !COMPILE_TEST to not be enabled
688c2ecf20Sopenharmony_ci	# blindly in allmodconfig or allyesconfig configurations
698c2ecf20Sopenharmony_ci	depends on KVM
708c2ecf20Sopenharmony_ci	depends on (X86_64 && !KASAN) || !COMPILE_TEST
718c2ecf20Sopenharmony_ci	depends on EXPERT
728c2ecf20Sopenharmony_ci	help
738c2ecf20Sopenharmony_ci	  Add -Werror to the build flags for KVM.
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci	  If in doubt, say "N".
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ciconfig KVM_INTEL
788c2ecf20Sopenharmony_ci	tristate "KVM for Intel (and compatible) processors support"
798c2ecf20Sopenharmony_ci	depends on KVM && IA32_FEAT_CTL
808c2ecf20Sopenharmony_ci	help
818c2ecf20Sopenharmony_ci	  Provides support for KVM on processors equipped with Intel's VT
828c2ecf20Sopenharmony_ci	  extensions, a.k.a. Virtual Machine Extensions (VMX).
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci	  To compile this as a module, choose M here: the module
858c2ecf20Sopenharmony_ci	  will be called kvm-intel.
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ciconfig KVM_AMD
888c2ecf20Sopenharmony_ci	tristate "KVM for AMD processors support"
898c2ecf20Sopenharmony_ci	depends on KVM
908c2ecf20Sopenharmony_ci	help
918c2ecf20Sopenharmony_ci	  Provides support for KVM on AMD processors equipped with the AMD-V
928c2ecf20Sopenharmony_ci	  (SVM) extensions.
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci	  To compile this as a module, choose M here: the module
958c2ecf20Sopenharmony_ci	  will be called kvm-amd.
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ciconfig KVM_AMD_SEV
988c2ecf20Sopenharmony_ci	def_bool y
998c2ecf20Sopenharmony_ci	bool "AMD Secure Encrypted Virtualization (SEV) support"
1008c2ecf20Sopenharmony_ci	depends on KVM_AMD && X86_64
1018c2ecf20Sopenharmony_ci	depends on CRYPTO_DEV_SP_PSP && !(KVM_AMD=y && CRYPTO_DEV_CCP_DD=m)
1028c2ecf20Sopenharmony_ci	help
1038c2ecf20Sopenharmony_ci	Provides support for launching Encrypted VMs on AMD processors.
1048c2ecf20Sopenharmony_ci
1058c2ecf20Sopenharmony_ciconfig KVM_MMU_AUDIT
1068c2ecf20Sopenharmony_ci	bool "Audit KVM MMU"
1078c2ecf20Sopenharmony_ci	depends on KVM && TRACEPOINTS
1088c2ecf20Sopenharmony_ci	help
1098c2ecf20Sopenharmony_ci	 This option adds a R/W kVM module parameter 'mmu_audit', which allows
1108c2ecf20Sopenharmony_ci	 auditing of KVM MMU events at runtime.
1118c2ecf20Sopenharmony_ci
1128c2ecf20Sopenharmony_ciendif # VIRTUALIZATION
113