]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | # SPDX-License-Identifier: GPL-2.0 |
bbf45ba5 HB |
2 | # |
3 | # KVM configuration | |
4 | # | |
5 | ||
0ba12d10 | 6 | source "virt/kvm/Kconfig" |
5d9b8e30 | 7 | |
bbf45ba5 HB |
8 | menuconfig 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 | ||
18 | if VIRTUALIZATION | |
19 | ||
20 | config KVM | |
74ef740d | 21 | bool |
bbf45ba5 HB |
22 | select PREEMPT_NOTIFIERS |
23 | select ANON_INODES | |
0e673fb6 | 24 | select HAVE_KVM_EVENTFD |
83fe27ea | 25 | select SRCU |
4b3d173d | 26 | select KVM_VFIO |
9576730d SW |
27 | select IRQ_BYPASS_MANAGER |
28 | select HAVE_KVM_IRQ_BYPASS | |
74ef740d | 29 | |
c14dea04 AG |
30 | config KVM_BOOK3S_HANDLER |
31 | bool | |
32 | ||
4f841390 AG |
33 | config KVM_BOOK3S_32_HANDLER |
34 | bool | |
35 | select KVM_BOOK3S_HANDLER | |
de56a948 | 36 | select KVM_MMIO |
4f841390 | 37 | |
c4f9c779 AG |
38 | config KVM_BOOK3S_64_HANDLER |
39 | bool | |
c14dea04 | 40 | select KVM_BOOK3S_HANDLER |
c4f9c779 | 41 | |
7aa79938 | 42 | config KVM_BOOK3S_PR_POSSIBLE |
de56a948 PM |
43 | bool |
44 | select KVM_MMIO | |
9b0cb3c8 | 45 | select MMU_NOTIFIER |
de56a948 | 46 | |
9975f5e3 AK |
47 | config KVM_BOOK3S_HV_POSSIBLE |
48 | bool | |
49 | ||
4f841390 AG |
50 | config KVM_BOOK3S_32 |
51 | tristate "KVM support for PowerPC book3s_32 processors" | |
07ff8b53 | 52 | depends on PPC_BOOK3S_32 && !SMP && !PTE_64BIT |
4f841390 AG |
53 | select KVM |
54 | select KVM_BOOK3S_32_HANDLER | |
7aa79938 | 55 | select KVM_BOOK3S_PR_POSSIBLE |
4f841390 AG |
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 | ||
c4f9c779 AG |
65 | config KVM_BOOK3S_64 |
66 | tristate "KVM support for PowerPC book3s_64 processors" | |
07ff8b53 | 67 | depends on PPC_BOOK3S_64 |
c4f9c779 | 68 | select KVM_BOOK3S_64_HANDLER |
de56a948 | 69 | select KVM |
9975f5e3 | 70 | select KVM_BOOK3S_PR_POSSIBLE if !KVM_BOOK3S_HV_POSSIBLE |
76d837a4 | 71 | select SPAPR_TCE_IOMMU if IOMMU_SUPPORT && (PPC_SERIES || PPC_POWERNV) |
c4f9c779 AG |
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 | ||
de56a948 | 81 | config KVM_BOOK3S_64_HV |
129fd423 | 82 | tristate "KVM for POWER7 and later using hypervisor mode in host" |
a7e73e71 | 83 | depends on KVM_BOOK3S_64 && PPC_POWERNV |
9975f5e3 | 84 | select KVM_BOOK3S_HV_POSSIBLE |
342d3db7 | 85 | select MMU_NOTIFIER |
fa61a4e3 | 86 | select CMA |
de56a948 PM |
87 | ---help--- |
88 | Support running unmodified book3s_64 guest kernels in | |
129fd423 | 89 | virtual machines on POWER7 and newer processors that have |
9e368f29 | 90 | hypervisor mode available to the host. |
de56a948 PM |
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 | |
129fd423 TH |
97 | on POWER7 or later processors, and cannot emulate a |
98 | different processor from the host processor. | |
de56a948 PM |
99 | |
100 | If unsure, say N. | |
101 | ||
102 | config KVM_BOOK3S_64_PR | |
2ba9f0d8 AK |
103 | tristate "KVM support without using hypervisor mode in host" |
104 | depends on KVM_BOOK3S_64 | |
7aa79938 | 105 | select KVM_BOOK3S_PR_POSSIBLE |
9975f5e3 AK |
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. | |
de56a948 | 117 | |
b6c295df PM |
118 | config 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 | ||
d30f6e48 SW |
132 | config KVM_BOOKE_HV |
133 | bool | |
134 | ||
73e75b41 HB |
135 | config KVM_EXIT_TIMING |
136 | bool "Detailed exit timing" | |
b2677b8d | 137 | depends on KVM_E500V2 || KVM_E500MC |
73e75b41 HB |
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 | ||
bf7ca4bd AG |
146 | config KVM_E500V2 |
147 | bool "KVM support for PowerPC E500v2 processors" | |
07ff8b53 | 148 | depends on E500 && !PPC_E500MC |
bc8080cb | 149 | select KVM |
de56a948 | 150 | select KVM_MMIO |
862d31f7 | 151 | select MMU_NOTIFIER |
bc8080cb HB |
152 | ---help--- |
153 | Support running unmodified E500 guest kernels in virtual machines on | |
bf7ca4bd | 154 | E500v2 host processors. |
bc8080cb HB |
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 | ||
73196cd3 | 161 | config KVM_E500MC |
d9ce6041 | 162 | bool "KVM support for PowerPC E500MC/E5500/E6500 processors" |
07ff8b53 | 163 | depends on PPC_E500MC |
73196cd3 SW |
164 | select KVM |
165 | select KVM_MMIO | |
166 | select KVM_BOOKE_HV | |
862d31f7 | 167 | select MMU_NOTIFIER |
73196cd3 | 168 | ---help--- |
d9ce6041 MC |
169 | Support running unmodified E500MC/E5500/E6500 guest kernels in |
170 | virtual machines on E500MC/E5500/E6500 host processors. | |
73196cd3 SW |
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 | ||
5df554ad SW |
177 | config KVM_MPIC |
178 | bool "KVM in-kernel MPIC emulation" | |
447a03c0 | 179 | depends on KVM && E500 |
de9ba2f3 | 180 | select HAVE_KVM_IRQCHIP |
297e2105 | 181 | select HAVE_KVM_IRQFD |
de9ba2f3 AG |
182 | select HAVE_KVM_IRQ_ROUTING |
183 | select HAVE_KVM_MSI | |
5df554ad SW |
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 | ||
bc5ad3f3 BH |
190 | config KVM_XICS |
191 | bool "KVM in-kernel XICS emulation" | |
192 | depends on KVM_BOOK3S_64 && !KVM_MPIC | |
25a2150b PM |
193 | select HAVE_KVM_IRQCHIP |
194 | select HAVE_KVM_IRQFD | |
476ce5ef | 195 | default y |
bc5ad3f3 BH |
196 | ---help--- |
197 | Include support for the XICS (eXternal Interrupt Controller | |
198 | Specification) interrupt controller architecture used on | |
199 | IBM POWER (pSeries) servers. | |
200 | ||
5af50993 BH |
201 | config KVM_XIVE |
202 | bool | |
203 | default y | |
204 | depends on KVM_XICS && PPC_XIVE_NATIVE && KVM_BOOK3S_HV_POSSIBLE | |
205 | ||
3a4d5c94 | 206 | source drivers/vhost/Kconfig |
bbf45ba5 HB |
207 | |
208 | endif # VIRTUALIZATION |