xref: /linux/virt/kvm/Kconfig (revision 51d90a15fedf8366cb96ef68d0ea2d0bf15417d2)
1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
20ba12d10SAvi Kivity# KVM common configuration items and defaults
30ba12d10SAvi Kivity
4caadf876SPaolo Bonziniconfig KVM_COMMON
5caadf876SPaolo Bonzini       bool
68132d887SPaolo Bonzini       select EVENTFD
7caadf876SPaolo Bonzini       select INTERVAL_TREE
8caadf876SPaolo Bonzini       select PREEMPT_NOTIFIERS
90ba12d10SAvi Kivity
10982ed0deSDavid Woodhouseconfig HAVE_KVM_PFNCACHE
11982ed0deSDavid Woodhouse       bool
12982ed0deSDavid Woodhouse
130ba12d10SAvi Kivityconfig HAVE_KVM_IRQCHIP
140ba12d10SAvi Kivity       bool
15721eecbfSGregory Haskins
16a725d56aSAlexander Grafconfig HAVE_KVM_IRQ_ROUTING
17a725d56aSAlexander Graf       bool
18a725d56aSAlexander Graf
19dc70ec21SDavid Woodhouseconfig HAVE_KVM_DIRTY_RING
20dc70ec21SDavid Woodhouse       bool
21dc70ec21SDavid Woodhouse
2217601bfeSMarc Zyngier# Only strongly ordered architectures can select this, as it doesn't
2317601bfeSMarc Zyngier# put any explicit constraint on userspace ordering. They can also
2417601bfeSMarc Zyngier# select the _ACQ_REL version.
2517601bfeSMarc Zyngierconfig HAVE_KVM_DIRTY_RING_TSO
2617601bfeSMarc Zyngier       bool
2717601bfeSMarc Zyngier       select HAVE_KVM_DIRTY_RING
2817601bfeSMarc Zyngier       depends on X86
2917601bfeSMarc Zyngier
3017601bfeSMarc Zyngier# Weakly ordered architectures can only select this, advertising
3117601bfeSMarc Zyngier# to userspace the additional ordering requirements.
3217601bfeSMarc Zyngierconfig HAVE_KVM_DIRTY_RING_ACQ_REL
3317601bfeSMarc Zyngier       bool
3417601bfeSMarc Zyngier       select HAVE_KVM_DIRTY_RING
3517601bfeSMarc Zyngier
3686bdf3ebSGavin Shan# Allow enabling both the dirty bitmap and dirty ring. Only architectures
3786bdf3ebSGavin Shan# that need to dirty memory outside of a vCPU context should select this.
3886bdf3ebSGavin Shanconfig NEED_KVM_DIRTY_RING_WITH_BITMAP
3986bdf3ebSGavin Shan	bool
4086bdf3ebSGavin Shan	depends on HAVE_KVM_DIRTY_RING
4186bdf3ebSGavin Shan
4250eb2a3cSAvi Kivityconfig KVM_MMIO
4350eb2a3cSAvi Kivity       bool
44af585b92SGleb Natapov
45af585b92SGleb Natapovconfig KVM_ASYNC_PF
46af585b92SGleb Natapov       bool
4707975ad3SJan Kiszka
48e0ead41aSDominik Dingel# Toggle to switch between direct notification and batch job
49e0ead41aSDominik Dingelconfig KVM_ASYNC_PF_SYNC
50e0ead41aSDominik Dingel       bool
51e0ead41aSDominik Dingel
5207975ad3SJan Kiszkaconfig HAVE_KVM_MSI
5307975ad3SJan Kiszka       bool
54f2a74347SRaghavendra K T
558886640dSPaolo Bonziniconfig HAVE_KVM_READONLY_MEM
568886640dSPaolo Bonzini       bool
578886640dSPaolo Bonzini
58f2a74347SRaghavendra K Tconfig HAVE_KVM_CPU_RELAX_INTERCEPT
59f2a74347SRaghavendra K T       bool
60ec53500fSAlex Williamson
61ec53500fSAlex Williamsonconfig KVM_VFIO
62ec53500fSAlex Williamson       bool
63a6d51016SMario Smarduch
643491caf2SChristian Borntraegerconfig HAVE_KVM_INVALID_WAKEUPS
653491caf2SChristian Borntraeger       bool
663491caf2SChristian Borntraeger
67ba0513b5SMario Smarduchconfig KVM_GENERIC_DIRTYLOG_READ_PROTECT
68ba0513b5SMario Smarduch       bool
69de8e5d74SChristian Borntraeger
70bc1a5cd0SIsaku Yamahataconfig KVM_GENERIC_PRE_FAULT_MEMORY
71bc1a5cd0SIsaku Yamahata       bool
72bc1a5cd0SIsaku Yamahata
73de8e5d74SChristian Borntraegerconfig KVM_COMPAT
74de8e5d74SChristian Borntraeger       def_bool y
75afec0c65SGuo Ren       depends on KVM && COMPAT && !(S390 || ARM64 || RISCV)
761a02b270SEric Auger
771a02b270SEric Augerconfig HAVE_KVM_IRQ_BYPASS
78459a3511SSean Christopherson       tristate
7961df71eeSPaolo Bonzini       select IRQ_BYPASS_MANAGER
805cb0944cSPaolo Bonzini
81bd2a6394SChristoffer Dallconfig HAVE_KVM_VCPU_RUN_PID_CHANGE
82bd2a6394SChristoffer Dall       bool
83cdd6ad3aSChristian Borntraeger
84cdd6ad3aSChristian Borntraegerconfig HAVE_KVM_NO_POLL
85cdd6ad3aSChristian Borntraeger       bool
86935ace2fSThomas Gleixner
879be7e1e3SSean Christophersonconfig VIRT_XFER_TO_GUEST_WORK
88935ace2fSThomas Gleixner       bool
892fdef3a2SSergey Senozhatsky
902fdef3a2SSergey Senozhatskyconfig HAVE_KVM_PM_NOTIFIER
912fdef3a2SSergey Senozhatsky       bool
92441f7bfaSSean Christopherson
93441f7bfaSSean Christophersonconfig KVM_GENERIC_HARDWARE_ENABLING
94441f7bfaSSean Christopherson       bool
95f128cf8cSSean Christopherson
96f128cf8cSSean Christophersonconfig KVM_GENERIC_MMU_NOTIFIER
97f128cf8cSSean Christopherson       select MMU_NOTIFIER
98f128cf8cSSean Christopherson       bool
995a475554SChao Peng
1002ebbe030SSean Christophersonconfig KVM_ELIDE_TLB_FLUSH_IF_YOUNG
1012ebbe030SSean Christopherson       depends on KVM_GENERIC_MMU_NOTIFIER
1022ebbe030SSean Christopherson       bool
1032ebbe030SSean Christopherson
104aa34b811SJames Houghtonconfig KVM_MMU_LOCKLESS_AGING
105aa34b811SJames Houghton       depends on KVM_GENERIC_MMU_NOTIFIER
106aa34b811SJames Houghton       bool
107aa34b811SJames Houghton
1085a475554SChao Pengconfig KVM_GENERIC_MEMORY_ATTRIBUTES
1093a373e02SPaolo Bonzini       depends on KVM_GENERIC_MMU_NOTIFIER
1105a475554SChao Peng       bool
111a7800aa8SSean Christopherson
11219a9a1abSFuad Tabbaconfig KVM_GUEST_MEMFD
113*9aef71c8SSean Christopherson       depends on KVM_GENERIC_MMU_NOTIFIER
114a7800aa8SSean Christopherson       select XARRAY_MULTI
115a7800aa8SSean Christopherson       bool
11689ea60c2SSean Christopherson
117564429a6SPaolo Bonziniconfig HAVE_KVM_ARCH_GMEM_PREPARE
1183bb2531eSPaolo Bonzini       bool
11919a9a1abSFuad Tabba       depends on KVM_GUEST_MEMFD
120a90764f0SMichael Roth
121564429a6SPaolo Bonziniconfig HAVE_KVM_ARCH_GMEM_INVALIDATE
122a90764f0SMichael Roth       bool
12319a9a1abSFuad Tabba       depends on KVM_GUEST_MEMFD
12436cf63bbSFuad Tabba
12536cf63bbSFuad Tabbaconfig HAVE_KVM_ARCH_GMEM_POPULATE
12636cf63bbSFuad Tabba       bool
12736cf63bbSFuad Tabba       depends on KVM_GUEST_MEMFD
128