Merge tag 'v4.9-rc3' into xtensa-for-next
[sfrench/cifs-2.6.git] / arch / powerpc / kvm / Kconfig
1 #
2 # KVM configuration
3 #
4
5 source "virt/kvm/Kconfig"
6
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
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
29 config KVM_BOOK3S_HANDLER
30         bool
31
32 config KVM_BOOK3S_32_HANDLER
33         bool
34         select KVM_BOOK3S_HANDLER
35         select KVM_MMIO
36
37 config KVM_BOOK3S_64_HANDLER
38         bool
39         select KVM_BOOK3S_HANDLER
40
41 config KVM_BOOK3S_PR_POSSIBLE
42         bool
43         select KVM_MMIO
44         select MMU_NOTIFIER
45
46 config KVM_BOOK3S_HV_POSSIBLE
47         bool
48
49 config 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
64 config 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         ---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
79 config KVM_BOOK3S_64_HV
80         tristate "KVM for POWER7 and later using hypervisor mode in host"
81         depends on KVM_BOOK3S_64 && PPC_POWERNV
82         select KVM_BOOK3S_HV_POSSIBLE
83         select MMU_NOTIFIER
84         select CMA
85         ---help---
86           Support running unmodified book3s_64 guest kernels in
87           virtual machines on POWER7 and newer processors that have
88           hypervisor mode available to the host.
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
95           on POWER7 or later processors, and cannot emulate a
96           different processor from the host processor.
97
98           If unsure, say N.
99
100 config KVM_BOOK3S_64_PR
101         tristate "KVM support without using hypervisor mode in host"
102         depends on KVM_BOOK3S_64
103         select KVM_BOOK3S_PR_POSSIBLE
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.
115
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
130 config KVM_BOOKE_HV
131         bool
132
133 config KVM_EXIT_TIMING
134         bool "Detailed exit timing"
135         depends on KVM_E500V2 || KVM_E500MC
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
144 config KVM_E500V2
145         bool "KVM support for PowerPC E500v2 processors"
146         depends on E500 && !PPC_E500MC
147         select KVM
148         select KVM_MMIO
149         select MMU_NOTIFIER
150         ---help---
151           Support running unmodified E500 guest kernels in virtual machines on
152           E500v2 host processors.
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
159 config KVM_E500MC
160         bool "KVM support for PowerPC E500MC/E5500/E6500 processors"
161         depends on PPC_E500MC
162         select KVM
163         select KVM_MMIO
164         select KVM_BOOKE_HV
165         select MMU_NOTIFIER
166         ---help---
167           Support running unmodified E500MC/E5500/E6500 guest kernels in
168           virtual machines on E500MC/E5500/E6500 host processors.
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
175 config KVM_MPIC
176         bool "KVM in-kernel MPIC emulation"
177         depends on KVM && E500
178         select HAVE_KVM_IRQCHIP
179         select HAVE_KVM_IRQFD
180         select HAVE_KVM_IRQ_ROUTING
181         select HAVE_KVM_MSI
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
188 config KVM_XICS
189         bool "KVM in-kernel XICS emulation"
190         depends on KVM_BOOK3S_64 && !KVM_MPIC
191         select HAVE_KVM_IRQCHIP
192         select HAVE_KVM_IRQFD
193         default y
194         ---help---
195           Include support for the XICS (eXternal Interrupt Controller
196           Specification) interrupt controller architecture used on
197           IBM POWER (pSeries) servers.
198
199 source drivers/vhost/Kconfig
200
201 endif # VIRTUALIZATION