xl.conf(5)
π xl.conf(5) β XL Global/Host Configuration π
okay bestie, gather round: this is xl.conf(5), Xen's host-wide config file for the xl toolstack. Main character energy for your whole host, no cap. Itβs where the global vibes live, while per-domain stuff goes in another file. iykyk π
π NAME π
/etc/xen/xl.conf β XL Global/Host Configuration.
πΈ DESCRIPTION πΈ
The xl.conf file allows configuration of host-wide xl toolstack options.
For details of per-domain configuration options please see xl.cfg(5). thatβs the domain-specific sister doc, bestie π¦
β¨ SYNTAX β¨
okay so the config file is literally a series of KEY=VALUE pairs.
A value VALUE is one of:
STRINGβ a string, surrounded by either single or double quotes.NUMBERβ a number, in either decimal, octal (using a0prefix) or hexadecimal (using a0xprefix).BOOLEANβ aNUMBERinterpreted asFalse(0) orTrue(any other value).[ VALUE, VALUE, ... ]β a list ofVALUEs of the above types. Lists are homogeneous and are not nested.
The semantics of each KEY defines which form of VALUE is required. slay, very structured β¨
π OPTIONS π
domid_policy="xen"|"random"β Determines how domain-id is set when creating a new domain.
If set to "xen" then the hypervisor will allocate new domain-id values on a sequential basis.
If set to "random" then a random domain-id value will be chosen.
Default: "xen".
autoballoon="off"|"on"|"auto"β If set to"on"thenxlwill automatically reduce the amount of memory assigned to domain 0 in order to free memory for new domains.
If set to "off" then xl will not automatically reduce the amount of domain 0 memory.
If set to "auto" then auto-ballooning will be disabled if the dom0_mem option was provided on the Xen command line.
You are strongly recommended to set this to "off" (or "auto") if you use the dom0_mem hypervisor command line to reduce the amount of memory given to domain 0 by default.
Default: "auto".
run_hotplug_scripts=BOOLEANβ If disabled hotplug scripts will be called fromudev, as it used to be in the previous releases. With the default option, hotplug scripts will be launched byxldirectly.
Default: 1.
lockfile="PATH"β Sets the path to the lock file used byxlto serialise certain operations (primarily domain creation).
Default: /var/lock/xl.
max_grant_frames=NUMBERβ Sets the default value for themax_grant_framesdomain config value.
Default: value of Xen command line gnttab_max_frames parameter (or its default value if unspecified).
max_maptrack_frames=NUMBERβ Sets the default value for themax_maptrack_framesdomain config value.
Default: value of Xen command line gnttab_max_maptrack_frames parameter (or its default value if unspecified).
max_grant_version=NUMBERβ Sets the default value for themax_grant_versiondomain config value.
Default: maximum grant version supported by the hypervisor.
vif.default.script="PATH"β Configures the default hotplug script used by virtual network devices.
β οΈ ngl, the old vifscript option is deprecated and should not be used.
Default: /etc/xen/scripts/vif-bridge.
vif.default.bridge="NAME"β Configures the default bridge to set for virtual network devices.
β οΈ also deprecated: the old defaultbridge option. bestie, donβt use it.
Default: "xenbr0".
vif.default.backend="NAME"β Configures the default backend to set for virtual network devices.
Default: 0.
vif.default.gatewaydev="NAME"β Configures the default gateway device to set for virtual network devices.
Default: "None".
remus.default.netbufscript="PATH"β Configures the default script used by Remus to setup network buffering.
Default: /etc/xen/scripts/remus-netbuf-setup.
colo.default.proxyscript="PATH"β Configures the default script used by COLO to setup colo-proxy.
Default: /etc/xen/scripts/colo-proxy-setup.
output_format="json|sxp"β Configures the default output format used byxlwhen printing"machine readable"information. The default is to use theJSONsyntax (https://www.json.org/). However for compatibility with the previousxmtoolstack this can be configured to use the oldSXP(S-Expression-like) syntax instead.
Default: "json".
blkdev_start="NAME"β Configures the name of the first block device to be used for temporary block device allocations by the toolstack. The default choice is"xvda".claim_mode=BOOLEANβ If this option is enabled then when a guest is created there will be an guarantee that there is memory available for the guest. The self-balloon mechanism can deflate/inflate the balloon quickly and the amount of free memory (whichxl infocan show) is stale the moment it is printed. When claim is enabled a reservation for the amount of memory (see'memory'inxl.conf(5)) is set, which is then reduced as the domain's memory is populated and eventually reaches zero. The free memory inxl infois the combination of the hypervisor's free heap memory minus the outstanding claims value.
If the reservation cannot be meet the guest creation fails immediately instead of taking seconds/minutes (depending on the size of the guest) while the guest is populated.
Default: 1.
0β No claim is made. Memory population during guest creation will be attempted as normal and may fail due to memory exhaustion.1β Free memory as reported by the hypervisor is used for calculating whether there is enough memory free to launch a guest. This guarantees immediate feedback whether the guest can be launched due to memory exhaustion (which can take a long time to find out if launching massively huge guests).
vm.cpumask="CPULIST"β Global mask applied when creating guests and pinning vcpus; this one applies to all guest types.vm.hvm.cpumask="CPULIST"β Same global mask situation; applies to both HVM and PVH guests.vm.pv.cpumask="CPULIST"β Same global mask situation; applies to PV guests.
These are global masks that are applied when creating guests and pinning vcpus to indicate which cpus they are allowed to run on. Specifically, vm.cpumask applies to all guest types, vm.hvm.cpumask applies to both HVM and PVH guests and vm.pv.cpumask applies to PV guests.
The hard affinity of guest's vcpus are logical-AND'ed with respective masks. If the resulting affinity mask is empty, operation will fail.
Use --ignore-global-affinity-masks to skip applying global masks.
The default value for these masks are all 1's, i.e. all cpus are allowed.
due to bug(s), these options may not interact well with other options concerning CPU affinity. One example is CPU pools. Users should always double check that the required affinity has taken effect. fr fr, double-check it π
bootloader_restrict=BOOLEANβ System wide default for whether the bootloader should be run in a restricted environment. Seexl.cfg(5)bootloader_restrictfor more information on how to setup and use the option.
π¦ SEE ALSO π¦
p.s. this whole page is xl.conf(5) from 4.20.5-pre, dated 2026-10-16 β mwah π periodt
π¦ where this page comes from
- debian trixie: xen-utils-common 4.20.4+39-gf1e1321c87-0+deb13u1 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms