'hw:cpu_thread_policy=isolate' does not schedule on non-HT hosts
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Medium
|
Stephen Finucane | ||
Mitaka |
Fix Released
|
Undecided
|
Stephen Finucane |
Bug Description
The 'isolate' policy is supposed to function on both hosts with HyperThreading (HT) and those without. The former works, but the latter does not. This appears to be a regression. Results below.
---
# Platform
Testing was conducted on two single-node, Fedora 23-based
(4.3.5-
are a dual-socket, ten core, systems with HT enabled on one and disabled
on the other (2 sockets * 10 cores * 1/2 threads
= 20/40 "pCPUs". 0-9/0-9,20-29 = node0, 10-19/10-19,30-39 = node1).
Commit `8bafc9` of Nova was used.
# Steps
## Create flavors
$ openstack flavor create pinned.isolate \
--id 103 --ram 2048 --disk 0 --vcpus 4
$ openstack flavor set pinned.isolate \
--property "hw:cpu_
--property "hw:cpu_
## Validate a HT-enabled node
This should match the expectations of the spec and provide a single thread
to guests while avoiding other guests scheduling on the other host
sibling threads. Therefore, the guest should see four sockets, one core
per socket, and one thread per core.
$ openstack server create --flavor=
$ sudo virsh list
Id Name State
---
3 instance-00000003 running
$ sudo virsh dumpxml 3
<domain type='kvm' id='3'>
<
...
<vcpu placement=
<cputune>
<vcpupin vcpu='0' cpuset='1'/>
<vcpupin vcpu='1' cpuset='0'/>
<vcpupin vcpu='2' cpuset='25'/>
<vcpupin vcpu='3' cpuset='8'/>
</cputune>
<numatune>
<memory mode='strict' nodeset='0'/>
<memnode cellid='0' mode='strict' nodeset='0'/>
</numatune>
...
<cpu>
<topology sockets='4' cores='1' threads='1'/>
<numa>
<cell id='0' cpus='0-3' memory='2097152' unit='KiB'/>
</numa>
</cpu>
...
</domain>
$ openstack server delete test1
No problems here.
## Validate a HT-disabled node
This should work exactly the same here as it did on the HT-enabled host,
minus the reservation of any thread sibling (there aren't any)
$ openstack server create --flavor=
Error creating server: test1
Error creating server
$ openstack server list
+--
| ID | Name | Status | Networks |
+--
| 1f212d45-
+--
tags: | added: mitaka-backport-potential |
Changed in nova: | |
assignee: | Stephen Finucane (sfinucan) → Waldemar Znoinski (wznoinsk) |
Changed in nova: | |
assignee: | Waldemar Znoinski (wznoinsk) → Stephen Finucane (sfinucan) |
Changed in nova: | |
importance: | Undecided → Medium |
Fix proposed to branch: master /review. openstack. org/285321
Review: https:/