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