← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1637454] [NEW] 'require' CPU thread allocation policy does not always guarantee that other VMs wouldn't use current CPU core

 

Public bug reported:

Environment:
NUMA node with 2 CPU cores and HyperThreading. It means that we have 4 vCPU: (0, 1) (2, 3) where '()' means siblings. In this case we can boot only 2 VMs with 'require' CPU thread allocation policy because this policy is guarantee that other VMs wouldn't use these cores. If we will try to boot third VM with 'require' policy it will fail  with 'No valid host found'.

But we still able to boot VMs with 'dedicated' CPU allocation policy on
these cores.

Steps to reproduce:

1. Create Flavor with 'require' policy

nova flavor-create numa_required 998 128 0 1
nova flavor-key numa_required set hw:cpu_policy=dedicated
nova flavor-key numa_required set hw:cpu_thread_policy=require

2. Create Flavor just with 'dedicated' policy. hw:cpu_thread_policy is
this case will be 'prefered' because this is default value.

nova flavor-create numa_dedicated 999 128 0 1
nova flavor-key numa_dedicated set hw:cpu_policy=dedicated

3. Boot two VMs with 'require' policy

nova boot nova boot --flavor numa_required --image cirros --nic net-id=*** vm1
nova boot nova boot --flavor numa_required --image cirros --nic net-id=*** vm2

4. Boot VM with 'decicated' policy

nova boot nova boot --flavor numa_dedicated --image cirros --nic net-
id=*** vm3

Expected result:

  Fail with 'No valid host found'.

Actual result:

  VM will be successfully booted.

** Affects: nova
     Importance: Medium
     Assignee: Sergey Nikitin (snikitin)
         Status: New


** Tags: numa

-- 
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/1637454

Title:
  'require' CPU thread allocation policy does not always guarantee that
  other VMs wouldn't use current CPU core

Status in OpenStack Compute (nova):
  New

Bug description:
  Environment:
  NUMA node with 2 CPU cores and HyperThreading. It means that we have 4 vCPU: (0, 1) (2, 3) where '()' means siblings. In this case we can boot only 2 VMs with 'require' CPU thread allocation policy because this policy is guarantee that other VMs wouldn't use these cores. If we will try to boot third VM with 'require' policy it will fail  with 'No valid host found'.

  But we still able to boot VMs with 'dedicated' CPU allocation policy
  on these cores.

  Steps to reproduce:

  1. Create Flavor with 'require' policy

  nova flavor-create numa_required 998 128 0 1
  nova flavor-key numa_required set hw:cpu_policy=dedicated
  nova flavor-key numa_required set hw:cpu_thread_policy=require

  2. Create Flavor just with 'dedicated' policy. hw:cpu_thread_policy is
  this case will be 'prefered' because this is default value.

  nova flavor-create numa_dedicated 999 128 0 1
  nova flavor-key numa_dedicated set hw:cpu_policy=dedicated

  3. Boot two VMs with 'require' policy

  nova boot nova boot --flavor numa_required --image cirros --nic net-id=*** vm1
  nova boot nova boot --flavor numa_required --image cirros --nic net-id=*** vm2

  4. Boot VM with 'decicated' policy

  nova boot nova boot --flavor numa_dedicated --image cirros --nic net-
  id=*** vm3

  Expected result:

    Fail with 'No valid host found'.

  Actual result:

    VM will be successfully booted.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1637454/+subscriptions


Follow ups