# 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
	depends on MIPS_FP_SUPPORT
	select EXPORT_UASM
	select PREEMPT_NOTIFIERS
	select KVM_GENERIC_DIRTYLOG_READ_PROTECT
	select HAVE_KVM_EVENTFD
	select HAVE_KVM_VCPU_ASYNC_IOCTL
	select KVM_MMIO
	select MMU_NOTIFIER
	select INTERVAL_TREE
	select KVM_GENERIC_HARDWARE_ENABLING
	help
	  Support for hosting Guest kernels.

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

	  If unsure, say N.

endif # VIRTUALIZATION
