# SPDX-License-Identifier: GPL-2.0 # KVM common configuration items and defaults config KVM_COMMON bool select EVENTFD select INTERVAL_TREE select PREEMPT_NOTIFIERS config HAVE_KVM_PFNCACHE bool config HAVE_KVM_IRQCHIP bool config HAVE_KVM_IRQ_ROUTING bool config HAVE_KVM_DIRTY_RING bool # Only strongly ordered architectures can select this, as it doesn't # put any explicit constraint on userspace ordering. They can also # select the _ACQ_REL version. config HAVE_KVM_DIRTY_RING_TSO bool select HAVE_KVM_DIRTY_RING depends on X86 # Weakly ordered architectures can only select this, advertising # to userspace the additional ordering requirements. config HAVE_KVM_DIRTY_RING_ACQ_REL bool select HAVE_KVM_DIRTY_RING # Allow enabling both the dirty bitmap and dirty ring. Only architectures # that need to dirty memory outside of a vCPU context should select this. config NEED_KVM_DIRTY_RING_WITH_BITMAP bool depends on HAVE_KVM_DIRTY_RING config KVM_MMIO bool config KVM_ASYNC_PF bool # Toggle to switch between direct notification and batch job config KVM_ASYNC_PF_SYNC bool config HAVE_KVM_MSI bool config HAVE_KVM_READONLY_MEM bool config HAVE_KVM_CPU_RELAX_INTERCEPT bool config KVM_VFIO bool config HAVE_KVM_INVALID_WAKEUPS bool config KVM_GENERIC_DIRTYLOG_READ_PROTECT bool config KVM_GENERIC_PRE_FAULT_MEMORY bool config KVM_COMPAT def_bool y depends on KVM && COMPAT && !(S390 || ARM64 || RISCV) config HAVE_KVM_IRQ_BYPASS bool select IRQ_BYPASS_MANAGER config HAVE_KVM_VCPU_ASYNC_IOCTL bool config HAVE_KVM_VCPU_RUN_PID_CHANGE bool config HAVE_KVM_NO_POLL bool config KVM_XFER_TO_GUEST_WORK bool config HAVE_KVM_PM_NOTIFIER bool config KVM_GENERIC_HARDWARE_ENABLING bool config KVM_GENERIC_MMU_NOTIFIER select MMU_NOTIFIER bool config KVM_ELIDE_TLB_FLUSH_IF_YOUNG depends on KVM_GENERIC_MMU_NOTIFIER bool config KVM_GENERIC_MEMORY_ATTRIBUTES depends on KVM_GENERIC_MMU_NOTIFIER bool config KVM_PRIVATE_MEM select XARRAY_MULTI bool config KVM_GENERIC_PRIVATE_MEM select KVM_GENERIC_MEMORY_ATTRIBUTES select KVM_PRIVATE_MEM bool config HAVE_KVM_ARCH_GMEM_PREPARE bool depends on KVM_PRIVATE_MEM config HAVE_KVM_ARCH_GMEM_INVALIDATE bool depends on KVM_PRIVATE_MEM