1# SPDX-License-Identifier: GPL-2.0
2# KVM common configuration items and defaults
3
4config KVM_COMMON
5       bool
6       select EVENTFD
7       select INTERVAL_TREE
8       select PREEMPT_NOTIFIERS
9
10config HAVE_KVM_PFNCACHE
11       bool
12
13config HAVE_KVM_IRQCHIP
14       bool
15
16config HAVE_KVM_IRQ_ROUTING
17       bool
18
19config HAVE_KVM_DIRTY_RING
20       bool
21
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.
25config HAVE_KVM_DIRTY_RING_TSO
26       bool
27       select HAVE_KVM_DIRTY_RING
28       depends on X86
29
30# Weakly ordered architectures can only select this, advertising
31# to userspace the additional ordering requirements.
32config HAVE_KVM_DIRTY_RING_ACQ_REL
33       bool
34       select HAVE_KVM_DIRTY_RING
35
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.
38config NEED_KVM_DIRTY_RING_WITH_BITMAP
39	bool
40	depends on HAVE_KVM_DIRTY_RING
41
42config KVM_MMIO
43       bool
44
45config KVM_ASYNC_PF
46       bool
47
48# Toggle to switch between direct notification and batch job
49config KVM_ASYNC_PF_SYNC
50       bool
51
52config HAVE_KVM_MSI
53       bool
54
55config HAVE_KVM_READONLY_MEM
56       bool
57
58config HAVE_KVM_CPU_RELAX_INTERCEPT
59       bool
60
61config KVM_VFIO
62       bool
63
64config HAVE_KVM_INVALID_WAKEUPS
65       bool
66
67config KVM_GENERIC_DIRTYLOG_READ_PROTECT
68       bool
69
70config KVM_GENERIC_PRE_FAULT_MEMORY
71       bool
72
73config KVM_COMPAT
74       def_bool y
75       depends on KVM && COMPAT && !(S390 || ARM64 || RISCV)
76
77config HAVE_KVM_IRQ_BYPASS
78       bool
79       select IRQ_BYPASS_MANAGER
80
81config HAVE_KVM_VCPU_ASYNC_IOCTL
82       bool
83
84config HAVE_KVM_VCPU_RUN_PID_CHANGE
85       bool
86
87config HAVE_KVM_NO_POLL
88       bool
89
90config KVM_XFER_TO_GUEST_WORK
91       bool
92
93config HAVE_KVM_PM_NOTIFIER
94       bool
95
96config KVM_GENERIC_HARDWARE_ENABLING
97       bool
98
99config KVM_GENERIC_MMU_NOTIFIER
100       select MMU_NOTIFIER
101       bool
102
103config KVM_GENERIC_MEMORY_ATTRIBUTES
104       depends on KVM_GENERIC_MMU_NOTIFIER
105       bool
106
107config KVM_PRIVATE_MEM
108       select XARRAY_MULTI
109       bool
110
111config KVM_GENERIC_PRIVATE_MEM
112       select KVM_GENERIC_MEMORY_ATTRIBUTES
113       select KVM_PRIVATE_MEM
114       bool
115
116config HAVE_KVM_ARCH_GMEM_PREPARE
117       bool
118       depends on KVM_PRIVATE_MEM
119
120config HAVE_KVM_ARCH_GMEM_INVALIDATE
121       bool
122       depends on KVM_PRIVATE_MEM
123