xref: /linux/virt/kvm/Kconfig (revision 60675d4ca1ef0857e44eba5849b74a3a998d0c0f)
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
781a02b270SEric Auger       bool
7961df71eeSPaolo Bonzini       select IRQ_BYPASS_MANAGER
805cb0944cSPaolo Bonzini
815cb0944cSPaolo Bonziniconfig HAVE_KVM_VCPU_ASYNC_IOCTL
825cb0944cSPaolo Bonzini       bool
83bd2a6394SChristoffer Dall
84bd2a6394SChristoffer Dallconfig HAVE_KVM_VCPU_RUN_PID_CHANGE
85bd2a6394SChristoffer Dall       bool
86cdd6ad3aSChristian Borntraeger
87cdd6ad3aSChristian Borntraegerconfig HAVE_KVM_NO_POLL
88cdd6ad3aSChristian Borntraeger       bool
89935ace2fSThomas Gleixner
90935ace2fSThomas Gleixnerconfig KVM_XFER_TO_GUEST_WORK
91935ace2fSThomas Gleixner       bool
922fdef3a2SSergey Senozhatsky
932fdef3a2SSergey Senozhatskyconfig HAVE_KVM_PM_NOTIFIER
942fdef3a2SSergey Senozhatsky       bool
95441f7bfaSSean Christopherson
96441f7bfaSSean Christophersonconfig KVM_GENERIC_HARDWARE_ENABLING
97441f7bfaSSean Christopherson       bool
98f128cf8cSSean Christopherson
99f128cf8cSSean Christophersonconfig KVM_GENERIC_MMU_NOTIFIER
100f128cf8cSSean Christopherson       select MMU_NOTIFIER
101f128cf8cSSean Christopherson       bool
1025a475554SChao Peng
103*2ebbe030SSean Christophersonconfig KVM_ELIDE_TLB_FLUSH_IF_YOUNG
104*2ebbe030SSean Christopherson       depends on KVM_GENERIC_MMU_NOTIFIER
105*2ebbe030SSean Christopherson       bool
106*2ebbe030SSean Christopherson
1075a475554SChao Pengconfig KVM_GENERIC_MEMORY_ATTRIBUTES
1083a373e02SPaolo Bonzini       depends on KVM_GENERIC_MMU_NOTIFIER
1095a475554SChao Peng       bool
110a7800aa8SSean Christopherson
111a7800aa8SSean Christophersonconfig KVM_PRIVATE_MEM
112a7800aa8SSean Christopherson       select XARRAY_MULTI
113a7800aa8SSean Christopherson       bool
11489ea60c2SSean Christopherson
11589ea60c2SSean Christophersonconfig KVM_GENERIC_PRIVATE_MEM
11689ea60c2SSean Christopherson       select KVM_GENERIC_MEMORY_ATTRIBUTES
11789ea60c2SSean Christopherson       select KVM_PRIVATE_MEM
11889ea60c2SSean Christopherson       bool
1193bb2531eSPaolo Bonzini
120564429a6SPaolo Bonziniconfig HAVE_KVM_ARCH_GMEM_PREPARE
1213bb2531eSPaolo Bonzini       bool
1223bb2531eSPaolo Bonzini       depends on KVM_PRIVATE_MEM
123a90764f0SMichael Roth
124564429a6SPaolo Bonziniconfig HAVE_KVM_ARCH_GMEM_INVALIDATE
125a90764f0SMichael Roth       bool
126a90764f0SMichael Roth       depends on KVM_PRIVATE_MEM
127