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