2 # This Kconfig describe xen options
9 config XEN_INTERFACE_VERSION
15 config XEN_PRIVILEGED_GUEST
16 bool "Privileged Guest (domain 0)"
18 Support for privileged operation (domain 0)
20 config XEN_UNPRIVILEGED_GUEST
22 depends on !XEN_PRIVILEGED_GUEST
33 config XEN_NETDEV_ACCEL_SFC_UTIL
38 tristate "Backend driver support"
39 default XEN_PRIVILEGED_GUEST
41 Support for backend device drivers that provide I/O services
42 to other virtual machines.
44 config XEN_BLKDEV_BACKEND
45 tristate "Block-device backend driver"
46 depends on BLOCK && XEN_BACKEND
50 The block-device backend driver allows the kernel to export its
51 block devices to other guests via a high-performance shared-memory
55 tristate "Block-device tap backend driver"
56 depends on BLOCK && XEN_BACKEND
60 The block tap driver is an alternative to the block back driver
61 and allows VM block requests to be redirected to userspace through
62 a device interface. The tap allows user-space development of
63 high-performance block backends, where disk images may be implemented
64 as files, in memory, or on other hosts across the network. This
65 driver can safely coexist with the existing blockback driver.
67 config XEN_BLKDEV_TAP2
68 tristate "Block-device tap backend driver 2"
69 depends on BLOCK && XEN_BACKEND
72 The block tap driver is an alternative to the block back driver
73 and allows VM block requests to be redirected to userspace through
74 a device interface. The tap allows user-space development of
75 high-performance block backends, where disk images may be implemented
76 as files, in memory, or on other hosts across the network. This
77 driver can safely coexist with the existing blockback driver.
80 prompt "Select blktap2 driver"
81 depends on XEN_BLKDEV_TAP2=y
83 config XEN_BLKDEV_TAP2_LEGACY
86 config XEN_BLKDEV_TAP2_NEW
91 config XEN_NR_TAP2_DEVICES
92 int "Number of devices the version 2 tap backend driver can handle"
96 depends on XEN_BLKDEV_TAP2
98 This sets the number of backend devices the v2 tap backend driver
99 will be able to handle simultaneously. Note that device 0 is the
100 control device and hence not available to service guests.
102 config XEN_BLKBACK_PAGEMAP
104 depends on XEN_BLKDEV_BACKEND != n && XEN_BLKDEV_TAP2 != n
105 default XEN_BLKDEV_BACKEND || XEN_BLKDEV_TAP2
107 config XEN_NETDEV_BACKEND
108 tristate "Network-device backend driver"
109 depends on XEN_BACKEND && NET
112 The network-device backend driver allows the kernel to export its
113 network devices to other guests via a high-performance shared-memory
116 config XEN_NETDEV_TX_SHIFT
117 int "Maximum simultaneous transmit requests (as a power of 2)"
118 depends on XEN_NETDEV_BACKEND
122 The maximum number transmits the driver can hold pending, expressed
123 as the exponent of a power of 2.
125 config XEN_NETDEV_PIPELINED_TRANSMITTER
126 bool "Pipelined transmitter (DANGEROUS)"
127 depends on XEN_NETDEV_BACKEND
129 If the net backend is a dumb domain, such as a transparent Ethernet
130 bridge with no local IP interface, it is safe to say Y here to get
131 slightly lower network overhead.
132 If the backend has a local IP interface; or may be doing smart things
133 like reassembling packets to perform firewall filtering; or if you
134 are unsure; or if you experience network hangs when this option is
135 enabled; then you must say N here.
137 config XEN_NETDEV_ACCEL_SFC_BACKEND
138 tristate "Network-device backend driver acceleration for Solarflare NICs"
139 depends on XEN_NETDEV_BACKEND && SFC && SFC_RESOURCE && X86
140 select XEN_NETDEV_ACCEL_SFC_UTIL
143 config XEN_NETDEV_LOOPBACK
144 tristate "Network-device loopback driver"
145 depends on XEN_NETDEV_BACKEND
147 A two-interface loopback device to emulate a local netfront-netback
148 connection. If unsure, it is probably safe to say N here.
150 config XEN_TPMDEV_BACKEND
151 tristate "TPM-device backend driver"
152 depends on XEN_BACKEND
154 The TPM-device backend driver
156 config XEN_SCSI_BACKEND
157 tristate "SCSI backend driver"
158 depends on SCSI && XEN_BACKEND
161 The SCSI backend driver allows the kernel to export its SCSI Devices
162 to other guests via a high-performance shared-memory interface.
164 config XEN_USB_BACKEND
165 tristate "USB backend driver"
166 depends on USB && XEN_BACKEND
169 The USB backend driver allows the kernel to export its USB Devices
172 config XEN_BLKDEV_FRONTEND
173 tristate "Block-device frontend driver"
176 The block-device frontend driver allows the kernel to access block
177 devices mounted within another guest OS. Unless you are building a
178 dedicated device-driver domain, or your master control domain
179 (domain 0), then you almost certainly want to say Y here.
181 config XEN_NETDEV_FRONTEND
182 tristate "Network-device frontend driver"
186 The network-device frontend driver allows the kernel to access
187 network interfaces within another guest OS. Unless you are building a
188 dedicated device-driver domain, or your master control domain
189 (domain 0), then you almost certainly want to say Y here.
191 config XEN_NETDEV_ACCEL_SFC_FRONTEND
192 tristate "Network-device frontend driver acceleration for Solarflare NICs"
193 depends on XEN_NETDEV_FRONTEND && X86
194 select XEN_NETDEV_ACCEL_SFC_UTIL
197 config XEN_SCSI_FRONTEND
198 tristate "SCSI frontend driver"
202 The SCSI frontend driver allows the kernel to access SCSI Devices
203 within another guest OS.
205 config XEN_USB_FRONTEND
206 tristate "USB frontend driver"
210 The USB frontend driver allows the kernel to access USB Devices
211 within another guest OS.
213 config XEN_USB_FRONTEND_HCD_STATS
214 bool "Taking the HCD statistics (for debug)"
215 depends on XEN_USB_FRONTEND
218 Count the transferred urb status and the RING_FULL occurrence.
220 config XEN_USB_FRONTEND_HCD_PM
221 bool "HCD suspend/resume support (DO NOT USE)"
222 depends on XEN_USB_FRONTEND
225 Experimental bus suspend/resume feature support.
228 tristate "User-space granted page access driver"
229 depends on XEN_BACKEND != n
230 default XEN_PRIVILEGED_GUEST
232 Device for accessing (in user-space) pages that have been granted
235 config XEN_FRAMEBUFFER
236 tristate "Framebuffer-device frontend driver"
238 select FB_CFB_FILLRECT
239 select FB_CFB_COPYAREA
240 select FB_CFB_IMAGEBLIT
243 The framebuffer-device frontend drivers allows the kernel to create a
244 virtual framebuffer. This framebuffer can be viewed in another
245 domain. Unless this domain has access to a real video card, you
246 probably want to say Y here.
249 tristate "Keyboard-device frontend driver"
250 depends on XEN_FRAMEBUFFER && INPUT
253 The keyboard-device frontend driver allows the kernel to create a
254 virtual keyboard. This keyboard can then be driven by another
255 domain. If you've said Y to CONFIG_XEN_FRAMEBUFFER, you probably
258 config XEN_DISABLE_SERIAL
259 bool "Disable serial port drivers"
262 Disable serial port drivers, allowing the Xen console driver
263 to provide a serial console at ttyS0.
265 config XEN_NR_GUEST_DEVICES
266 int "Number of guest devices"
267 range 0 4032 if 64BIT
269 default 256 if XEN_BACKEND
272 Specify the total number of virtual devices (i.e. both frontend
273 and backend) that you want the kernel to be able to service.
276 prompt "Xen version compatibility"
277 default XEN_COMPAT_030002_AND_LATER
279 config XEN_COMPAT_030002_AND_LATER
280 bool "3.0.2 and later"
282 config XEN_COMPAT_030004_AND_LATER
283 bool "3.0.4 and later"
285 config XEN_COMPAT_030100_AND_LATER
286 bool "3.1.0 and later"
288 config XEN_COMPAT_030200_AND_LATER
289 bool "3.2.0 and later"
291 config XEN_COMPAT_030300_AND_LATER
292 bool "3.3.0 and later"
294 config XEN_COMPAT_030400_AND_LATER
295 bool "3.4.0 and later"
297 config XEN_COMPAT_040000_AND_LATER
298 bool "4.0.0 and later"
300 config XEN_COMPAT_040100_AND_LATER
301 bool "4.1.0 and later"
303 config XEN_COMPAT_LATEST_ONLY
304 bool "no compatibility code"
310 default 0xffffff if XEN_COMPAT_LATEST_ONLY
311 default 0x040100 if XEN_COMPAT_040100_AND_LATER
312 default 0x040000 if XEN_COMPAT_040000_AND_LATER
313 default 0x030400 if XEN_COMPAT_030400_AND_LATER
314 default 0x030300 if XEN_COMPAT_030300_AND_LATER
315 default 0x030200 if XEN_COMPAT_030200_AND_LATER
316 default 0x030100 if XEN_COMPAT_030100_AND_LATER
317 default 0x030004 if XEN_COMPAT_030004_AND_LATER
318 default 0x030002 if XEN_COMPAT_030002_AND_LATER
321 config XEN_VCPU_INFO_PLACEMENT
322 bool "Place shared vCPU info in per-CPU storage"
323 # depends on X86 && (XEN_COMPAT >= 0x00030101)
325 depends on !XEN_COMPAT_030002_AND_LATER
326 depends on !XEN_COMPAT_030004_AND_LATER
327 depends on !XEN_COMPAT_030100_AND_LATER
330 This allows faster access to the per-vCPU shared info
335 config HAVE_IRQ_IGNORE_UNHANDLED
338 config ARCH_HAS_WALK_MEMORY
344 depends on SMP && !PPC_XEN
346 config XEN_SPINLOCK_ACQUIRE_NESTING
347 int "maximum nesting level for acquiring spin locks"
349 # Xen versions prior to 3.2.x have a race condition with HYPERVISOR_poll().
350 depends on !XEN_COMPAT_030002_AND_LATER
351 depends on !XEN_COMPAT_030004_AND_LATER
352 depends on !XEN_COMPAT_030100_AND_LATER
353 range 0 3 if EXPERIMENTAL
357 IRQ-safe spin lock acquire operations can re-enable interrupts
358 before entering polling mode, to reduce interrupt latencies.
359 This option specifies how many times this can be done for each
360 individual spin lock (0 disables this behavior).
367 menu "Xen driver support"
368 depends on XEN || PARAVIRT_XEN
371 bool "Xen memory balloon driver" if PARAVIRT_XEN
372 depends on PARAVIRT_XEN || !PPC_XEN
375 The balloon driver allows the Xen domain to request more memory from
376 the system to expand the domain's memory allocation, or alternatively
377 return unneeded memory to the system.
379 config XEN_SELFBALLOONING
380 bool "Dynamically self-balloon kernel memory to target"
381 depends on XEN_BALLOON && CLEANCACHE && SWAP && XEN_TMEM
383 Self-ballooning dynamically balloons available kernel memory driven
384 by the current usage of anonymous memory ("committed AS") and
385 controlled by various sysfs-settable parameters. Configuring
386 FRONTSWAP is highly recommended; if it is not configured, self-
387 ballooning is disabled by default but can be enabled with the
388 'selfballooning' kernel boot parameter. If FRONTSWAP is configured,
389 frontswap-selfshrinking is enabled by default but can be disabled
390 with the 'noselfshrink' kernel boot parameter; and self-ballooning
391 is enabled by default but can be disabled with the 'noselfballooning'
392 kernel boot parameter. Note that systems without a sufficiently
393 large swap device should not enable self-ballooning.
395 config XEN_BALLOON_MEMORY_HOTPLUG
396 bool "Memory hotplug support for Xen balloon driver"
398 depends on PARAVIRT_XEN && XEN_BALLOON && MEMORY_HOTPLUG
400 Memory hotplug support for Xen balloon driver allows expanding memory
401 available for the system above limit declared at system startup.
402 It is very useful on critical systems which require long
403 run without rebooting.
405 Memory could be hotplugged in following steps:
407 1) dom0: xl mem-max <domU> <maxmem>
408 where <maxmem> is >= requested memory size,
410 2) dom0: xl mem-set <domU> <memory>
411 where <memory> is requested memory size; alternatively memory
412 could be added by writing proper value to
413 /sys/devices/system/xen_memory/xen_memory0/target or
414 /sys/devices/system/xen_memory/xen_memory0/target_kb on dumU,
416 3) domU: for i in /sys/devices/system/memory/memory*/state; do \
417 [ "`cat "$i"`" = offline ] && echo online > "$i"; done
419 Memory could be onlined automatically on domU by adding following line to udev rules:
421 SUBSYSTEM=="memory", ACTION=="add", RUN+="/bin/sh -c '[ -f /sys$devpath/state ] && echo online > /sys$devpath/state'"
423 In that case step 3 should be omitted.
425 config XEN_SCRUB_PAGES
426 bool "Scrub memory before freeing it to Xen"
427 depends on XEN || XEN_BALLOON
430 Erase memory contents before freeing it back to Xen's global
431 pool. This ensures that any secrets contained within that
432 memory (e.g., private keys) cannot be found by other guests that
433 may be running on the machine. Most people will want to say Y here.
434 If security is not a concern then you may increase performance by
436 If in doubt, say yes.
438 config XEN_DEV_EVTCHN
439 tristate "Xen /dev/xen/evtchn device"
440 default PARAVIRT_XEN || XEN_PRIVILEGED_GUEST || m
442 The evtchn driver allows a userspace process to triger event
443 channels and to receive notification of an event channel
445 If in doubt, say yes.
447 config PARAVIRT_XEN_BACKEND
448 bool "Backend driver support"
452 Support for backend device drivers that provide I/O services
453 to other virtual machines.
456 tristate "Xen filesystem"
457 depends on PARAVIRT_XEN
461 The xen filesystem provides a way for domains to share
462 information with each other and with the hypervisor.
463 For example, by reading and writing the "xenbus" file, guests
464 may pass arbitrary information to the initial domain.
465 If in doubt, say yes.
467 config XEN_COMPAT_XENFS
468 bool "Create compatibility mount point /proc/xen"
472 The old xenstore userspace tools expect to find "xenbus"
473 under /proc/xen, but "xenbus" is now found at the root of the
474 xenfs filesystem. Selecting this causes the kernel to create
475 the compatibility mount point /proc/xen if it is running on
477 If in doubt, say yes.
479 config XEN_SYS_HYPERVISOR
480 bool "Create xen entries under /sys/hypervisor"
482 select SYS_HYPERVISOR
485 Create entries under /sys/hypervisor describing the Xen
486 hypervisor environment. When running native or in another
487 virtual environment, /sys/hypervisor will still be present,
488 but will have no xen contents.
490 config XEN_XENBUS_FRONTEND
494 tristate "userspace grant access device driver"
495 depends on PARAVIRT_XEN
499 Allows userspace processes to use grants.
501 config XEN_GRANT_DEV_ALLOC
502 tristate "User-space grant reference allocator driver"
503 depends on PARAVIRT_XEN
506 Allows userspace processes to create pages with access granted
507 to other domains. This can be used to implement frontend drivers
508 or as part of an inter-domain shared memory channel.
512 depends on PARAVIRT_XEN && PCI
520 default y if (CLEANCACHE || FRONTSWAP)
522 Shim to interface in-kernel Transcendent Memory hooks
523 (e.g. cleancache and frontswap) to Xen tmem hypercalls.
525 config XEN_PCIDEV_BACKEND
526 tristate "Xen PCI-device backend driver"
527 depends on PCI && ((X86 && PARAVIRT_XEN_BACKEND) || (XEN_PRIVILEGED_GUEST && XEN_BACKEND))
528 default XEN_BACKEND if XEN
531 The PCI device backend driver allows the kernel to export arbitrary
532 PCI devices to other guests. If you select this to be a module, you
533 will need to make sure no other driver has bound to the device(s)
534 you want to make visible to other guests.
536 The "hide" parameter (only applicable if backend driver is compiled
537 into the kernel) allows you to bind the PCI devices to this module
538 from the default device drivers. The argument is the list of PCI BDFs:
539 xen-pciback.hide=(03:00.0)(04:00.0)
543 menu "PCI Backend Mode"
544 depends on XEN_PCIDEV_BACKEND
547 prompt "Default PCI backend mode"
548 default XEN_PCIDEV_BACKEND_DEFAULT_CONTROLLER if IA64
549 default XEN_PCIDEV_BACKEND_DEFAULT_VPCI
551 config XEN_PCIDEV_BACKEND_DEFAULT_VPCI
553 select XEN_PCIDEV_BACKEND_VPCI
555 config XEN_PCIDEV_BACKEND_DEFAULT_PASSTHROUGH
557 select XEN_PCIDEV_BACKEND_PASSTHROUGH
559 config XEN_PCIDEV_BACKEND_DEFAULT_SLOT
561 select XEN_PCIDEV_BACKEND_SLOT
563 config XEN_PCIDEV_BACKEND_DEFAULT_CONTROLLER
566 select XEN_PCIDEV_BACKEND_CONTROLLER
570 config XEN_PCIDEV_BACKEND_DEFAULT
572 default "vpci" if XEN_PCIDEV_BACKEND_DEFAULT_VPCI
573 default "passthrough" if XEN_PCIDEV_BACKEND_DEFAULT_PASSTHROUGH
574 default "slot" if XEN_PCIDEV_BACKEND_DEFAULT_SLOT
575 default "controller" if XEN_PCIDEV_BACKEND_DEFAULT_CONTROLLER
577 config XEN_PCIDEV_BACKEND_VPCI
581 This PCI Backend hides the true PCI topology and makes the frontend
582 think there is a single PCI bus with only the exported devices on it.
583 For example, a device at 03:05.0 will be re-assigned to 00:00.0. A
584 second device at 02:1a.1 will be re-assigned to 00:01.1.
586 If not the default, the parameter "mode=vpci" allows you to use this
589 config XEN_PCIDEV_BACKEND_PASSTHROUGH
592 This PCI Backend provides a real view of the PCI topology to the
593 frontend (for example, a device at 06:01.b will still appear at
594 06:01.b to the frontend). This is similar to how Xen 2.0.x exposed
595 PCI devices to its driver domains. This may be required for drivers
596 which depend on finding their hardward in certain bus/slot
599 If not the default, the parameter "mode=passthrough" allows you to
602 config XEN_PCIDEV_BACKEND_SLOT
605 This PCI Backend hides the true PCI topology and makes the frontend
606 think there is a single PCI bus with only the exported devices on it.
607 Contrary to the virtual PCI backend, a function becomes a new slot.
608 For example, a device at 03:05.2 will be re-assigned to 00:00.0. A
609 second device at 02:1a.1 will be re-assigned to 00:01.0.
611 If not the default, the parameter "mode=slot" allows you to use this
614 config XEN_PCIDEV_BACKEND_CONTROLLER
618 This PCI backend virtualizes the PCI bus topology by providing a
619 virtual bus per PCI root device. Devices which are physically under
620 the same root bus will appear on the same virtual bus. For systems
621 with complex I/O addressing, this is the only backend which supports
622 extended I/O port spaces and MMIO translation offsets. This backend
623 also supports slot virtualization. For example, a device at
624 0000:01:02.1 will be re-assigned to 0000:00:00.0. A second device
625 at 0000:02:05.0 (behind a P2P bridge on bus 0000:01) will be
626 re-assigned to 0000:00:01.0. A third device at 0000:16:05.0 (under
627 a different PCI root bus) will be re-assigned to 0000:01:00.0.
629 If not the default, the parameter "mode=controller" allows you to
636 depends on PARAVIRT_XEN || (XEN && PROC_FS)
640 config XEN_ACPI_PROCESSOR
641 tristate "Xen ACPI processor"
642 depends on PARAVIRT_XEN && X86 && ACPI_PROCESSOR && CPU_FREQ
645 This ACPI processor uploads Power Management information to the Xen hypervisor.
647 To do that the driver parses the Power Management data and uploads said
648 information to the Xen hypervisor. Then the Xen hypervisor can select the
649 proper Cx and Pxx states. It also registers itslef as the SMM so that
650 other drivers (such as ACPI cpufreq scaling driver) will not load.
652 To compile this driver as a module, choose M here: the
653 module will be called xen_acpi_processor If you do not know what to choose,
654 select M here. If the CPUFREQ drivers are built in, select Y here.