1=head1 NAME
2
3@XEN_CONFIG_DIR@/xl.conf - XL Global/Host Configuration
4
5=head1 DESCRIPTION
6
7The F<xl.conf> file allows configuration of host-wide C<xl> toolstack
8options.
9
10For details of per-domain configuration options please see
11L<xl.cfg(5)>.
12
13=head1 SYNTAX
14
15The config file consists of a series of C<KEY=VALUE> pairs.
16
17A value C<VALUE> is one of:
18
19=over 4
20
21=item B<"STRING">
22
23A string, surrounded by either single or double quotes.
24
25=item B<NUMBER>
26
27A number, in either decimal, octal (using a C<0> prefix) or
28hexadecimal (using an C<0x> prefix).
29
30=item B<BOOLEAN>
31
32A C<NUMBER> interpreted as C<False> (C<0>) or C<True> (any other
33value).
34
35=item B<[ VALUE, VALUE, ... ]>
36
37A list of C<VALUES> of the above types. Lists are homogeneous and are
38not nested.
39
40=back
41
42The semantics of each C<KEY> defines which form of C<VALUE> is required.
43
44=head1 OPTIONS
45
46=over 4
47
48=item B<domid_policy="xen"|"random">
49
50Determines how domain-id is set when creating a new domain.
51
52If set to "xen" then the hypervisor will allocate new domain-id values on a sequential basis.
53
54If set to "random" then a random domain-id value will be chosen.
55
56Default: "xen"
57
58=item B<autoballoon="off"|"on"|"auto">
59
60If set to "on" then C<xl> will automatically reduce the amount of
61memory assigned to domain 0 in order to free memory for new domains.
62
63If set to "off" then C<xl> will not automatically reduce the amount of
64domain 0 memory.
65
66If set to "auto" then auto-ballooning will be disabled if the
67C<dom0_mem> option was provided on the Xen command line.
68
69You are strongly recommended to set this to C<"off"> (or C<"auto">) if
70you use the C<dom0_mem> hypervisor command line to reduce the amount
71of memory given to domain 0 by default.
72
73Default: C<"auto">
74
75=item B<run_hotplug_scripts=BOOLEAN>
76
77If disabled hotplug scripts will be called from udev, as it used to
78be in the previous releases. With the default option, hotplug scripts
79will be launched by xl directly.
80
81Default: C<1>
82
83=item B<lockfile="PATH">
84
85Sets the path to the lock file used by xl to serialise certain
86operations (primarily domain creation).
87
88Default: C</var/lock/xl>
89
90=item B<max_grant_frames=NUMBER>
91
92Sets the default value for the C<max_grant_frames> domain config value.
93
94Default: value of Xen command line B<gnttab_max_frames> parameter (or its
95default value if unspecified).
96
97=item B<max_maptrack_frames=NUMBER>
98
99Sets the default value for the C<max_maptrack_frames> domain config value.
100
101Default: value of Xen command line B<gnttab_max_maptrack_frames>
102parameter (or its default value if unspecified).
103
104=item B<max_grant_version=NUMBER>
105
106Sets the default value for the C<max_grant_version> domain config value.
107
108Default: maximum grant version supported by the hypervisor.
109
110=item B<vif.default.script="PATH">
111
112Configures the default hotplug script used by virtual network devices.
113
114The old B<vifscript> option is deprecated and should not be used.
115
116Default: C<@XEN_SCRIPT_DIR@/vif-bridge>
117
118=item B<vif.default.bridge="NAME">
119
120Configures the default bridge to set for virtual network devices.
121
122The old B<defaultbridge> option is deprecated and should not be used.
123
124Default: C<xenbr0>
125
126=item B<vif.default.backend="NAME">
127
128Configures the default backend to set for virtual network devices.
129
130Default: C<0>
131
132=item B<vif.default.gatewaydev="NAME">
133
134Configures the default gateway device to set for virtual network devices.
135
136Default: C<None>
137
138=item B<remus.default.netbufscript="PATH">
139
140Configures the default script used by Remus to setup network buffering.
141
142Default: C<@XEN_SCRIPT_DIR@/remus-netbuf-setup>
143
144=item B<colo.default.proxyscript="PATH">
145
146Configures the default script used by COLO to setup colo-proxy.
147
148Default: C<@XEN_SCRIPT_DIR@/colo-proxy-setup>
149
150=item B<output_format="json|sxp">
151
152Configures the default output format used by xl when printing "machine
153readable" information. The default is to use the C<JSON>
154L<https://www.json.org/> syntax. However for compatibility with the
155previous C<xm> toolstack this can be configured to use the old C<SXP>
156(S-Expression-like) syntax instead.
157
158Default: C<json>
159
160=item B<blkdev_start="NAME">
161
162Configures the name of the first block device to be used for temporary
163block device allocations by the toolstack.
164The default choice is "xvda".
165
166=item B<claim_mode=BOOLEAN>
167
168If this option is enabled then when a guest is created there will be an
169guarantee that there is memory available for the guest.
170The self-balloon mechanism can deflate/inflate the balloon
171quickly and the amount of free memory (which C<xl info> can show) is
172stale the moment it is printed. When claim is enabled a reservation for
173the amount of memory (see 'memory' in xl.conf(5)) is set, which is then
174reduced as the domain's memory is populated and eventually reaches zero.
175The free memory in C<xl info> is the combination of the hypervisor's
176free heap memory minus the outstanding claims value.
177
178If the reservation cannot be meet the guest creation fails immediately
179instead of taking seconds/minutes (depending on the size of the guest)
180while the guest is populated.
181
182Default: C<1>
183
184=over 4
185
186=item C<0>
187
188No claim is made. Memory population during guest creation will be
189attempted as normal and may fail due to memory exhaustion.
190
191=item C<1>
192
193Free memory as reported by the hypervisor is used for
194calculating whether there is enough memory free to launch a guest.
195This guarantees immediate feedback whether the guest can be launched due
196to memory exhaustion (which can take a long time to find out if launching
197massively huge guests).
198
199=back
200
201=item B<vm.cpumask>="CPULIST"
202
203=item B<vm.hvm.cpumask>="CPULIST"
204
205=item B<vm.pv.cpumask>="CPULIST"
206
207Global masks that are applied when creating guests and pinning vcpus
208to indicate which cpus they are allowed to run on.  Specifically,
209C<vm.cpumask> applies to all guest types, C<vm.hvm.cpumask> applies to
210both HVM and PVH guests and C<vm.pv.cpumask> applies to PV guests.
211
212The hard affinity of guest's vcpus are logical-AND'ed with respective
213masks. If the resulting affinity mask is empty, operation will fail.
214
215Use --ignore-global-affinity-masks to skip applying global masks.
216
217The default value for these masks are all 1's, i.e. all cpus are allowed.
218
219Due to bug(s), these options may not interact well with other options
220concerning CPU affinity. One example is CPU pools. Users should always double
221check that the required affinity has taken effect.
222
223=item B<bootloader_restrict=BOOLEAN>
224
225System wide default for whether the bootloader should be run in a restricted
226environment.  See L<xl.cfg(5)> B<bootloader_restrict> for more information on
227how to setup and use the option.
228
229=back
230
231=head1 SEE ALSO
232
233=over 4
234
235=item L<xl(1)>
236
237=item L<xl.cfg(5)>
238
239=item https://www.json.org/
240
241=back
242