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