Comment 6 for bug 1978489

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (stable/yoga)

Reviewed: https://review.opendev.org/c/openstack/nova/+/898554
Committed: https://opendev.org/openstack/nova/commit/0a6b57a9a24a0936383aaf444c690772aacc3245
Submitter: "Zuul (22348)"
Branch: stable/yoga

commit 0a6b57a9a24a0936383aaf444c690772aacc3245
Author: Artom Lifshitz <email address hidden>
Date: Mon Jan 10 13:36:36 2022 -0500

    libvirt: remove default cputune shares value

    Previously, the libvirt driver defaulted to 1024 * (# of CPUs) for the
    value of domain/cputune/shares in the libvirt XML. This value is then
    passed directly by libvirt to the cgroups API. Cgroups v2 imposes a
    maximum value of 10000 that can be passed in. This makes Nova
    unable to launch instances with more than 9 CPUs on hosts that run
    cgroups v2, like Ubuntu Jammy or RHEL 9.

    Fix this by just removing the default entirely. Because there is no
    longer a guarantee that domain/cputune will contain at least a shares
    element, we can stop always generating the former, and only generate
    it if it will actually contain something.

    We can also make operators's lives easier by leveraging the fact that
    we update the XML during live migration, so this patch also adds a
    method to remove the shares value from the live migration XML if one
    was not set as the quota:cpu_shares flavor extra spec.

    For operators that *have* set this extra spec to something greater
    than 10000, their flavors will have to get updates, and their
    instances resized.

    Partial-bug: 1978489
    Change-Id: I49d757f5f261b3562ada27e6cf57284f615ca395
    (cherry picked from commit f77a9fee5b736899ecc39d33e4f4e4012cee751c)