^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) menu "Xen driver support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) depends on XEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) config XEN_BALLOON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) bool "Xen memory balloon driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) The balloon driver allows the Xen domain to request more memory from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) the system to expand the domain's memory allocation, or alternatively
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) return unneeded memory to the system.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) config XEN_BALLOON_MEMORY_HOTPLUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) bool "Memory hotplug support for Xen balloon driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) depends on XEN_BALLOON && MEMORY_HOTPLUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) Memory hotplug support for Xen balloon driver allows expanding memory
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) available for the system above limit declared at system startup.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) It is very useful on critical systems which require long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) run without rebooting.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) It's also very useful for non PV domains to obtain unpopulated physical
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) memory ranges to use in order to map foreign memory or grants.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) Memory could be hotplugged in following steps:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 1) target domain: ensure that memory auto online policy is in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) effect by checking /sys/devices/system/memory/auto_online_blocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) file (should be 'online').
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 2) control domain: xl mem-max <target-domain> <maxmem>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) where <maxmem> is >= requested memory size,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 3) control domain: xl mem-set <target-domain> <memory>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) where <memory> is requested memory size; alternatively memory
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) could be added by writing proper value to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) /sys/devices/system/xen_memory/xen_memory0/target or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) /sys/devices/system/xen_memory/xen_memory0/target_kb on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) target domain.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) Alternatively, if memory auto onlining was not requested at step 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) the newly added memory can be manually onlined in the target domain
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) by doing the following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) for i in /sys/devices/system/memory/memory*/state; do \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) [ "`cat "$i"`" = offline ] && echo online > "$i"; done
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) or by adding the following line to udev rules:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) SUBSYSTEM=="memory", ACTION=="add", RUN+="/bin/sh -c '[ -f /sys$devpath/state ] && echo online > /sys$devpath/state'"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) config XEN_MEMORY_HOTPLUG_LIMIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) int "Hotplugged memory limit (in GiB) for a PV guest"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) default 512
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) depends on XEN_HAVE_PVMMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) depends on MEMORY_HOTPLUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) Maxmium amount of memory (in GiB) that a PV guest can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) expanded to when using memory hotplug.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) A PV guest can have more memory than this limit if is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) started with a larger maximum.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) This value is used to allocate enough space in internal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) tables needed for physical memory administration.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) config XEN_SCRUB_PAGES_DEFAULT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) bool "Scrub pages before returning them to system by default"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) depends on XEN_BALLOON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) Scrub pages before returning them to the system for reuse by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) other domains. This makes sure that any confidential data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) is not accidentally visible to other domains. It is more
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) secure, but slightly less efficient. This can be controlled with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) xen_scrub_pages=0 parameter and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) /sys/devices/system/xen_memory/xen_memory0/scrub_pages.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) This option only sets the default value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) If in doubt, say yes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) config XEN_DEV_EVTCHN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) tristate "Xen /dev/xen/evtchn device"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) The evtchn driver allows a userspace process to trigger event
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) channels and to receive notification of an event channel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) firing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) If in doubt, say yes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) config XEN_BACKEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) bool "Backend driver support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) default XEN_DOM0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) Support for backend device drivers that provide I/O services
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) to other virtual machines.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) config XENFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) tristate "Xen filesystem"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) select XEN_PRIVCMD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) The xen filesystem provides a way for domains to share
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) information with each other and with the hypervisor.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) For example, by reading and writing the "xenbus" file, guests
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) may pass arbitrary information to the initial domain.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) If in doubt, say yes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) config XEN_COMPAT_XENFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) bool "Create compatibility mount point /proc/xen"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) depends on XENFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) The old xenstore userspace tools expect to find "xenbus"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) under /proc/xen, but "xenbus" is now found at the root of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) xenfs filesystem. Selecting this causes the kernel to create
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) the compatibility mount point /proc/xen if it is running on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) a xen platform.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) If in doubt, say yes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) config XEN_SYS_HYPERVISOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) bool "Create xen entries under /sys/hypervisor"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) depends on SYSFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) select SYS_HYPERVISOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) Create entries under /sys/hypervisor describing the Xen
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) hypervisor environment. When running native or in another
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) virtual environment, /sys/hypervisor will still be present,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) but will have no xen contents.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) config XEN_XENBUS_FRONTEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) config XEN_GNTDEV
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) tristate "userspace grant access device driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) depends on XEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) default m
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) select MMU_NOTIFIER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) Allows userspace processes to use grants.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) config XEN_GNTDEV_DMABUF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) bool "Add support for dma-buf grant access device driver extension"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) depends on XEN_GNTDEV && XEN_GRANT_DMA_ALLOC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) select DMA_SHARED_BUFFER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) Allows userspace processes and kernel modules to use Xen backed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) dma-buf implementation. With this extension grant references to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) the pages of an imported dma-buf can be exported for other domain
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) use and grant references coming from a foreign domain can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) converted into a local dma-buf for local export.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) config XEN_GRANT_DEV_ALLOC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) tristate "User-space grant reference allocator driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) depends on XEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) default m
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) Allows userspace processes to create pages with access granted
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) to other domains. This can be used to implement frontend drivers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) or as part of an inter-domain shared memory channel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) config XEN_GRANT_DMA_ALLOC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) bool "Allow allocating DMA capable buffers with grant reference module"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) depends on XEN && HAS_DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) Extends grant table module API to allow allocating DMA capable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) buffers and mapping foreign grant references on top of it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) The resulting buffer is similar to one allocated by the balloon
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) driver in that proper memory reservation is made by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) ({increase|decrease}_reservation and VA mappings are updated if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) needed).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) This is useful for sharing foreign buffers with HW drivers which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) cannot work with scattered buffers provided by the balloon driver,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) but require DMAable memory instead.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) config SWIOTLB_XEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) select DMA_OPS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) select SWIOTLB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) config XEN_PCIDEV_BACKEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) tristate "Xen PCI-device backend driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) depends on PCI && X86 && XEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) depends on XEN_BACKEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) default m
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) The PCI device backend driver allows the kernel to export arbitrary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) PCI devices to other guests. If you select this to be a module, you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) will need to make sure no other driver has bound to the device(s)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) you want to make visible to other guests.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) The parameter "passthrough" allows you specify how you want the PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) devices to appear in the guest. You can choose the default (0) where
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) PCI topology starts at 00.00.0, or (1) for passthrough if you want
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) the PCI devices topology appear the same as in the host.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) The "hide" parameter (only applicable if backend driver is compiled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) into the kernel) allows you to bind the PCI devices to this module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) from the default device drivers. The argument is the list of PCI BDFs:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) xen-pciback.hide=(03:00.0)(04:00.0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) If in doubt, say m.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) config XEN_PVCALLS_FRONTEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) tristate "XEN PV Calls frontend driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) depends on INET && XEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) select XEN_XENBUS_FRONTEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) Experimental frontend for the Xen PV Calls protocol
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) (https://xenbits.xen.org/docs/unstable/misc/pvcalls.html). It
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) sends a small set of POSIX calls to the backend, which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) implements them.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) config XEN_PVCALLS_BACKEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) bool "XEN PV Calls backend driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) depends on INET && XEN && XEN_BACKEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) Experimental backend for the Xen PV Calls protocol
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) (https://xenbits.xen.org/docs/unstable/misc/pvcalls.html). It
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) allows PV Calls frontends to send POSIX calls to the backend,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) which implements them.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) If in doubt, say n.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) config XEN_SCSI_BACKEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) tristate "XEN SCSI backend driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) depends on XEN && XEN_BACKEND && TARGET_CORE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) The SCSI backend driver allows the kernel to export its SCSI Devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) to other guests via a high-performance shared-memory interface.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) Only needed for systems running as XEN driver domains (e.g. Dom0) and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) if guests need generic access to SCSI devices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) config XEN_PRIVCMD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) depends on XEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) default m
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) config XEN_STUB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) bool "Xen stub drivers"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) depends on XEN && X86_64 && BROKEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) Allow kernel to install stub drivers, to reserve space for Xen drivers,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) i.e. memory hotplug and cpu hotplug, and to block native drivers loaded,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) so that real Xen drivers can be modular.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) To enable Xen features like cpu and memory hotplug, select Y here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) config XEN_ACPI_HOTPLUG_MEMORY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) tristate "Xen ACPI memory hotplug"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) depends on XEN_DOM0 && XEN_STUB && ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) This is Xen ACPI memory hotplug.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) Currently Xen only support ACPI memory hot-add. If you want
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) to hot-add memory at runtime (the hot-added memory cannot be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) removed until machine stop), select Y/M here, otherwise select N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) config XEN_ACPI_HOTPLUG_CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) tristate "Xen ACPI cpu hotplug"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) depends on XEN_DOM0 && XEN_STUB && ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) select ACPI_CONTAINER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) Xen ACPI cpu enumerating and hotplugging
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) For hotplugging, currently Xen only support ACPI cpu hotadd.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) If you want to hotadd cpu at runtime (the hotadded cpu cannot
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) be removed until machine stop), select Y/M here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) config XEN_ACPI_PROCESSOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) tristate "Xen ACPI processor"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) depends on XEN && XEN_DOM0 && X86 && ACPI_PROCESSOR && CPU_FREQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) default m
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) This ACPI processor uploads Power Management information to the Xen
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) hypervisor.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) To do that the driver parses the Power Management data and uploads
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) said information to the Xen hypervisor. Then the Xen hypervisor can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) select the proper Cx and Pxx states. It also registers itself as the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) SMM so that other drivers (such as ACPI cpufreq scaling driver) will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) not load.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) To compile this driver as a module, choose M here: the module will be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) called xen_acpi_processor If you do not know what to choose, select
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) M here. If the CPUFREQ drivers are built in, select Y here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) config XEN_MCE_LOG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) bool "Xen platform mcelog"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) depends on XEN_DOM0 && X86_MCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) Allow kernel fetching MCE error from Xen platform and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) converting it into Linux mcelog format for mcelog tools
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) config XEN_HAVE_PVMMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) config XEN_EFI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) depends on (ARM || ARM64 || X86_64) && EFI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) config XEN_AUTO_XLATE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) depends on ARM || ARM64 || XEN_PVHVM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) Support for auto-translated physmap guests.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) config XEN_ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) depends on X86 && ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) config XEN_SYMS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) bool "Xen symbols"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) depends on X86 && XEN_DOM0 && XENFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) default y if KALLSYMS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) Exports hypervisor symbols (along with their types and addresses) via
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) /proc/xen/xensyms file, similar to /proc/kallsyms
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) config XEN_HAVE_VPMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) config XEN_FRONT_PGDIR_SHBUF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) config XEN_UNPOPULATED_ALLOC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) bool "Use unpopulated memory ranges for guest mappings"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) depends on X86 && ZONE_DEVICE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) default XEN_BACKEND || XEN_GNTDEV || XEN_DOM0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) Use unpopulated memory ranges in order to create mappings for guest
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) memory regions, including grant maps and foreign pages. This avoids
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) having to balloon out RAM regions in order to obtain physical memory
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) space to create such mappings.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) endmenu