Public bug reported: I recently ran into an issue where I was trying to boot an instance with 8 vCPUs, with hw:cpu_policy=dedicated. The host had 8 pCPUs available, but they were a mix of siblings and non-siblings.
In virt.hardware._pack_instance_onto_cores(), the _get_pinning() function seems to be the culprit. It was called with the following inputs: (Pdb) threads_no 1 (Pdb) sibling_set [CoercedSet([63]), CoercedSet([49]), CoercedSet([48]), CoercedSet([50]), CoercedSet([59, 15]), CoercedSet([18, 62])] (Pdb) instance_cell.cpuset CoercedSet([0, 1, 2, 3, 4, 5, 6, 7]) As we can see, we are looking for 8 vCPUs, and there are 8 pCPUs available. However, when we call _get_pinning() it doesn't give us a mapping: > /usr/lib/python2.7/site-packages/nova/virt/hardware.py(899)_pack_instance_onto_cores() -> pinning = _get_pinning(threads_no, sibling_set, (Pdb) n > /usr/lib/python2.7/site-packages/nova/virt/hardware.py(900)_pack_instance_onto_cores() -> instance_cell.cpuset) (Pdb) n > /usr/lib/python2.7/site-packages/nova/virt/hardware.py(901)_pack_instance_onto_cores() -> if pinning: (Pdb) pinning This is a bug, if we haven't specified anything regarding hyperthreading then we should be able to run with a mix of siblings and non-siblings. ** Affects: nova Importance: Undecided Status: New ** Tags: compute numa scheduler -- 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/1602814 Title: hyperthreading bug in NUMATopologyFilter Status in OpenStack Compute (nova): New Bug description: I recently ran into an issue where I was trying to boot an instance with 8 vCPUs, with hw:cpu_policy=dedicated. The host had 8 pCPUs available, but they were a mix of siblings and non-siblings. In virt.hardware._pack_instance_onto_cores(), the _get_pinning() function seems to be the culprit. It was called with the following inputs: (Pdb) threads_no 1 (Pdb) sibling_set [CoercedSet([63]), CoercedSet([49]), CoercedSet([48]), CoercedSet([50]), CoercedSet([59, 15]), CoercedSet([18, 62])] (Pdb) instance_cell.cpuset CoercedSet([0, 1, 2, 3, 4, 5, 6, 7]) As we can see, we are looking for 8 vCPUs, and there are 8 pCPUs available. However, when we call _get_pinning() it doesn't give us a mapping: > /usr/lib/python2.7/site-packages/nova/virt/hardware.py(899)_pack_instance_onto_cores() -> pinning = _get_pinning(threads_no, sibling_set, (Pdb) n > /usr/lib/python2.7/site-packages/nova/virt/hardware.py(900)_pack_instance_onto_cores() -> instance_cell.cpuset) (Pdb) n > /usr/lib/python2.7/site-packages/nova/virt/hardware.py(901)_pack_instance_onto_cores() -> if pinning: (Pdb) pinning This is a bug, if we haven't specified anything regarding hyperthreading then we should be able to run with a mix of siblings and non-siblings. To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1602814/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp