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