drivers/xen/Kconfig

Source file repositories/reference/linux-study-clean/drivers/xen/Kconfig

File Facts

System
Linux kernel
Corpus path
drivers/xen/Kconfig
Extension
[no extension]
Size
12492 bytes
Lines
376
Domain
Driver Families
Bucket
drivers/xen
Inferred role
Driver Families: build/configuration rule
Status
atlas-only

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

# SPDX-License-Identifier: GPL-2.0-only
menu "Xen driver support"
	depends on XEN

config XEN_BALLOON
	bool "Xen memory balloon driver"
	default y
	help
	  The balloon driver allows the Xen domain to request more memory from
	  the system to expand the domain's memory allocation, or alternatively
	  return unneeded memory to the system.

config XEN_BALLOON_MEMORY_HOTPLUG
	bool "Memory hotplug support for Xen balloon driver"
	depends on XEN_BALLOON && MEMORY_HOTPLUG
	default y
	help
	  Memory hotplug support for Xen balloon driver allows expanding memory
	  available for the system above limit declared at system startup.
	  It is very useful on critical systems which require long
	  run without rebooting.

	  It's also very useful for non PV domains to obtain unpopulated physical
	  memory ranges to use in order to map foreign memory or grants.

	  Memory could be hotplugged in following steps:

	    1) target domain: ensure that memory auto online policy is in
	       effect by checking /sys/devices/system/memory/auto_online_blocks
	       file (should be 'online').

	    2) control domain: xl mem-max <target-domain> <maxmem>
	       where <maxmem> is >= requested memory size,

	    3) control domain: xl mem-set <target-domain> <memory>
	       where <memory> is requested memory size; alternatively memory
	       could be added by writing proper value to
	       /sys/devices/system/xen_memory/xen_memory0/target or
	       /sys/devices/system/xen_memory/xen_memory0/target_kb on the
	       target domain.

	  Alternatively, if memory auto onlining was not requested at step 1
	  the newly added memory can be manually onlined in the target domain
	  by doing the following:

		for i in /sys/devices/system/memory/memory*/state; do \
		  [ "`cat "$i"`" = offline ] && echo online > "$i"; done

	  or by adding the following line to udev rules:

	  SUBSYSTEM=="memory", ACTION=="add", RUN+="/bin/sh -c '[ -f /sys$devpath/state ] && echo online > /sys$devpath/state'"

config XEN_MEMORY_HOTPLUG_LIMIT
	int "Hotplugged memory limit (in GiB) for a PV guest"
	default 512
	depends on XEN_HAVE_PVMMU
	depends on MEMORY_HOTPLUG
	help
	  Maximum amount of memory (in GiB) that a PV guest can be
	  expanded to when using memory hotplug.

	  A PV guest can have more memory than this limit if is
	  started with a larger maximum.

	  This value is used to allocate enough space in internal
	  tables needed for physical memory administration.

config XEN_SCRUB_PAGES_DEFAULT
	bool "Scrub pages before returning them to system by default"
	depends on XEN_BALLOON

Annotation

Implementation Notes