xref: /linux/virt/kvm/Kconfig (revision 949d0a46ad1b9ab3450fb6ed69ff1e3e13c657bd)
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
8*407fd8b8SPaolo Bonzini       select MMU_NOTIFIER
9caadf876SPaolo Bonzini       select PREEMPT_NOTIFIERS
100ba12d10SAvi Kivity
11982ed0deSDavid Woodhouseconfig HAVE_KVM_PFNCACHE
12982ed0deSDavid Woodhouse       bool
13982ed0deSDavid Woodhouse
140ba12d10SAvi Kivityconfig HAVE_KVM_IRQCHIP
150ba12d10SAvi Kivity       bool
16721eecbfSGregory Haskins
17a725d56aSAlexander Grafconfig HAVE_KVM_IRQ_ROUTING
18a725d56aSAlexander Graf       bool
19a725d56aSAlexander Graf
20dc70ec21SDavid Woodhouseconfig HAVE_KVM_DIRTY_RING
21dc70ec21SDavid Woodhouse       bool
22dc70ec21SDavid Woodhouse
2317601bfeSMarc Zyngier# Only strongly ordered architectures can select this, as it doesn't
2417601bfeSMarc Zyngier# put any explicit constraint on userspace ordering. They can also
2517601bfeSMarc Zyngier# select the _ACQ_REL version.
2617601bfeSMarc Zyngierconfig HAVE_KVM_DIRTY_RING_TSO
2717601bfeSMarc Zyngier       bool
2817601bfeSMarc Zyngier       select HAVE_KVM_DIRTY_RING
2917601bfeSMarc Zyngier       depends on X86
3017601bfeSMarc Zyngier
3117601bfeSMarc Zyngier# Weakly ordered architectures can only select this, advertising
3217601bfeSMarc Zyngier# to userspace the additional ordering requirements.
3317601bfeSMarc Zyngierconfig HAVE_KVM_DIRTY_RING_ACQ_REL
3417601bfeSMarc Zyngier       bool
3517601bfeSMarc Zyngier       select HAVE_KVM_DIRTY_RING
3617601bfeSMarc Zyngier
3786bdf3ebSGavin Shan# Allow enabling both the dirty bitmap and dirty ring. Only architectures
3886bdf3ebSGavin Shan# that need to dirty memory outside of a vCPU context should select this.
3986bdf3ebSGavin Shanconfig NEED_KVM_DIRTY_RING_WITH_BITMAP
4086bdf3ebSGavin Shan	bool
4186bdf3ebSGavin Shan	depends on HAVE_KVM_DIRTY_RING
4286bdf3ebSGavin Shan
4350eb2a3cSAvi Kivityconfig KVM_MMIO
4450eb2a3cSAvi Kivity       bool
45af585b92SGleb Natapov
46af585b92SGleb Natapovconfig KVM_ASYNC_PF
47af585b92SGleb Natapov       bool
4807975ad3SJan Kiszka
49e0ead41aSDominik Dingel# Toggle to switch between direct notification and batch job
50e0ead41aSDominik Dingelconfig KVM_ASYNC_PF_SYNC
51e0ead41aSDominik Dingel       bool
52e0ead41aSDominik Dingel
5307975ad3SJan Kiszkaconfig HAVE_KVM_MSI
5407975ad3SJan Kiszka       bool
55f2a74347SRaghavendra K T
568886640dSPaolo Bonziniconfig HAVE_KVM_READONLY_MEM
578886640dSPaolo Bonzini       bool
588886640dSPaolo Bonzini
59f2a74347SRaghavendra K Tconfig HAVE_KVM_CPU_RELAX_INTERCEPT
60f2a74347SRaghavendra K T       bool
61ec53500fSAlex Williamson
62ec53500fSAlex Williamsonconfig KVM_VFIO
63ec53500fSAlex Williamson       bool
64a6d51016SMario Smarduch
653491caf2SChristian Borntraegerconfig HAVE_KVM_INVALID_WAKEUPS
663491caf2SChristian Borntraeger       bool
673491caf2SChristian Borntraeger
68ba0513b5SMario Smarduchconfig KVM_GENERIC_DIRTYLOG_READ_PROTECT
69ba0513b5SMario Smarduch       bool
70de8e5d74SChristian Borntraeger
71bc1a5cd0SIsaku Yamahataconfig KVM_GENERIC_PRE_FAULT_MEMORY
72bc1a5cd0SIsaku Yamahata       bool
73bc1a5cd0SIsaku Yamahata
74de8e5d74SChristian Borntraegerconfig KVM_COMPAT
75de8e5d74SChristian Borntraeger       def_bool y
76afec0c65SGuo Ren       depends on KVM && COMPAT && !(S390 || ARM64 || RISCV)
771a02b270SEric Auger
781a02b270SEric Augerconfig HAVE_KVM_IRQ_BYPASS
79459a3511SSean Christopherson       tristate
8061df71eeSPaolo Bonzini       select IRQ_BYPASS_MANAGER
815cb0944cSPaolo Bonzini
82bd2a6394SChristoffer Dallconfig HAVE_KVM_VCPU_RUN_PID_CHANGE
83bd2a6394SChristoffer Dall       bool
84cdd6ad3aSChristian Borntraeger
85cdd6ad3aSChristian Borntraegerconfig HAVE_KVM_NO_POLL
86cdd6ad3aSChristian Borntraeger       bool
87935ace2fSThomas Gleixner
889be7e1e3SSean Christophersonconfig VIRT_XFER_TO_GUEST_WORK
89935ace2fSThomas Gleixner       bool
902fdef3a2SSergey Senozhatsky
912fdef3a2SSergey Senozhatskyconfig HAVE_KVM_PM_NOTIFIER
922fdef3a2SSergey Senozhatsky       bool
93441f7bfaSSean Christopherson
94441f7bfaSSean Christophersonconfig KVM_GENERIC_HARDWARE_ENABLING
95441f7bfaSSean Christopherson       bool
96f128cf8cSSean Christopherson
972ebbe030SSean Christophersonconfig KVM_ELIDE_TLB_FLUSH_IF_YOUNG
982ebbe030SSean Christopherson       bool
992ebbe030SSean Christopherson
100aa34b811SJames Houghtonconfig KVM_MMU_LOCKLESS_AGING
101aa34b811SJames Houghton       bool
102aa34b811SJames Houghton
1035a475554SChao Pengconfig KVM_GENERIC_MEMORY_ATTRIBUTES
1045a475554SChao Peng       bool
105a7800aa8SSean Christopherson
10619a9a1abSFuad Tabbaconfig KVM_GUEST_MEMFD
107a7800aa8SSean Christopherson       select XARRAY_MULTI
108a7800aa8SSean Christopherson       bool
10989ea60c2SSean Christopherson
110564429a6SPaolo Bonziniconfig HAVE_KVM_ARCH_GMEM_PREPARE
1113bb2531eSPaolo Bonzini       bool
11219a9a1abSFuad Tabba       depends on KVM_GUEST_MEMFD
113a90764f0SMichael Roth
114564429a6SPaolo Bonziniconfig HAVE_KVM_ARCH_GMEM_INVALIDATE
115a90764f0SMichael Roth       bool
11619a9a1abSFuad Tabba       depends on KVM_GUEST_MEMFD
11736cf63bbSFuad Tabba
11836cf63bbSFuad Tabbaconfig HAVE_KVM_ARCH_GMEM_POPULATE
11936cf63bbSFuad Tabba       bool
12036cf63bbSFuad Tabba       depends on KVM_GUEST_MEMFD
121