Comment 3 for bug 1397381

Revision history for this message
Nikola Đipanov (ndipanov) wrote :

Actually the proposed fix will break for NUMA topologies where host cell ID that the instance cell is pinned to is not in increasing order. The reason for this is the following loop

https://github.com/openstack/nova/blob/4715dd9b402137ba16c8afa0519aca2eccb9c2cf/nova/virt/libvirt/driver.py#L3509

As it will go through the host cells (always in ascending order, and find instance cells that match (may not be in ascending order depending on how the fitting logic and usage of the host) but we simply append memnodes so they may end up in the wrong order when we hit the normalization loop:

https://github.com/openstack/nova/blob/4715dd9b402137ba16c8afa0519aca2eccb9c2cf/nova/virt/libvirt/driver.py#L3553

Thus assigning CPUs to the correct host numa node, but force all memory to the wrong one. Ouch!