# SPDX-License-Identifier: GPL-2.0 
 | 
# 
 | 
# KVM configuration 
 | 
# 
 | 
  
 | 
source "virt/kvm/Kconfig" 
 | 
  
 | 
menuconfig VIRTUALIZATION 
 | 
    bool "Virtualization" 
 | 
    depends on HAVE_KVM || X86 
 | 
    default y 
 | 
    ---help--- 
 | 
      Say Y here to get to see options for using your Linux host to run other 
 | 
      operating systems inside virtual machines (guests). 
 | 
      This option alone does not add any kernel code. 
 | 
  
 | 
      If you say N, all options in this submenu will be skipped and disabled. 
 | 
  
 | 
if VIRTUALIZATION 
 | 
  
 | 
config KVM 
 | 
    tristate "Kernel-based Virtual Machine (KVM) support" 
 | 
    depends on HAVE_KVM 
 | 
    depends on HIGH_RES_TIMERS 
 | 
    # for TASKSTATS/TASK_DELAY_ACCT: 
 | 
    depends on NET && MULTIUSER 
 | 
    depends on X86_LOCAL_APIC 
 | 
    select PREEMPT_NOTIFIERS 
 | 
    select MMU_NOTIFIER 
 | 
    select HAVE_KVM_IRQCHIP 
 | 
    select HAVE_KVM_IRQFD 
 | 
    select IRQ_BYPASS_MANAGER 
 | 
    select HAVE_KVM_IRQ_BYPASS 
 | 
    select HAVE_KVM_IRQ_ROUTING 
 | 
    select HAVE_KVM_EVENTFD 
 | 
    select KVM_ASYNC_PF 
 | 
    select USER_RETURN_NOTIFIER 
 | 
    select KVM_MMIO 
 | 
    select TASKSTATS 
 | 
    select TASK_DELAY_ACCT 
 | 
    select PERF_EVENTS 
 | 
    select HAVE_KVM_MSI 
 | 
    select HAVE_KVM_CPU_RELAX_INTERCEPT 
 | 
    select KVM_GENERIC_DIRTYLOG_READ_PROTECT 
 | 
    select KVM_VFIO 
 | 
    select SRCU 
 | 
    ---help--- 
 | 
      Support hosting fully virtualized guest machines using hardware 
 | 
      virtualization extensions.  You will need a fairly recent 
 | 
      processor equipped with virtualization extensions. You will also 
 | 
      need to select one or more of the processor modules below. 
 | 
  
 | 
      This module provides access to the hardware capabilities through 
 | 
      a character device node named /dev/kvm. 
 | 
  
 | 
      To compile this as a module, choose M here: the module 
 | 
      will be called kvm. 
 | 
  
 | 
      If unsure, say N. 
 | 
  
 | 
config KVM_INTEL 
 | 
    tristate "KVM for Intel processors support" 
 | 
    depends on KVM 
 | 
    # for perf_guest_get_msrs(): 
 | 
    depends on CPU_SUP_INTEL 
 | 
    ---help--- 
 | 
      Provides support for KVM on Intel processors equipped with the VT 
 | 
      extensions. 
 | 
  
 | 
      To compile this as a module, choose M here: the module 
 | 
      will be called kvm-intel. 
 | 
  
 | 
config KVM_AMD 
 | 
    tristate "KVM for AMD processors support" 
 | 
    depends on KVM 
 | 
    ---help--- 
 | 
      Provides support for KVM on AMD processors equipped with the AMD-V 
 | 
      (SVM) extensions. 
 | 
  
 | 
      To compile this as a module, choose M here: the module 
 | 
      will be called kvm-amd. 
 | 
  
 | 
config KVM_AMD_SEV 
 | 
    def_bool y 
 | 
    bool "AMD Secure Encrypted Virtualization (SEV) support" 
 | 
    depends on KVM_AMD && X86_64 
 | 
    depends on CRYPTO_DEV_SP_PSP && !(KVM_AMD=y && CRYPTO_DEV_CCP_DD=m) 
 | 
    ---help--- 
 | 
    Provides support for launching Encrypted VMs on AMD processors. 
 | 
  
 | 
config KVM_MMU_AUDIT 
 | 
    bool "Audit KVM MMU" 
 | 
    depends on KVM && TRACEPOINTS 
 | 
    ---help--- 
 | 
     This option adds a R/W kVM module parameter 'mmu_audit', which allows 
 | 
     auditing of KVM MMU events at runtime. 
 | 
  
 | 
# OK, it's a little counter-intuitive to do this, but it puts it neatly under 
 | 
# the virtualization menu. 
 | 
source drivers/vhost/Kconfig 
 | 
  
 | 
endif # VIRTUALIZATION 
 |