162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci# KVM common configuration items and defaults 362306a36Sopenharmony_ci 462306a36Sopenharmony_ciconfig HAVE_KVM 562306a36Sopenharmony_ci bool 662306a36Sopenharmony_ci 762306a36Sopenharmony_ciconfig HAVE_KVM_PFNCACHE 862306a36Sopenharmony_ci bool 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ciconfig HAVE_KVM_IRQCHIP 1162306a36Sopenharmony_ci bool 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ciconfig HAVE_KVM_IRQFD 1462306a36Sopenharmony_ci bool 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ciconfig HAVE_KVM_IRQ_ROUTING 1762306a36Sopenharmony_ci bool 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciconfig HAVE_KVM_DIRTY_RING 2062306a36Sopenharmony_ci bool 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci# Only strongly ordered architectures can select this, as it doesn't 2362306a36Sopenharmony_ci# put any explicit constraint on userspace ordering. They can also 2462306a36Sopenharmony_ci# select the _ACQ_REL version. 2562306a36Sopenharmony_ciconfig HAVE_KVM_DIRTY_RING_TSO 2662306a36Sopenharmony_ci bool 2762306a36Sopenharmony_ci select HAVE_KVM_DIRTY_RING 2862306a36Sopenharmony_ci depends on X86 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci# Weakly ordered architectures can only select this, advertising 3162306a36Sopenharmony_ci# to userspace the additional ordering requirements. 3262306a36Sopenharmony_ciconfig HAVE_KVM_DIRTY_RING_ACQ_REL 3362306a36Sopenharmony_ci bool 3462306a36Sopenharmony_ci select HAVE_KVM_DIRTY_RING 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci# Allow enabling both the dirty bitmap and dirty ring. Only architectures 3762306a36Sopenharmony_ci# that need to dirty memory outside of a vCPU context should select this. 3862306a36Sopenharmony_ciconfig NEED_KVM_DIRTY_RING_WITH_BITMAP 3962306a36Sopenharmony_ci bool 4062306a36Sopenharmony_ci depends on HAVE_KVM_DIRTY_RING 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ciconfig HAVE_KVM_EVENTFD 4362306a36Sopenharmony_ci bool 4462306a36Sopenharmony_ci select EVENTFD 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ciconfig KVM_MMIO 4762306a36Sopenharmony_ci bool 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ciconfig KVM_ASYNC_PF 5062306a36Sopenharmony_ci bool 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci# Toggle to switch between direct notification and batch job 5362306a36Sopenharmony_ciconfig KVM_ASYNC_PF_SYNC 5462306a36Sopenharmony_ci bool 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ciconfig HAVE_KVM_MSI 5762306a36Sopenharmony_ci bool 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ciconfig HAVE_KVM_CPU_RELAX_INTERCEPT 6062306a36Sopenharmony_ci bool 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ciconfig KVM_VFIO 6362306a36Sopenharmony_ci bool 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ciconfig HAVE_KVM_INVALID_WAKEUPS 6662306a36Sopenharmony_ci bool 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ciconfig KVM_GENERIC_DIRTYLOG_READ_PROTECT 6962306a36Sopenharmony_ci bool 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ciconfig KVM_COMPAT 7262306a36Sopenharmony_ci def_bool y 7362306a36Sopenharmony_ci depends on KVM && COMPAT && !(S390 || ARM64 || RISCV) 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ciconfig HAVE_KVM_IRQ_BYPASS 7662306a36Sopenharmony_ci bool 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ciconfig HAVE_KVM_VCPU_ASYNC_IOCTL 7962306a36Sopenharmony_ci bool 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ciconfig HAVE_KVM_VCPU_RUN_PID_CHANGE 8262306a36Sopenharmony_ci bool 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ciconfig HAVE_KVM_NO_POLL 8562306a36Sopenharmony_ci bool 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ciconfig KVM_XFER_TO_GUEST_WORK 8862306a36Sopenharmony_ci bool 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ciconfig HAVE_KVM_PM_NOTIFIER 9162306a36Sopenharmony_ci bool 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ciconfig KVM_GENERIC_HARDWARE_ENABLING 9462306a36Sopenharmony_ci bool 95