ia64/linux-2.6.18-xen.hg

view drivers/xen/Kconfig @ 701:16c549b3ba59

xen: conditionalize PCI reassign code by a config option, selected
only from privileged Xen configurations.

Also eliminate the pointless new macro ROUND_UP_TO_PAGESIZE().

Signed-off-by: Jan Beulich <jbeulich@novell.com>
author Keir Fraser <keir.fraser@citrix.com>
date Tue Oct 14 14:58:08 2008 +0100 (2008-10-14)
parents ee72fd7d22c8
children cc27ca4b86c1
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_NETDEV_BACKEND
67 tristate "Network-device backend driver"
68 depends on XEN_BACKEND && NET
69 default XEN_BACKEND
70 help
71 The network-device backend driver allows the kernel to export its
72 network devices to other guests via a high-performance shared-memory
73 interface.
75 config XEN_NETDEV_PIPELINED_TRANSMITTER
76 bool "Pipelined transmitter (DANGEROUS)"
77 depends on XEN_NETDEV_BACKEND
78 help
79 If the net backend is a dumb domain, such as a transparent Ethernet
80 bridge with no local IP interface, it is safe to say Y here to get
81 slightly lower network overhead.
82 If the backend has a local IP interface; or may be doing smart things
83 like reassembling packets to perform firewall filtering; or if you
84 are unsure; or if you experience network hangs when this option is
85 enabled; then you must say N here.
87 config XEN_NETDEV_ACCEL_SFC_BACKEND
88 tristate "Network-device backend driver acceleration for Solarflare NICs"
89 depends on XEN_NETDEV_BACKEND && SFC && SFC_RESOURCE && X86
90 select XEN_NETDEV_ACCEL_SFC_UTIL
91 default m
93 config XEN_NETDEV_LOOPBACK
94 tristate "Network-device loopback driver"
95 depends on XEN_NETDEV_BACKEND
96 help
97 A two-interface loopback device to emulate a local netfront-netback
98 connection. If unsure, it is probably safe to say N here.
100 config XEN_PCIDEV_BACKEND
101 tristate "PCI-device backend driver"
102 depends on PCI && XEN_BACKEND
103 default XEN_BACKEND
104 help
105 The PCI device backend driver allows the kernel to export arbitrary
106 PCI devices to other guests. If you select this to be a module, you
107 will need to make sure no other driver has bound to the device(s)
108 you want to make visible to other guests.
110 choice
111 prompt "PCI Backend Mode"
112 depends on XEN_PCIDEV_BACKEND
113 default XEN_PCIDEV_BACKEND_VPCI if !IA64
114 default XEN_PCIDEV_BACKEND_CONTROLLER if IA64
116 config XEN_PCIDEV_BACKEND_VPCI
117 bool "Virtual PCI"
118 ---help---
119 This PCI Backend hides the true PCI topology and makes the frontend
120 think there is a single PCI bus with only the exported devices on it.
121 For example, a device at 03:05.0 will be re-assigned to 00:00.0. A
122 second device at 02:1a.1 will be re-assigned to 00:01.1.
124 config XEN_PCIDEV_BACKEND_PASS
125 bool "Passthrough"
126 ---help---
127 This PCI Backend provides a real view of the PCI topology to the
128 frontend (for example, a device at 06:01.b will still appear at
129 06:01.b to the frontend). This is similar to how Xen 2.0.x exposed
130 PCI devices to its driver domains. This may be required for drivers
131 which depend on finding their hardward in certain bus/slot
132 locations.
134 config XEN_PCIDEV_BACKEND_SLOT
135 bool "Slot"
136 ---help---
137 This PCI Backend hides the true PCI topology and makes the frontend
138 think there is a single PCI bus with only the exported devices on it.
139 Contrary to the virtual PCI backend, a function becomes a new slot.
140 For example, a device at 03:05.2 will be re-assigned to 00:00.0. A
141 second device at 02:1a.1 will be re-assigned to 00:01.0.
143 config XEN_PCIDEV_BACKEND_CONTROLLER
144 bool "Controller"
145 depends on IA64
146 ---help---
147 This PCI backend virtualizes the PCI bus topology by providing a
148 virtual bus per PCI root device. Devices which are physically under
149 the same root bus will appear on the same virtual bus. For systems
150 with complex I/O addressing, this is the only backend which supports
151 extended I/O port spaces and MMIO translation offsets. This backend
152 also supports slot virtualization. For example, a device at
153 0000:01:02.1 will be re-assigned to 0000:00:00.0. A second device
154 at 0000:02:05.0 (behind a P2P bridge on bus 0000:01) will be
155 re-assigned to 0000:00:01.0. A third device at 0000:16:05.0 (under
156 a different PCI root bus) will be re-assigned to 0000:01:00.0.
158 endchoice
160 config XEN_PCIDEV_BE_DEBUG
161 bool "PCI Backend Debugging"
162 depends on XEN_PCIDEV_BACKEND
164 config XEN_TPMDEV_BACKEND
165 tristate "TPM-device backend driver"
166 depends on XEN_BACKEND
167 help
168 The TPM-device backend driver
170 config XEN_SCSI_BACKEND
171 tristate "SCSI backend driver"
172 depends on SCSI && XEN_BACKEND
173 default m
174 help
175 The SCSI backend driver allows the kernel to export its SCSI Devices
176 to other guests via a high-performance shared-memory interface.
178 config XEN_BLKDEV_FRONTEND
179 tristate "Block-device frontend driver"
180 default y
181 help
182 The block-device frontend driver allows the kernel to access block
183 devices mounted within another guest OS. Unless you are building a
184 dedicated device-driver domain, or your master control domain
185 (domain 0), then you almost certainly want to say Y here.
187 config XEN_NETDEV_FRONTEND
188 tristate "Network-device frontend driver"
189 depends on NET
190 default y
191 help
192 The network-device frontend driver allows the kernel to access
193 network interfaces within another guest OS. Unless you are building a
194 dedicated device-driver domain, or your master control domain
195 (domain 0), then you almost certainly want to say Y here.
197 config XEN_NETDEV_ACCEL_SFC_FRONTEND
198 tristate "Network-device frontend driver acceleration for Solarflare NICs"
199 depends on XEN_NETDEV_FRONTEND && X86
200 select XEN_NETDEV_ACCEL_SFC_UTIL
201 default m
203 config XEN_SCSI_FRONTEND
204 tristate "SCSI frontend driver"
205 depends on SCSI
206 default m
207 help
208 The SCSI frontend driver allows the kernel to access SCSI Devices
209 within another guest OS.
211 config XEN_GRANT_DEV
212 tristate "User-space granted page access driver"
213 default XEN_PRIVILEGED_GUEST
214 help
215 Device for accessing (in user-space) pages that have been granted
216 by other domains.
218 config XEN_FRAMEBUFFER
219 tristate "Framebuffer-device frontend driver"
220 depends on FB
221 select FB_CFB_FILLRECT
222 select FB_CFB_COPYAREA
223 select FB_CFB_IMAGEBLIT
224 default y
225 help
226 The framebuffer-device frontend drivers allows the kernel to create a
227 virtual framebuffer. This framebuffer can be viewed in another
228 domain. Unless this domain has access to a real video card, you
229 probably want to say Y here.
231 config XEN_KEYBOARD
232 tristate "Keyboard-device frontend driver"
233 depends on XEN_FRAMEBUFFER && INPUT
234 default y
235 help
236 The keyboard-device frontend driver allows the kernel to create a
237 virtual keyboard. This keyboard can then be driven by another
238 domain. If you've said Y to CONFIG_XEN_FRAMEBUFFER, you probably
239 want to say Y here.
241 config XEN_SCRUB_PAGES
242 bool "Scrub memory before freeing it to Xen"
243 default y
244 help
245 Erase memory contents before freeing it back to Xen's global
246 pool. This ensures that any secrets contained within that
247 memory (e.g., private keys) cannot be found by other guests that
248 may be running on the machine. Most people will want to say Y here.
249 If security is not a concern then you may increase performance by
250 saying N.
252 config XEN_DISABLE_SERIAL
253 bool "Disable serial port drivers"
254 default y
255 help
256 Disable serial port drivers, allowing the Xen console driver
257 to provide a serial console at ttyS0.
259 config XEN_SYSFS
260 tristate "Export Xen attributes in sysfs"
261 depends on SYSFS
262 select SYS_HYPERVISOR
263 default y
264 help
265 Xen hypervisor attributes will show up under /sys/hypervisor/.
267 choice
268 prompt "Xen version compatibility"
269 default XEN_COMPAT_030002_AND_LATER
271 config XEN_COMPAT_030002_AND_LATER
272 bool "3.0.2 and later"
274 config XEN_COMPAT_030004_AND_LATER
275 bool "3.0.4 and later"
277 config XEN_COMPAT_030100_AND_LATER
278 bool "3.1.0 and later"
280 config XEN_COMPAT_LATEST_ONLY
281 bool "no compatibility code"
283 endchoice
285 config XEN_COMPAT
286 hex
287 default 0xffffff if XEN_COMPAT_LATEST_ONLY
288 default 0x030100 if XEN_COMPAT_030100_AND_LATER
289 default 0x030004 if XEN_COMPAT_030004_AND_LATER
290 default 0x030002 if XEN_COMPAT_030002_AND_LATER
291 default 0
293 endmenu
295 config HAVE_IRQ_IGNORE_UNHANDLED
296 def_bool y
298 config NO_IDLE_HZ
299 def_bool y
301 config XEN_SMPBOOT
302 def_bool y
303 depends on SMP && !PPC_XEN
305 config XEN_BALLOON
306 def_bool y
307 depends on !PPC_XEN
309 config XEN_XENCOMM
310 bool
312 config XEN_DEVMEM
313 def_bool y
315 endif