]>
Commit | Line | Data |
---|---|---|
bbf45ba5 HB |
1 | # |
2 | # KVM configuration | |
3 | # | |
4 | ||
0ba12d10 | 5 | source "virt/kvm/Kconfig" |
5d9b8e30 | 6 | |
bbf45ba5 HB |
7 | menuconfig 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 | ||
17 | if VIRTUALIZATION | |
18 | ||
19 | config KVM | |
74ef740d | 20 | bool |
bbf45ba5 HB |
21 | select PREEMPT_NOTIFIERS |
22 | select ANON_INODES | |
0e673fb6 | 23 | select HAVE_KVM_EVENTFD |
83fe27ea | 24 | select SRCU |
4b3d173d | 25 | select KVM_VFIO |
9576730d SW |
26 | select IRQ_BYPASS_MANAGER |
27 | select HAVE_KVM_IRQ_BYPASS | |
74ef740d | 28 | |
c14dea04 AG |
29 | config KVM_BOOK3S_HANDLER |
30 | bool | |
31 | ||
4f841390 AG |
32 | config KVM_BOOK3S_32_HANDLER |
33 | bool | |
34 | select KVM_BOOK3S_HANDLER | |
de56a948 | 35 | select KVM_MMIO |
4f841390 | 36 | |
c4f9c779 AG |
37 | config KVM_BOOK3S_64_HANDLER |
38 | bool | |
c14dea04 | 39 | select KVM_BOOK3S_HANDLER |
c4f9c779 | 40 | |
7aa79938 | 41 | config KVM_BOOK3S_PR_POSSIBLE |
de56a948 PM |
42 | bool |
43 | select KVM_MMIO | |
9b0cb3c8 | 44 | select MMU_NOTIFIER |
de56a948 | 45 | |
9975f5e3 AK |
46 | config KVM_BOOK3S_HV_POSSIBLE |
47 | bool | |
48 | ||
4f841390 AG |
49 | config KVM_BOOK3S_32 |
50 | tristate "KVM support for PowerPC book3s_32 processors" | |
07ff8b53 | 51 | depends on PPC_BOOK3S_32 && !SMP && !PTE_64BIT |
4f841390 AG |
52 | select KVM |
53 | select KVM_BOOK3S_32_HANDLER | |
7aa79938 | 54 | select KVM_BOOK3S_PR_POSSIBLE |
4f841390 AG |
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 | ||
c4f9c779 AG |
64 | config KVM_BOOK3S_64 |
65 | tristate "KVM support for PowerPC book3s_64 processors" | |
07ff8b53 | 66 | depends on PPC_BOOK3S_64 |
c4f9c779 | 67 | select KVM_BOOK3S_64_HANDLER |
de56a948 | 68 | select KVM |
9975f5e3 | 69 | select KVM_BOOK3S_PR_POSSIBLE if !KVM_BOOK3S_HV_POSSIBLE |
c4f9c779 AG |
70 | ---help--- |
71 | Support running unmodified book3s_64 and book3s_32 guest kernels | |
72 | in virtual machines on book3s_64 host processors. | |
73 | ||
74 | This module provides access to the hardware capabilities through | |
75 | a character device node named /dev/kvm. | |
76 | ||
77 | If unsure, say N. | |
78 | ||
de56a948 | 79 | config KVM_BOOK3S_64_HV |
129fd423 | 80 | tristate "KVM for POWER7 and later using hypervisor mode in host" |
a7e73e71 | 81 | depends on KVM_BOOK3S_64 && PPC_POWERNV |
9975f5e3 | 82 | select KVM_BOOK3S_HV_POSSIBLE |
342d3db7 | 83 | select MMU_NOTIFIER |
fa61a4e3 | 84 | select CMA |
de56a948 PM |
85 | ---help--- |
86 | Support running unmodified book3s_64 guest kernels in | |
129fd423 | 87 | virtual machines on POWER7 and newer processors that have |
9e368f29 | 88 | hypervisor mode available to the host. |
de56a948 PM |
89 | |
90 | If you say Y here, KVM will use the hardware virtualization | |
91 | facilities of POWER7 (and later) processors, meaning that | |
92 | guest operating systems will run at full hardware speed | |
93 | using supervisor and user modes. However, this also means | |
94 | that KVM is not usable under PowerVM (pHyp), is only usable | |
129fd423 TH |
95 | on POWER7 or later processors, and cannot emulate a |
96 | different processor from the host processor. | |
de56a948 PM |
97 | |
98 | If unsure, say N. | |
99 | ||
100 | config KVM_BOOK3S_64_PR | |
2ba9f0d8 AK |
101 | tristate "KVM support without using hypervisor mode in host" |
102 | depends on KVM_BOOK3S_64 | |
7aa79938 | 103 | select KVM_BOOK3S_PR_POSSIBLE |
9975f5e3 AK |
104 | ---help--- |
105 | Support running guest kernels in virtual machines on processors | |
106 | without using hypervisor mode in the host, by running the | |
107 | guest in user mode (problem state) and emulating all | |
108 | privileged instructions and registers. | |
109 | ||
110 | This is not as fast as using hypervisor mode, but works on | |
111 | machines where hypervisor mode is not available or not usable, | |
112 | and can emulate processors that are different from the host | |
113 | processor, including emulating 32-bit processors on a 64-bit | |
114 | host. | |
de56a948 | 115 | |
b6c295df PM |
116 | config KVM_BOOK3S_HV_EXIT_TIMING |
117 | bool "Detailed timing for hypervisor real-mode code" | |
118 | depends on KVM_BOOK3S_HV_POSSIBLE && DEBUG_FS | |
119 | ---help--- | |
120 | Calculate time taken for each vcpu in the real-mode guest entry, | |
121 | exit, and interrupt handling code, plus time spent in the guest | |
122 | and in nap mode due to idle (cede) while other threads are still | |
123 | in the guest. The total, minimum and maximum times in nanoseconds | |
124 | together with the number of executions are reported in debugfs in | |
125 | kvm/vm#/vcpu#/timings. The overhead is of the order of 30 - 40 | |
126 | ns per exit on POWER8. | |
127 | ||
128 | If unsure, say N. | |
129 | ||
d30f6e48 SW |
130 | config KVM_BOOKE_HV |
131 | bool | |
132 | ||
73e75b41 HB |
133 | config KVM_EXIT_TIMING |
134 | bool "Detailed exit timing" | |
b2677b8d | 135 | depends on KVM_E500V2 || KVM_E500MC |
73e75b41 HB |
136 | ---help--- |
137 | Calculate elapsed time for every exit/enter cycle. A per-vcpu | |
138 | report is available in debugfs kvm/vm#_vcpu#_timing. | |
139 | The overhead is relatively small, however it is not recommended for | |
140 | production environments. | |
141 | ||
142 | If unsure, say N. | |
143 | ||
bf7ca4bd AG |
144 | config KVM_E500V2 |
145 | bool "KVM support for PowerPC E500v2 processors" | |
07ff8b53 | 146 | depends on E500 && !PPC_E500MC |
bc8080cb | 147 | select KVM |
de56a948 | 148 | select KVM_MMIO |
862d31f7 | 149 | select MMU_NOTIFIER |
bc8080cb HB |
150 | ---help--- |
151 | Support running unmodified E500 guest kernels in virtual machines on | |
bf7ca4bd | 152 | E500v2 host processors. |
bc8080cb HB |
153 | |
154 | This module provides access to the hardware capabilities through | |
155 | a character device node named /dev/kvm. | |
156 | ||
157 | If unsure, say N. | |
158 | ||
73196cd3 | 159 | config KVM_E500MC |
d9ce6041 | 160 | bool "KVM support for PowerPC E500MC/E5500/E6500 processors" |
07ff8b53 | 161 | depends on PPC_E500MC |
73196cd3 SW |
162 | select KVM |
163 | select KVM_MMIO | |
164 | select KVM_BOOKE_HV | |
862d31f7 | 165 | select MMU_NOTIFIER |
73196cd3 | 166 | ---help--- |
d9ce6041 MC |
167 | Support running unmodified E500MC/E5500/E6500 guest kernels in |
168 | virtual machines on E500MC/E5500/E6500 host processors. | |
73196cd3 SW |
169 | |
170 | This module provides access to the hardware capabilities through | |
171 | a character device node named /dev/kvm. | |
172 | ||
173 | If unsure, say N. | |
174 | ||
5df554ad SW |
175 | config KVM_MPIC |
176 | bool "KVM in-kernel MPIC emulation" | |
447a03c0 | 177 | depends on KVM && E500 |
de9ba2f3 | 178 | select HAVE_KVM_IRQCHIP |
297e2105 | 179 | select HAVE_KVM_IRQFD |
de9ba2f3 AG |
180 | select HAVE_KVM_IRQ_ROUTING |
181 | select HAVE_KVM_MSI | |
5df554ad SW |
182 | help |
183 | Enable support for emulating MPIC devices inside the | |
184 | host kernel, rather than relying on userspace to emulate. | |
185 | Currently, support is limited to certain versions of | |
186 | Freescale's MPIC implementation. | |
187 | ||
bc5ad3f3 BH |
188 | config KVM_XICS |
189 | bool "KVM in-kernel XICS emulation" | |
190 | depends on KVM_BOOK3S_64 && !KVM_MPIC | |
25a2150b PM |
191 | select HAVE_KVM_IRQCHIP |
192 | select HAVE_KVM_IRQFD | |
476ce5ef | 193 | default y |
bc5ad3f3 BH |
194 | ---help--- |
195 | Include support for the XICS (eXternal Interrupt Controller | |
196 | Specification) interrupt controller architecture used on | |
197 | IBM POWER (pSeries) servers. | |
198 | ||
3a4d5c94 | 199 | source drivers/vhost/Kconfig |
bbf45ba5 HB |
200 | |
201 | endif # VIRTUALIZATION |