1# SPDX-License-Identifier: GPL-2.0 2# 3# KVM configuration 4# 5 6source "virt/kvm/Kconfig" 7 8menuconfig VIRTUALIZATION 9 bool "Virtualization" 10 ---help--- 11 Say Y here to get to see options for using your Linux host to run 12 other operating systems inside virtual machines (guests). 13 This option alone does not add any kernel code. 14 15 If you say N, all options in this submenu will be skipped and 16 disabled. 17 18if VIRTUALIZATION 19 20config KVM 21 bool 22 select PREEMPT_NOTIFIERS 23 select HAVE_KVM_EVENTFD 24 select HAVE_KVM_VCPU_ASYNC_IOCTL 25 select SRCU 26 select KVM_VFIO 27 select IRQ_BYPASS_MANAGER 28 select HAVE_KVM_IRQ_BYPASS 29 30config KVM_BOOK3S_HANDLER 31 bool 32 33config KVM_BOOK3S_32_HANDLER 34 bool 35 select KVM_BOOK3S_HANDLER 36 select KVM_MMIO 37 38config KVM_BOOK3S_64_HANDLER 39 bool 40 select KVM_BOOK3S_HANDLER 41 42config KVM_BOOK3S_PR_POSSIBLE 43 bool 44 select KVM_MMIO 45 select MMU_NOTIFIER 46 47config KVM_BOOK3S_HV_POSSIBLE 48 bool 49 50config KVM_BOOK3S_32 51 tristate "KVM support for PowerPC book3s_32 processors" 52 depends on PPC_BOOK3S_32 && !SMP && !PTE_64BIT 53 select KVM 54 select KVM_BOOK3S_32_HANDLER 55 select KVM_BOOK3S_PR_POSSIBLE 56 ---help--- 57 Support running unmodified book3s_32 guest kernels 58 in virtual machines on book3s_32 host processors. 59 60 This module provides access to the hardware capabilities through 61 a character device node named /dev/kvm. 62 63 If unsure, say N. 64 65config KVM_BOOK3S_64 66 tristate "KVM support for PowerPC book3s_64 processors" 67 depends on PPC_BOOK3S_64 68 select KVM_BOOK3S_64_HANDLER 69 select KVM 70 select KVM_BOOK3S_PR_POSSIBLE if !KVM_BOOK3S_HV_POSSIBLE 71 select SPAPR_TCE_IOMMU if IOMMU_SUPPORT && (PPC_PSERIES || PPC_POWERNV) 72 ---help--- 73 Support running unmodified book3s_64 and book3s_32 guest kernels 74 in virtual machines on book3s_64 host processors. 75 76 This module provides access to the hardware capabilities through 77 a character device node named /dev/kvm. 78 79 If unsure, say N. 80 81config KVM_BOOK3S_64_HV 82 tristate "KVM for POWER7 and later using hypervisor mode in host" 83 depends on KVM_BOOK3S_64 && PPC_POWERNV 84 select KVM_BOOK3S_HV_POSSIBLE 85 select MMU_NOTIFIER 86 select CMA 87 ---help--- 88 Support running unmodified book3s_64 guest kernels in 89 virtual machines on POWER7 and newer processors that have 90 hypervisor mode available to the host. 91 92 If you say Y here, KVM will use the hardware virtualization 93 facilities of POWER7 (and later) processors, meaning that 94 guest operating systems will run at full hardware speed 95 using supervisor and user modes. However, this also means 96 that KVM is not usable under PowerVM (pHyp), is only usable 97 on POWER7 or later processors, and cannot emulate a 98 different processor from the host processor. 99 100 If unsure, say N. 101 102config KVM_BOOK3S_64_PR 103 tristate "KVM support without using hypervisor mode in host" 104 depends on KVM_BOOK3S_64 105 select KVM_BOOK3S_PR_POSSIBLE 106 ---help--- 107 Support running guest kernels in virtual machines on processors 108 without using hypervisor mode in the host, by running the 109 guest in user mode (problem state) and emulating all 110 privileged instructions and registers. 111 112 This is not as fast as using hypervisor mode, but works on 113 machines where hypervisor mode is not available or not usable, 114 and can emulate processors that are different from the host 115 processor, including emulating 32-bit processors on a 64-bit 116 host. 117 118config KVM_BOOK3S_HV_EXIT_TIMING 119 bool "Detailed timing for hypervisor real-mode code" 120 depends on KVM_BOOK3S_HV_POSSIBLE && DEBUG_FS 121 ---help--- 122 Calculate time taken for each vcpu in the real-mode guest entry, 123 exit, and interrupt handling code, plus time spent in the guest 124 and in nap mode due to idle (cede) while other threads are still 125 in the guest. The total, minimum and maximum times in nanoseconds 126 together with the number of executions are reported in debugfs in 127 kvm/vm#/vcpu#/timings. The overhead is of the order of 30 - 40 128 ns per exit on POWER8. 129 130 If unsure, say N. 131 132config KVM_BOOKE_HV 133 bool 134 135config KVM_EXIT_TIMING 136 bool "Detailed exit timing" 137 depends on KVM_E500V2 || KVM_E500MC 138 ---help--- 139 Calculate elapsed time for every exit/enter cycle. A per-vcpu 140 report is available in debugfs kvm/vm#_vcpu#_timing. 141 The overhead is relatively small, however it is not recommended for 142 production environments. 143 144 If unsure, say N. 145 146config KVM_E500V2 147 bool "KVM support for PowerPC E500v2 processors" 148 depends on E500 && !PPC_E500MC 149 select KVM 150 select KVM_MMIO 151 select MMU_NOTIFIER 152 ---help--- 153 Support running unmodified E500 guest kernels in virtual machines on 154 E500v2 host processors. 155 156 This module provides access to the hardware capabilities through 157 a character device node named /dev/kvm. 158 159 If unsure, say N. 160 161config KVM_E500MC 162 bool "KVM support for PowerPC E500MC/E5500/E6500 processors" 163 depends on PPC_E500MC 164 select KVM 165 select KVM_MMIO 166 select KVM_BOOKE_HV 167 select MMU_NOTIFIER 168 ---help--- 169 Support running unmodified E500MC/E5500/E6500 guest kernels in 170 virtual machines on E500MC/E5500/E6500 host processors. 171 172 This module provides access to the hardware capabilities through 173 a character device node named /dev/kvm. 174 175 If unsure, say N. 176 177config KVM_MPIC 178 bool "KVM in-kernel MPIC emulation" 179 depends on KVM && E500 180 select HAVE_KVM_IRQCHIP 181 select HAVE_KVM_IRQFD 182 select HAVE_KVM_IRQ_ROUTING 183 select HAVE_KVM_MSI 184 help 185 Enable support for emulating MPIC devices inside the 186 host kernel, rather than relying on userspace to emulate. 187 Currently, support is limited to certain versions of 188 Freescale's MPIC implementation. 189 190config KVM_XICS 191 bool "KVM in-kernel XICS emulation" 192 depends on KVM_BOOK3S_64 && !KVM_MPIC 193 select HAVE_KVM_IRQCHIP 194 select HAVE_KVM_IRQFD 195 default y 196 ---help--- 197 Include support for the XICS (eXternal Interrupt Controller 198 Specification) interrupt controller architecture used on 199 IBM POWER (pSeries) servers. 200 201config KVM_XIVE 202 bool 203 default y 204 depends on KVM_XICS && PPC_XIVE_NATIVE && KVM_BOOK3S_HV_POSSIBLE 205 206source "drivers/vhost/Kconfig" 207 208endif # VIRTUALIZATION 209