ia64/linux-2.6.18-xen.hg

view drivers/xen/Kconfig @ 894:4e5cd2fc45a7

linux: fix blkback/blktap2 interaction

blkback's page map code needs to be accessible to both blkback and
blktap2, irrespective of whether either or both are modules. The
most immediate solution is to break it out into a separate, library-
like component that doesn't need building if either of the two
consumers is configured off, and that gets built as a module if both
consumers are modules.

Also fix the dummy implementation of blkback_pagemap_read(), since
using BUG() there doesn't compile.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
author Keir Fraser <keir.fraser@citrix.com>
date Thu Jun 04 10:33:52 2009 +0100 (2009-06-04)
parents 3e01555dd227
children
line source
1 #
2 # This Kconfig describe xen options
3 #
5 mainmenu "Xen Configuration"
7 config XEN
8 bool
10 if XEN
11 config XEN_INTERFACE_VERSION
12 hex
13 default 0x00030207
15 menu "XEN"
17 config XEN_PRIVILEGED_GUEST
18 bool "Privileged Guest (domain 0)"
19 select PCI_REASSIGN if PCI
20 help
21 Support for privileged operation (domain 0)
23 config XEN_UNPRIVILEGED_GUEST
24 def_bool !XEN_PRIVILEGED_GUEST
26 config XEN_PRIVCMD
27 def_bool y
28 depends on PROC_FS
30 config XEN_XENBUS_DEV
31 def_bool y
32 depends on PROC_FS
34 config XEN_NETDEV_ACCEL_SFC_UTIL
35 depends on X86
36 tristate
38 config XEN_BACKEND
39 tristate "Backend driver support"
40 default XEN_PRIVILEGED_GUEST
41 help
42 Support for backend device drivers that provide I/O services
43 to other virtual machines.
45 config XEN_BLKDEV_BACKEND
46 tristate "Block-device backend driver"
47 depends on XEN_BACKEND
48 default XEN_BACKEND
49 help
50 The block-device backend driver allows the kernel to export its
51 block devices to other guests via a high-performance shared-memory
52 interface.
54 config XEN_BLKDEV_TAP
55 tristate "Block-device tap backend driver"
56 depends on XEN_BACKEND
57 default XEN_BACKEND
58 help
59 The block tap driver is an alternative to the block back driver
60 and allows VM block requests to be redirected to userspace through
61 a device interface. The tap allows user-space development of
62 high-performance block backends, where disk images may be implemented
63 as files, in memory, or on other hosts across the network. This
64 driver can safely coexist with the existing blockback driver.
66 config XEN_BLKDEV_TAP2
67 tristate "Block-device tap backend driver 2"
68 depends on XEN_BACKEND
69 default XEN_BACKEND
70 help
71 The block tap driver is an alternative to the block back driver
72 and allows VM block requests to be redirected to userspace through
73 a device interface. The tap allows user-space development of
74 high-performance block backends, where disk images may be implemented
75 as files, in memory, or on other hosts across the network. This
76 driver can safely coexist with the existing blockback driver.
78 config XEN_BLKBACK_PAGEMAP
79 tristate
80 depends on XEN_BLKDEV_BACKEND != n && XEN_BLKDEV_TAP2 != n
81 default XEN_BLKDEV_BACKEND || XEN_BLKDEV_TAP2
83 config XEN_NETDEV_BACKEND
84 tristate "Network-device backend driver"
85 depends on XEN_BACKEND && NET
86 default XEN_BACKEND
87 help
88 The network-device backend driver allows the kernel to export its
89 network devices to other guests via a high-performance shared-memory
90 interface.
92 config XEN_NETDEV_PIPELINED_TRANSMITTER
93 bool "Pipelined transmitter (DANGEROUS)"
94 depends on XEN_NETDEV_BACKEND
95 help
96 If the net backend is a dumb domain, such as a transparent Ethernet
97 bridge with no local IP interface, it is safe to say Y here to get
98 slightly lower network overhead.
99 If the backend has a local IP interface; or may be doing smart things
100 like reassembling packets to perform firewall filtering; or if you
101 are unsure; or if you experience network hangs when this option is
102 enabled; then you must say N here.
104 config XEN_NETDEV_ACCEL_SFC_BACKEND
105 tristate "Network-device backend driver acceleration for Solarflare NICs"
106 depends on XEN_NETDEV_BACKEND && SFC && SFC_RESOURCE && X86
107 select XEN_NETDEV_ACCEL_SFC_UTIL
108 default m
110 config XEN_NETDEV_LOOPBACK
111 tristate "Network-device loopback driver"
112 depends on XEN_NETDEV_BACKEND
113 help
114 A two-interface loopback device to emulate a local netfront-netback
115 connection. If unsure, it is probably safe to say N here.
117 config XEN_PCIDEV_BACKEND
118 tristate "PCI-device backend driver"
119 depends on PCI && XEN_BACKEND
120 default XEN_BACKEND
121 help
122 The PCI device backend driver allows the kernel to export arbitrary
123 PCI devices to other guests. If you select this to be a module, you
124 will need to make sure no other driver has bound to the device(s)
125 you want to make visible to other guests.
127 choice
128 prompt "PCI Backend Mode"
129 depends on XEN_PCIDEV_BACKEND
130 default XEN_PCIDEV_BACKEND_VPCI if !IA64
131 default XEN_PCIDEV_BACKEND_CONTROLLER if IA64
133 config XEN_PCIDEV_BACKEND_VPCI
134 bool "Virtual PCI"
135 ---help---
136 This PCI Backend hides the true PCI topology and makes the frontend
137 think there is a single PCI bus with only the exported devices on it.
138 For example, a device at 03:05.0 will be re-assigned to 00:00.0. A
139 second device at 02:1a.1 will be re-assigned to 00:01.1.
141 config XEN_PCIDEV_BACKEND_PASS
142 bool "Passthrough"
143 ---help---
144 This PCI Backend provides a real view of the PCI topology to the
145 frontend (for example, a device at 06:01.b will still appear at
146 06:01.b to the frontend). This is similar to how Xen 2.0.x exposed
147 PCI devices to its driver domains. This may be required for drivers
148 which depend on finding their hardward in certain bus/slot
149 locations.
151 config XEN_PCIDEV_BACKEND_SLOT
152 bool "Slot"
153 ---help---
154 This PCI Backend hides the true PCI topology and makes the frontend
155 think there is a single PCI bus with only the exported devices on it.
156 Contrary to the virtual PCI backend, a function becomes a new slot.
157 For example, a device at 03:05.2 will be re-assigned to 00:00.0. A
158 second device at 02:1a.1 will be re-assigned to 00:01.0.
160 config XEN_PCIDEV_BACKEND_CONTROLLER
161 bool "Controller"
162 depends on IA64
163 ---help---
164 This PCI backend virtualizes the PCI bus topology by providing a
165 virtual bus per PCI root device. Devices which are physically under
166 the same root bus will appear on the same virtual bus. For systems
167 with complex I/O addressing, this is the only backend which supports
168 extended I/O port spaces and MMIO translation offsets. This backend
169 also supports slot virtualization. For example, a device at
170 0000:01:02.1 will be re-assigned to 0000:00:00.0. A second device
171 at 0000:02:05.0 (behind a P2P bridge on bus 0000:01) will be
172 re-assigned to 0000:00:01.0. A third device at 0000:16:05.0 (under
173 a different PCI root bus) will be re-assigned to 0000:01:00.0.
175 endchoice
177 config XEN_PCIDEV_BE_DEBUG
178 bool "PCI Backend Debugging"
179 depends on XEN_PCIDEV_BACKEND
181 config XEN_TPMDEV_BACKEND
182 tristate "TPM-device backend driver"
183 depends on XEN_BACKEND
184 help
185 The TPM-device backend driver
187 config XEN_SCSI_BACKEND
188 tristate "SCSI backend driver"
189 depends on SCSI && XEN_BACKEND
190 default m
191 help
192 The SCSI backend driver allows the kernel to export its SCSI Devices
193 to other guests via a high-performance shared-memory interface.
195 config XEN_USB_BACKEND
196 tristate "USB backend driver"
197 depends on USB && XEN_BACKEND
198 default m
199 help
200 The USB backend driver allows the kernel to export its USB Devices
201 to other guests.
203 config XEN_BLKDEV_FRONTEND
204 tristate "Block-device frontend driver"
205 default y
206 help
207 The block-device frontend driver allows the kernel to access block
208 devices mounted within another guest OS. Unless you are building a
209 dedicated device-driver domain, or your master control domain
210 (domain 0), then you almost certainly want to say Y here.
212 config XEN_NETDEV_FRONTEND
213 tristate "Network-device frontend driver"
214 depends on NET
215 default y
216 help
217 The network-device frontend driver allows the kernel to access
218 network interfaces within another guest OS. Unless you are building a
219 dedicated device-driver domain, or your master control domain
220 (domain 0), then you almost certainly want to say Y here.
222 config XEN_NETDEV_ACCEL_SFC_FRONTEND
223 tristate "Network-device frontend driver acceleration for Solarflare NICs"
224 depends on XEN_NETDEV_FRONTEND && X86
225 select XEN_NETDEV_ACCEL_SFC_UTIL
226 default m
228 config XEN_SCSI_FRONTEND
229 tristate "SCSI frontend driver"
230 depends on SCSI
231 default m
232 help
233 The SCSI frontend driver allows the kernel to access SCSI Devices
234 within another guest OS.
236 config XEN_USB_FRONTEND
237 tristate "USB frontend driver"
238 depends on USB
239 default m
240 help
241 The USB frontend driver allows the kernel to access USB Devices
242 within another guest OS.
244 config XEN_USB_FRONTEND_HCD_STATS
245 bool "Taking the HCD statistics (for debug)"
246 depends on XEN_USB_FRONTEND
247 default y
248 help
249 Count the transferred urb status and the RING_FULL occurrence.
251 config XEN_GRANT_DEV
252 tristate "User-space granted page access driver"
253 default XEN_PRIVILEGED_GUEST
254 help
255 Device for accessing (in user-space) pages that have been granted
256 by other domains.
258 config XEN_FRAMEBUFFER
259 tristate "Framebuffer-device frontend driver"
260 depends on FB
261 select FB_CFB_FILLRECT
262 select FB_CFB_COPYAREA
263 select FB_CFB_IMAGEBLIT
264 default y
265 help
266 The framebuffer-device frontend drivers allows the kernel to create a
267 virtual framebuffer. This framebuffer can be viewed in another
268 domain. Unless this domain has access to a real video card, you
269 probably want to say Y here.
271 config XEN_KEYBOARD
272 tristate "Keyboard-device frontend driver"
273 depends on XEN_FRAMEBUFFER && INPUT
274 default y
275 help
276 The keyboard-device frontend driver allows the kernel to create a
277 virtual keyboard. This keyboard can then be driven by another
278 domain. If you've said Y to CONFIG_XEN_FRAMEBUFFER, you probably
279 want to say Y here.
281 config XEN_SCRUB_PAGES
282 bool "Scrub memory before freeing it to Xen"
283 default y
284 help
285 Erase memory contents before freeing it back to Xen's global
286 pool. This ensures that any secrets contained within that
287 memory (e.g., private keys) cannot be found by other guests that
288 may be running on the machine. Most people will want to say Y here.
289 If security is not a concern then you may increase performance by
290 saying N.
292 config XEN_DISABLE_SERIAL
293 bool "Disable serial port drivers"
294 default y
295 help
296 Disable serial port drivers, allowing the Xen console driver
297 to provide a serial console at ttyS0.
299 config XEN_SYSFS
300 tristate "Export Xen attributes in sysfs"
301 depends on SYSFS
302 select SYS_HYPERVISOR
303 default y
304 help
305 Xen hypervisor attributes will show up under /sys/hypervisor/.
307 choice
308 prompt "Xen version compatibility"
309 default XEN_COMPAT_030002_AND_LATER
311 config XEN_COMPAT_030002_AND_LATER
312 bool "3.0.2 and later"
314 config XEN_COMPAT_030004_AND_LATER
315 bool "3.0.4 and later"
317 config XEN_COMPAT_030100_AND_LATER
318 bool "3.1.0 and later"
320 config XEN_COMPAT_LATEST_ONLY
321 bool "no compatibility code"
323 endchoice
325 config XEN_COMPAT
326 hex
327 default 0xffffff if XEN_COMPAT_LATEST_ONLY
328 default 0x030100 if XEN_COMPAT_030100_AND_LATER
329 default 0x030004 if XEN_COMPAT_030004_AND_LATER
330 default 0x030002 if XEN_COMPAT_030002_AND_LATER
331 default 0
333 endmenu
335 config HAVE_IRQ_IGNORE_UNHANDLED
336 def_bool y
338 config NO_IDLE_HZ
339 def_bool y
341 config XEN_SMPBOOT
342 def_bool y
343 depends on SMP && !PPC_XEN
345 config XEN_BALLOON
346 def_bool y
347 depends on !PPC_XEN
349 config XEN_XENCOMM
350 bool
352 config XEN_DEVMEM
353 def_bool y
355 endif