Comment 0 for bug 1657791

Revision history for this message
Ritesh Paiboina (rsritesh) wrote :

Description
===========

CPU pinning fails when the sibling set consists of single VCPUS and a sibling set.
For example,

CoercedSet([45]), CoercedSet([31]), CoercedSet([1, 25])

Considering a case,
When a compute with NUMA NODE 1 which has 4 VCPU and 16GB RAM available to use.

And when you to try to launch a instance with a flavor of 4 VCPU and 16GB RAM, it is failed to launch i.e "message": "No valid host was found. There are not enough hosts available."

Total Available VCPUS
1,3,5,7,9,11,13,15,17,19,21,25,27,29,31,33,35,37,39,41,43,45
Used VCPUS
3,5,7,9,11,13,15,17,19,21,27,29,33,35,37,39,41,43
Free VCPUS
1,25,31,45

VCPUS STATISTICS
Total : 22
Usage : 18
Free : 4

siblings=set([21,45]),set([7,31]),set([15,39]),set([11,35]),set([17,41]),set([3,27]),set([13,37]),set([9,33]),set([19,43]),set([5,29]),set([1,25])])

1, 25 , 31 and 45 VCPUS are available to use but nova could not able to use them.

As 31 and 45 are not siblings , Nova is not considering them to boot the VM.
Because of Numa Topology Filter returns with 0 hosts available.

Steps to reproduce
==================

We have 22 VCPUS available for Pinning in NUMA NODE 1.

1. Launch an instance with 1 VCPU
2. Launch an instance with 1 VCPU
3. Launch an instance with 8 VCPU
4. Launch an instance with 8 VCPU
5. Launch an instance with 8 VCPU

Expected result
===============

Instance should be in active state

Actual result
=============

Instance is in Error state.
| fault | {"message": "No valid host was found. There are not enough hosts available.", "code": 500, "details": " File \"/usr/lib/python2.7/dist-packages/nova/conductor/manager.py\", line 397, in build_instances |

Environment
===========
1. Exact version of OpenStack you are running.

   Mitaka Stable

2. Which hypervisor did you use?
   Libvirt + KVM

2. Which storage type did you use?
   None

3. Which networking type did you use?
   Neutron with OpenVSwitch