# SPDX-License-Identifier: GPL-2.0
#
# KVM configuration
#
source "virt/kvm/Kconfig"

menuconfig VIRTUALIZATION
	bool "Virtualization"
	---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
	select EXPORT_UASM
	select PREEMPT_NOTIFIERS
	select ANON_INODES
	select KVM_GENERIC_DIRTYLOG_READ_PROTECT
	select HAVE_KVM_VCPU_ASYNC_IOCTL
	select KVM_MMIO
	select MMU_NOTIFIER
	select HAVE_KVM_IRQCHIP
	select HAVE_KVM_IRQFD
	select HAVE_KVM_IRQ_ROUTING
	select HAVE_KVM_EVENTFD
	select HAVE_KVM_MSI
	select SRCU
	---help---
	  Support for hosting Guest kernels.

choice
	prompt "Virtualization mode"
	depends on KVM
	default KVM_LOONGARCH_VZ

config KVM_LOONGARCH_VZ
	bool "LOONGARCH Virtualization (VZ) ASE"
	---help---
	  Use the LOONGARCH Virtualization (VZ) ASE to virtualize guests. This
	  supports running unmodified guest kernels (with CONFIG_KVM_GUEST=n),
	  but requires hardware support.

endchoice

config KVM_LOONGARCH_DEBUG_CSR_COUNTERS
	bool "Maintain counters for CSR accesses"
	depends on KVM
	---help---
	  Maintain statistics for Guest CSR accesses.
	  A histogram of CSR accesses is printed when the VM is
	  shutdown.

	  If unsure, say N.

source drivers/vhost/Kconfig

endif # VIRTUALIZATION
