xref: /openbmc/linux/arch/powerpc/kvm/Kconfig (revision e5c86679)
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	---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
79config 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
100config 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
116config 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
130config KVM_BOOKE_HV
131	bool
132
133config 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
144config 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
159config 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
175config 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
188config 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
199source drivers/vhost/Kconfig
200
201endif # VIRTUALIZATION
202