NAME
    /etc/xen/xl.conf - XL Global/Host Configuration

DESCRIPTION
    The xl.conf file allows configuration of hostwide "xl" toolstack
    options.

    For details of per-domain configuration options please see xl.cfg(5).

SYNTAX
    The config file consists of 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 a 0 prefix) or hexadecimal
        (using an "0x" prefix).

    BOOLEAN
        A "NUMBER" interpreted as "False" (0) or "True" (any other value).

    [ VALUE, VALUE, ... ]
        A list of "VALUES" of the above types. Lists are homogeneous and are
        not nested.

    The semantics of each "KEY" defines which form of "VALUE" is required.

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" then "xl" will 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 from udev, as it used to
        be in the previous releases. With the default option, hotplug
        scripts will be launched by xl directly.

        Default: 1

    lockfile="PATH"
        Sets the path to the lock file used by xl to serialise certain
        operations (primarily domain creation).

        Default: "/var/lock/xl"

    max_grant_frames=NUMBER
        Sets the default value for the "max_grant_frames" domain 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 the "max_maptrack_frames" domain config
        value.

        Default: value of Xen command line gnttab_max_maptrack_frames
        parameter (or its default value if unspecified).

    vif.default.script="PATH"
        Configures the default hotplug script used by virtual network
        devices.

        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.

        The old defaultbridge option is deprecated and should not be used.

        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 by xl when printing
        "machine readable" information. The default is to use the "JSON"
        <https://www.json.org/> syntax. However for compatibility with the
        previous "xm" toolstack this can be configured to use the old "SXP"
        (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 (which "xl info" can show) is stale the
        moment it is printed. When claim is enabled a reservation for the
        amount of memory (see 'memory' in xl.conf(5)) is set, which is then
        reduced as the domain's memory is populated and eventually reaches
        zero. The free memory in "xl info" is 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"
    vm.hvm.cpumask="CPULIST"
    vm.pv.cpumask="CPULIST"
        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.

SEE ALSO
    xl(1)
    xl.cfg(5)
    https://www.json.org/

