yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #31641
[Bug 1442546] [NEW] Nova compute should work for non-continous pCPUs with vcpu pinning enabled.
Public bug reported:
Environment: Openstack Juno. (Same code in the master as well).
Physical machine doesn't have continuous blocks of cpu in online state.
Online pCPUs are: 4,8 and 12.
vcpu pinning is enabled via the vcpu_pin_set attribute in /etc/nova/nova.conf
vcpu_pin_set="4,8,12"
The nova code in /nova/virt/libvirt/driver.py inside get_vcpu_total() is checking the length of available_ids from the nova.conf as:
if available_ids[-1] >= total_pcpus:
raise exception.Invalid(_("Invalid vcpu_pin_set config, "
"out of hypervisor cpu range."))
available_ids in this case contains [4,8,12].
The total pcpus count given by libvirt is 3 (number of on-line pcpus).
Hence the above check fails since it determines the total available CPUs as 12.
The available_ids[-1] can be replaced by len(available_ids) for this to work.
Nova should not expect the online CPUs to be continuous numbers always.
Filing a bug to address this.
** Affects: nova
Importance: Undecided
Assignee: Sudipta Biswas (sbiswas7)
Status: New
** Changed in: nova
Assignee: (unassigned) => Sudipta Biswas (sbiswas7)
--
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/1442546
Title:
Nova compute should work for non-continous pCPUs with vcpu pinning
enabled.
Status in OpenStack Compute (Nova):
New
Bug description:
Environment: Openstack Juno. (Same code in the master as well).
Physical machine doesn't have continuous blocks of cpu in online state.
Online pCPUs are: 4,8 and 12.
vcpu pinning is enabled via the vcpu_pin_set attribute in /etc/nova/nova.conf
vcpu_pin_set="4,8,12"
The nova code in /nova/virt/libvirt/driver.py inside get_vcpu_total() is checking the length of available_ids from the nova.conf as:
if available_ids[-1] >= total_pcpus:
raise exception.Invalid(_("Invalid vcpu_pin_set config, "
"out of hypervisor cpu range."))
available_ids in this case contains [4,8,12].
The total pcpus count given by libvirt is 3 (number of on-line pcpus).
Hence the above check fails since it determines the total available CPUs as 12.
The available_ids[-1] can be replaced by len(available_ids) for this to work.
Nova should not expect the online CPUs to be continuous numbers always.
Filing a bug to address this.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1442546/+subscriptions
Follow ups
References