libvirt: Instance NUMA fitting code fails to account for vpu_pin_set config option properly

Bug #1372845 reported by Nikola Đipanov
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
High
Nikola Đipanov

Bug Description

Looking at this branch of the NUMA fitting code

https://github.com/openstack/nova/blob/51de439a4d1fe5e17d59d3aac3fd2c49556e641b/nova/virt/libvirt/driver.py#L3738

We do not account for allowed cpus when choosing viable cells for the given instance. meaning we could chose a NUMA cell that has no viable CPUs which we will try to pin to.

We need to consider allowed_cpus when calculating viable NUMA cells for the instance.

Tags: libvirt
Boden R (boden)
Changed in nova:
assignee: nobody → Boden R (boden)
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (master)

Fix proposed to branch: master
Review: https://review.openstack.org/123725

Changed in nova:
assignee: Boden R (boden) → Nikola Đipanov (ndipanov)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Fix proposed to branch: master
Review: https://review.openstack.org/123790

Changed in nova:
assignee: Nikola Đipanov (ndipanov) → Boden R (boden)
Changed in nova:
assignee: Boden R (boden) → Nikola Đipanov (ndipanov)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on nova (master)

Change abandoned by boden (<email address hidden>) on branch: master
Review: https://review.openstack.org/123790
Reason: addressed via https://review.openstack.org/#/c/123725/

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

Reviewed: https://review.openstack.org/123725
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=b5df50076239adb9a5a1ef8559d32e46ad9414ae
Submitter: Jenkins
Branch: master

commit b5df50076239adb9a5a1ef8559d32e46ad9414ae
Author: Nikola Dipanov <email address hidden>
Date: Wed Sep 24 14:59:53 2014 +0200

    libvirt: consider vcpu_pin_set when choosing NUMA cells

    When we get a single NUMA cell instance scheduled to a NUMA capable
    host, we do not account for cpu_pin_set when choosing viable cells for
    the given instance. meaning we could choose a NUMA cell that has no
    viable CPUs which we will try to pin to.

    This patch changes that behaviour and also adds a test to prevent a
    regression. We also fix up how some of the tests mock the random.choice
    method, because now we give it a list of sets (of cpus), but also
    because it is now easier to catch a regression since we actually use the
    passed value.

    Change-Id: I0d740170db52a4777924648683ac98de9cf4b3cf
    Closes-bug: 1372845

Changed in nova:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in nova:
milestone: none → juno-rc1
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in nova:
milestone: juno-rc1 → 2014.2
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.