[Bug 1978489] Re: libvirt / cgroups v2: cannot boot instance with more than 16 CPUs

Jorge Merlino 1978489 at bugs.launchpad.net
Mon Feb 19 21:50:11 UTC 2024


Hi Andreas and Robie,

Regarding the answer about the state of Noble, this patch is currently
merged in Noble and Mantic. It is also present in uca-zed and newer
versions.

I think the verification done on step #12 is not very clear. The point
is that the bug that is shown there should be fixed by this patch. That
was confirmed in comment #16 by the author of #12 but not before.

I think comment #10 has a valid point regarding backwards compatibility
as this changes the behavior of migrated VMs by default. Now (by
default) all VMs have the same weight when migrated whereas before the
VMs had more weight the more VCPUs they possessed. This behavior can be
recovered by setting the quota:cpu_shares flavor extra spec. This seems
to be acceptable by upstream as this has been merged to master and also
backported to stable/yoga
(https://review.opendev.org/c/openstack/nova/+/898554)

Please let me know if you have more questions in order to release this
package.

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to nova in Ubuntu.
https://bugs.launchpad.net/bugs/1978489

Title:
  libvirt / cgroups v2: cannot boot instance with more than 16 CPUs

Status in OpenStack Compute (nova):
  In Progress
Status in nova package in Ubuntu:
  Confirmed
Status in nova source package in Jammy:
  Fix Committed

Bug description:
  Description
  ===========

  Using the libvirt driver and a host OS that uses cgroups v2 (RHEL 9,
  Ubuntu Jammy), an instance with more than 16 CPUs cannot be booted.

  Steps to reproduce
  ==================

  1. Boot an instance with 10 (or more) CPUs on RHEL 9 or Ubuntu Jammy
  using Nova with the libvirt driver.

  Expected result
  ===============

  Instance boots.

  Actual result
  =============

  Instance fails to boot with a 'Value specified in CPUWeight is out of
  range' error.

  Environment
  ===========

  Originially report as a libvirt but in RHEL 9 [1]

  Additional information
  ======================

  This is happening because Nova defaults to 1024 * (# of CPUs) for the
  value of domain/cputune/shares in the libvirt XML. This is then passed
  directly by libvirt to the cgroups API, but cgroups v2 has a maximum
  value of 10000. 10000 / 1024 ~= 9.76

  [1] https://bugzilla.redhat.com/show_bug.cgi?id=2035518

  
  ====================================

  Ubuntu SRU Details:

  [Impact]
  See above.

  [Test Case]
  See above.

  [Regression Potential]
  We've had this change in other jammy-based versions of the nova package for a while now, including zed, antelope, bobcat.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1978489/+subscriptions




More information about the Ubuntu-openstack-bugs mailing list