387823b36d
Nova has never supported specifying per numa node cpu toplogies. Logically the cpu toplogy of a guest is independent of its numa toplogy and there is no way to model different cpu toplogies per numa node or implement that in hardware. The presence of the code in nova that allowed the generation of these invalid configuration has now been removed as it broke the automatic selection of cpu topologies based on hw:max_[cpus|sockets|threads] flavor and image properties. This change removed the incorrect code and related unit tests with assert nova could generate invalid topologies. Closes-Bug: #1910466 Change-Id: Ia81a0fdbd950b51dbcc70c65ba492549a224ce2b
24 lines
1.2 KiB
YAML
24 lines
1.2 KiB
YAML
---
|
|
fixes:
|
|
- |
|
|
The nova libvirt driver supports two independent features, virtual CPU
|
|
topologies and virtual NUMA topologies. Previously, when
|
|
``hw:cpu_max_sockets``, ``hw:cpu_max_cores`` and ``hw:cpu_max_threads``
|
|
were specified for pinned instances (``hw:cpu_policy=dedicated``)
|
|
without explicit ``hw:cpu_sockets``, ``hw:cpu_cores``, ``hw:cpu_threads``
|
|
extra specs or their image equivalent, nova failed to generate a valid
|
|
virtual CPU topology. This has now been fixed and it is now possible to
|
|
use max CPU constraints with pinned instances.
|
|
e.g. a combination of ``hw:numa_nodes=2``, ``hw:cpu_max_sockets=2``,
|
|
``hw:cpu_max_cores=2``, ``hw:cpu_max_threads=8`` and
|
|
``hw:cpu_policy=dedicated`` can now generate a valid topology using
|
|
a flavor with 8 vCPUs.
|
|
upgrade:
|
|
- |
|
|
As part of the fix for bug 1910466, code that attempted to optimize VM CPU
|
|
thread assignment based on the host CPU topology as it was determined
|
|
to be buggy, undocumented and rejected valid virtual CPU topologies while
|
|
also producing different behavior when CPU pinning was enabled vs disabled.
|
|
The optimization may be reintroduced in the future with a more generic
|
|
implementation that works for both pinned and unpinned VMs.
|