← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1405743] [NEW] Cannot ensure "cell id" of guest numa in "cpu/numa" element starting from 0

 

Public bug reported:

Currently, the guest numa topology of instance can fit the chosen host's
numa topology, the cell id in instance's numa topology may don't start
from 0. For example, the xml is like this:

  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='1' threads='2'/>
    <numa>
      <cell id='1' cpus='0-1' memory='1048576'/>
	  <cell id='1' cpus='0-1' memory='1048576'/>
    </numa>
  </cpu>
  
 But currently there isn't this issue in OpenStack, because the "id" in "numa" elemet is support only Since libvirt 1.2.7, see: https://libvirt.org/formatdomain.html#elementsCPU.
 
 if we use libvirt 1.2.7, the following error will be raised with above XML options:
 
 2014-12-26T00:24:44+00:00 localhost nova-compute ERROR [pid:55672] [GreenThread-5] [manager.py:2247 _build_resources] Instance faile
d to spawn Traceback (most recent call last):   File "/usr/lib64/python2.6/site-packages/nova/compute/manager.py", line 2241, in _bu
ild_resources     yield resources   File "/usr/lib64/python2.6/site-packages/nova/compute/manager.py", line 2111, in _build_and_run_
instance     block_device_info=block_device_info)   File "/usr/lib64/python2.6/site-packages/nova/virt/libvirt/driver.py", line 2627
, in spawn     block_device_info, disk_info=disk_info)   File "/usr/lib64/python2.6/site-packages/nova/virt/libvirt/driver.py", line
 4425, in _create_domain_and_network     power_on=power_on)   File "/usr/lib64/python2.6/site-packages/nova/virt/libvirt/driver.py",
 line 4349, in _create_domain     LOG.error(err)   File "/usr/lib64/python2.6/site-packages/nova/openstack/common/excutils.py", line
 82, in __exit__     six.reraise(self.type_, self.value, self.tb)   File "/usr/lib64/python2.6/site-packages/nova/virt/libvirt/drive
r.py", line 4335, in _create_domain     domain = self._conn.defineXML(xml)   File "/usr/lib64/python2.6/site-packages/eventlet/tpool
.py", line 183, in doit     result = proxy_call(self._autowrap, f, *args, **kwargs)   File "/usr/lib64/python2.6/site-packages/event
let/tpool.py", line 141, in proxy_call     rv = execute(f, *args, **kwargs)   File "/usr/lib64/python2.6/site-packages/eventlet/tpoo
l.py", line 122, in execute     six.reraise(c, e, tb)   File "/usr/lib64/python2.6/site-packages/eventlet/tpool.py", line 80, in two
rker     rv = meth(*args, **kwargs)   File "/usr/lib64/python2.6/site-packages/libvirt.py", line 3405, in defineXML     if ret is No
ne:raise libvirtError('virDomainDefineXML() failed', conn=self) libvirtError: XML error: Exactly one 'cell' element per guest NUMA c
ell allowed, non-contiguous ranges or ranges not starting from 0 are not allowed

** Affects: nova
     Importance: Undecided
     Assignee: Liusheng (liusheng)
         Status: New

** Changed in: nova
     Assignee: (unassigned) => Liusheng (liusheng)

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

Title:
  Cannot ensure "cell id" of guest numa in "cpu/numa" element starting
  from 0

Status in OpenStack Compute (Nova):
  New

Bug description:
  Currently, the guest numa topology of instance can fit the chosen
  host's numa topology, the cell id in instance's numa topology may
  don't start from 0. For example, the xml is like this:

    <cpu mode='host-passthrough'>
      <topology sockets='1' cores='1' threads='2'/>
      <numa>
        <cell id='1' cpus='0-1' memory='1048576'/>
  	  <cell id='1' cpus='0-1' memory='1048576'/>
      </numa>
    </cpu>
    
   But currently there isn't this issue in OpenStack, because the "id" in "numa" elemet is support only Since libvirt 1.2.7, see: https://libvirt.org/formatdomain.html#elementsCPU.
   
   if we use libvirt 1.2.7, the following error will be raised with above XML options:
   
   2014-12-26T00:24:44+00:00 localhost nova-compute ERROR [pid:55672] [GreenThread-5] [manager.py:2247 _build_resources] Instance faile
  d to spawn Traceback (most recent call last):   File "/usr/lib64/python2.6/site-packages/nova/compute/manager.py", line 2241, in _bu
  ild_resources     yield resources   File "/usr/lib64/python2.6/site-packages/nova/compute/manager.py", line 2111, in _build_and_run_
  instance     block_device_info=block_device_info)   File "/usr/lib64/python2.6/site-packages/nova/virt/libvirt/driver.py", line 2627
  , in spawn     block_device_info, disk_info=disk_info)   File "/usr/lib64/python2.6/site-packages/nova/virt/libvirt/driver.py", line
   4425, in _create_domain_and_network     power_on=power_on)   File "/usr/lib64/python2.6/site-packages/nova/virt/libvirt/driver.py",
   line 4349, in _create_domain     LOG.error(err)   File "/usr/lib64/python2.6/site-packages/nova/openstack/common/excutils.py", line
   82, in __exit__     six.reraise(self.type_, self.value, self.tb)   File "/usr/lib64/python2.6/site-packages/nova/virt/libvirt/drive
  r.py", line 4335, in _create_domain     domain = self._conn.defineXML(xml)   File "/usr/lib64/python2.6/site-packages/eventlet/tpool
  .py", line 183, in doit     result = proxy_call(self._autowrap, f, *args, **kwargs)   File "/usr/lib64/python2.6/site-packages/event
  let/tpool.py", line 141, in proxy_call     rv = execute(f, *args, **kwargs)   File "/usr/lib64/python2.6/site-packages/eventlet/tpoo
  l.py", line 122, in execute     six.reraise(c, e, tb)   File "/usr/lib64/python2.6/site-packages/eventlet/tpool.py", line 80, in two
  rker     rv = meth(*args, **kwargs)   File "/usr/lib64/python2.6/site-packages/libvirt.py", line 3405, in defineXML     if ret is No
  ne:raise libvirtError('virDomainDefineXML() failed', conn=self) libvirtError: XML error: Exactly one 'cell' element per guest NUMA c
  ell allowed, non-contiguous ranges or ranges not starting from 0 are not allowed

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


Follow ups

References