Mark sibling CPUs as 'used' for cpu_thread_policy = 'isolated'
'isolated' CPU allocation thread policy is guarantee
that no vCPUs from other guests wouldn't be able to be
placed on the cores of booted VM (In this case core is
a set of sibling vCPUs).
But we still able to boot VMs with 'dedicated' CPU
allocation policy on these cores. This problem is actual
for hosts without HyperThreading. In this case sets of
siblings vCPUs are empty for each core but we are still
trying to work with them as with HyperThreading cores.
This causes the problem when one "isolated" core
is used by several VMs.
To fix it we must use method unpin_cpus_with_siblings()
only if NUMA cell has siblings (i.e. has HyperThreading).
For cells without HyperThreading CPU isolation is
guaranteed by 'dedicated' CPU allocation policy.
Reviewed: https:/ /review. openstack. org/391416 /git.openstack. org/cgit/ openstack/ nova/commit/ ?id=9f12b592d1d 26a985699fefde2 a7ce0164d0b5d3
Committed: https:/
Submitter: Jenkins
Branch: master
commit 9f12b592d1d26a9 85699fefde2a7ce 0164d0b5d3
Author: Sergey Nikitin <email address hidden>
Date: Fri Dec 9 17:42:14 2016 +0400
Mark sibling CPUs as 'used' for cpu_thread_policy = 'isolated'
'isolated' CPU allocation thread policy is guarantee
that no vCPUs from other guests wouldn't be able to be
placed on the cores of booted VM (In this case core is
a set of sibling vCPUs).
But we still able to boot VMs with 'dedicated' CPU
allocation policy on these cores. This problem is actual
for hosts without HyperThreading. In this case sets of
siblings vCPUs are empty for each core but we are still
trying to work with them as with HyperThreading cores.
This causes the problem when one "isolated" core
is used by several VMs.
To fix it we must use method unpin_cpus_ with_siblings( )
only if NUMA cell has siblings (i.e. has HyperThreading).
For cells without HyperThreading CPU isolation is
guaranteed by 'dedicated' CPU allocation policy.
Closes-Bug: #1635674
Change-Id: I8f72187153c930 cd941b7ee7e835a 20ed0c0de03