#
# KVM configuration
#
config HAVE_KVM
       bool

menuconfig VIRTUALIZATION
	bool "Virtualization"
	default y
	---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 && EXPERIMENTAL
	select PREEMPT_NOTIFIERS
	select ANON_INODES
	select S390_SWITCH_AMODE
	select PREEMPT
	---help---
	  Support hosting paravirtualized guest machines using the SIE
	  virtualization capability on the mainframe. This should work
	  on any 64bit machine.

	  This module provides access to the hardware capabilities through
	  a character device node named /dev/kvm.

	  To compile this as a module, choose M here: the module
	  will be called kvm.

	  If unsure, say N.

config KVM_TRACE
       bool

# OK, it's a little counter-intuitive to do this, but it puts it neatly under
# the virtualization menu.
source drivers/virtio/Kconfig

endif # VIRTUALIZATION
