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