yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #28551
[Bug 1422775] [NEW] nova libvirt driver assumes qemu support for NUMA pinning
Public bug reported:
In the trunk (kilo) nova libvirt code there are a numberr of places
where we assume that qemu can provide NUMA-related functionality that
was only introduced in a very recent version (2.1). If we try to use
this code with older qemu it triggers an exception and fails to boot the
instance.
In some cases, we can get partial NUMA support by removing some of the
more advanced functionality (per-numa-node pinning, per-numa-node
hugepages). This would arguably be the best solution.
At the very least, we should introduce a QEMU version check and fail
cleanly with a proper error code rather than with cryptic errors that
are complicated to resolve.
Known affected areas:
virt.libvirt.config.LibvirtConfigGuestMemoryBacking.format_dom()
--the "page" subelement of the "hugepages" element is not supported by earlier qemu versions
virt.libvirt.config.LibvirtConfigGuestNUMATune.format_dom()
--the "memnode" subelement of the "numatune" element is not supported by earlier qemu versions
Commenting out the code that configures these elements allows NUMA to
work (with somewhat reduced functionality) on an older qemu version, or
a newer one without NUMA support (like Ubuntu 14.10 at the time of
writing this).
I think we should add a qemu version test against 2.1 and use that to
determine whether or not to support the more advanced NUMA capabilities.
If Ubuntu doesn't fix their qemu in 14.10 then we might even want to add
some kind of runtime capabilities test to check whether qemu was built
with numa support.
** Affects: nova
Importance: Undecided
Status: New
** Tags: compute
** Description changed:
In the trunk (kilo) nova libvirt code there are a numberr of places
where we assume that qemu can provide NUMA-related functionality that
was only introduced in a very recent version (2.1). If we try to use
this code with older qemu it triggers an exception and fails to boot the
instance.
In some cases, we can get partial NUMA support by removing some of the
more advanced functionality (per-numa-node pinning, per-numa-node
hugepages). This would arguably be the best solution.
At the very least, we should introduce a QEMU version check and fail
cleanly with a proper error code rather than with cryptic errors that
are complicated to resolve.
Known affected areas:
virt.libvirt.config.LibvirtConfigGuestMemoryBacking.format_dom()
--the "page" subelement of the "hugepages" element is not supported by earlier qemu versions
virt.libvirt.config.LibvirtConfigGuestNUMATune.format_dom()
--the "memnode" subelement of the "numatune" element is not supported by earlier qemu versions
Commenting out the code that configures these elements allows NUMA to
work (with somewhat reduced functionality) on an older qemu version, or
a newer one without NUMA support (like Ubuntu 14.10 at the time of
writing this).
+
+ I think we should add a qemu version test against 2.1 and use that to
+ determine whether or not to support the more advanced NUMA capabilities.
+ If Ubuntu doesn't fix their qemu in 14.10 then we might even want to add
+ some kind of runtime capabilities test to check whether qemu was built
+ with numa support.
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1422775
Title:
nova libvirt driver assumes qemu support for NUMA pinning
Status in OpenStack Compute (Nova):
New
Bug description:
In the trunk (kilo) nova libvirt code there are a numberr of places
where we assume that qemu can provide NUMA-related functionality that
was only introduced in a very recent version (2.1). If we try to use
this code with older qemu it triggers an exception and fails to boot
the instance.
In some cases, we can get partial NUMA support by removing some of the
more advanced functionality (per-numa-node pinning, per-numa-node
hugepages). This would arguably be the best solution.
At the very least, we should introduce a QEMU version check and fail
cleanly with a proper error code rather than with cryptic errors that
are complicated to resolve.
Known affected areas:
virt.libvirt.config.LibvirtConfigGuestMemoryBacking.format_dom()
--the "page" subelement of the "hugepages" element is not supported by earlier qemu versions
virt.libvirt.config.LibvirtConfigGuestNUMATune.format_dom()
--the "memnode" subelement of the "numatune" element is not supported by earlier qemu versions
Commenting out the code that configures these elements allows NUMA to
work (with somewhat reduced functionality) on an older qemu version,
or a newer one without NUMA support (like Ubuntu 14.10 at the time of
writing this).
I think we should add a qemu version test against 2.1 and use that to
determine whether or not to support the more advanced NUMA
capabilities. If Ubuntu doesn't fix their qemu in 14.10 then we might
even want to add some kind of runtime capabilities test to check
whether qemu was built with numa support.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1422775/+subscriptions
Follow ups
References