1 # SPDX-License-Identifier: GPL-2.0
2 # KVM common configuration items and defaults
8 select PREEMPT_NOTIFIERS
10 config HAVE_KVM_PFNCACHE
13 config HAVE_KVM_IRQCHIP
16 config HAVE_KVM_IRQ_ROUTING
19 config HAVE_KVM_DIRTY_RING
22 # Only strongly ordered architectures can select this, as it doesn't
23 # put any explicit constraint on userspace ordering. They can also
24 # select the _ACQ_REL version.
25 config HAVE_KVM_DIRTY_RING_TSO
27 select HAVE_KVM_DIRTY_RING
30 # Weakly ordered architectures can only select this, advertising
31 # to userspace the additional ordering requirements.
32 config HAVE_KVM_DIRTY_RING_ACQ_REL
34 select HAVE_KVM_DIRTY_RING
36 # Allow enabling both the dirty bitmap and dirty ring. Only architectures
37 # that need to dirty memory outside of a vCPU context should select this.
38 config NEED_KVM_DIRTY_RING_WITH_BITMAP
40 depends on HAVE_KVM_DIRTY_RING
48 # Toggle to switch between direct notification and batch job
49 config KVM_ASYNC_PF_SYNC
55 config HAVE_KVM_READONLY_MEM
58 config HAVE_KVM_CPU_RELAX_INTERCEPT
64 config HAVE_KVM_INVALID_WAKEUPS
67 config KVM_GENERIC_DIRTYLOG_READ_PROTECT
70 config KVM_GENERIC_PRE_FAULT_MEMORY
75 depends on KVM && COMPAT && !(S390 || ARM64 || RISCV)
77 config HAVE_KVM_IRQ_BYPASS
79 select IRQ_BYPASS_MANAGER
81 config HAVE_KVM_VCPU_ASYNC_IOCTL
84 config HAVE_KVM_VCPU_RUN_PID_CHANGE
87 config HAVE_KVM_NO_POLL
90 config KVM_XFER_TO_GUEST_WORK
93 config HAVE_KVM_PM_NOTIFIER
96 config KVM_GENERIC_HARDWARE_ENABLING
99 config KVM_GENERIC_MMU_NOTIFIER
103 config KVM_ELIDE_TLB_FLUSH_IF_YOUNG
104 depends on KVM_GENERIC_MMU_NOTIFIER
107 config KVM_GENERIC_MEMORY_ATTRIBUTES
108 depends on KVM_GENERIC_MMU_NOTIFIER
111 config KVM_PRIVATE_MEM
115 config KVM_GENERIC_PRIVATE_MEM
116 select KVM_GENERIC_MEMORY_ATTRIBUTES
117 select KVM_PRIVATE_MEM
120 config HAVE_KVM_ARCH_GMEM_PREPARE
122 depends on KVM_PRIVATE_MEM
124 config HAVE_KVM_ARCH_GMEM_INVALIDATE
126 depends on KVM_PRIVATE_MEM