Public bug reported:
Enable PCI passthrough on a compute host (whitelist devices explained in
more detail in the docs), and create a network, subnet and a port that
represents a SR-IOV physical function passthrough:
$ neutron net-create --provider:physical_network=phynet
--provider:network_type=flat sriov-net
$ neutron subnet-create sriov-net 192.168.2.0/24 --name sriov-subne
$ neutron port-create sriov-net --binding:vnic_type=direct-physical --name pf
After that try to boot an instance using the created port (provided the
pci_passthrough_whitelist was setup correctly) this should work:
$ boot --image xxx --flavor 1 --nic port-id=$PORT_ABOVE testvm
however, the next resource tracker run fails with:
2016-04-04 11:25:34.663 ERROR nova.compute.manager
[req-d8095318-9710-48a8-a054-4581641c3bf3 None None] Error updating resources
for node kilmainham-ghost.
2016-04-04 11:25:34.663 TRACE nova.compute.manager Traceback (most recent call
last):
2016-04-04 11:25:34.663 TRACE nova.compute.manager File
"/opt/stack/nova/nova/compute/manager.py", line 6442, in
update_available_resource_for_node
2016-04-04 11:25:34.663 TRACE nova.compute.manager
rt.update_available_resource(context)
2016-04-04 11:25:34.663 TRACE nova.compute.manager File
"/opt/stack/nova/nova/compute/resource_tracker.py", line 458, in
update_available_resource
2016-04-04 11:25:34.663 TRACE nova.compute.manager
self._update_available_resource(context, resources)
2016-04-04 11:25:34.663 TRACE nova.compute.manager File
"/usr/lib/python2.7/site-packages/oslo_concurrency/lockutils.py", line 271, in
inner
2016-04-04 11:25:34.663 TRACE nova.compute.manager return f(*args, **kwargs)
2016-04-04 11:25:34.663 TRACE nova.compute.manager File
"/opt/stack/nova/nova/compute/resource_tracker.py", line 493, in
_update_available_resource
2016-04-04 11:25:34.663 TRACE nova.compute.manager
self.pci_tracker.update_devices_from_hypervisor_resources(dev_json)
2016-04-04 11:25:34.663 TRACE nova.compute.manager File
"/opt/stack/nova/nova/pci/manager.py", line 118, in
update_devices_from_hypervisor_resources
2016-04-04 11:25:34.663 TRACE nova.compute.manager self._set_hvdevs(devices)
2016-04-04 11:25:34.663 TRACE nova.compute.manager File
"/opt/stack/nova/nova/pci/manager.py", line 141, in _set_hvdevs
2016-04-04 11:25:34.663 TRACE nova.compute.manager
self.stats.remove_device(existed)
2016-04-04 11:25:34.663 TRACE nova.compute.manager File
"/opt/stack/nova/nova/pci/stats.py", line 138, in remove_device
2016-04-04 11:25:34.663 TRACE nova.compute.manager
pool['devices'].remove(dev)
2016-04-04 11:25:34.663 TRACE nova.compute.manager ValueError: list.remove(x):
x not in list
Which basically kills the RT periodic run meaning no further resources
get updated by the periodic task.
** Affects: nova
Importance: Undecided
Status: New
--
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/1565721
Title:
SR-IOV PF passthrough breaks resource tracking
Status in OpenStack Compute (nova):
New
Bug description:
Enable PCI passthrough on a compute host (whitelist devices explained
in more detail in the docs), and create a network, subnet and a port
that represents a SR-IOV physical function passthrough:
$ neutron net-create --provider:physical_network=phynet
--provider:network_type=flat sriov-net
$ neutron subnet-create sriov-net 192.168.2.0/24 --name sriov-subne
$ neutron port-create sriov-net --binding:vnic_type=direct-physical --name pf
After that try to boot an instance using the created port (provided
the pci_passthrough_whitelist was setup correctly) this should work:
$ boot --image xxx --flavor 1 --nic port-id=$PORT_ABOVE testvm
however, the next resource tracker run fails with:
2016-04-04 11:25:34.663 ERROR nova.compute.manager
[req-d8095318-9710-48a8-a054-4581641c3bf3 None None] Error updating resources
for node kilmainham-ghost.
2016-04-04 11:25:34.663 TRACE nova.compute.manager Traceback (most recent
call last):
2016-04-04 11:25:34.663 TRACE nova.compute.manager File
"/opt/stack/nova/nova/compute/manager.py", line 6442, in
update_available_resource_for_node
2016-04-04 11:25:34.663 TRACE nova.compute.manager
rt.update_available_resource(context)
2016-04-04 11:25:34.663 TRACE nova.compute.manager File
"/opt/stack/nova/nova/compute/resource_tracker.py", line 458, in
update_available_resource
2016-04-04 11:25:34.663 TRACE nova.compute.manager
self._update_available_resource(context, resources)
2016-04-04 11:25:34.663 TRACE nova.compute.manager File
"/usr/lib/python2.7/site-packages/oslo_concurrency/lockutils.py", line 271, in
inner
2016-04-04 11:25:34.663 TRACE nova.compute.manager return f(*args,
**kwargs)
2016-04-04 11:25:34.663 TRACE nova.compute.manager File
"/opt/stack/nova/nova/compute/resource_tracker.py", line 493, in
_update_available_resource
2016-04-04 11:25:34.663 TRACE nova.compute.manager
self.pci_tracker.update_devices_from_hypervisor_resources(dev_json)
2016-04-04 11:25:34.663 TRACE nova.compute.manager File
"/opt/stack/nova/nova/pci/manager.py", line 118, in
update_devices_from_hypervisor_resources
2016-04-04 11:25:34.663 TRACE nova.compute.manager
self._set_hvdevs(devices)
2016-04-04 11:25:34.663 TRACE nova.compute.manager File
"/opt/stack/nova/nova/pci/manager.py", line 141, in _set_hvdevs
2016-04-04 11:25:34.663 TRACE nova.compute.manager
self.stats.remove_device(existed)
2016-04-04 11:25:34.663 TRACE nova.compute.manager File
"/opt/stack/nova/nova/pci/stats.py", line 138, in remove_device
2016-04-04 11:25:34.663 TRACE nova.compute.manager
pool['devices'].remove(dev)
2016-04-04 11:25:34.663 TRACE nova.compute.manager ValueError:
list.remove(x): x not in list
Which basically kills the RT periodic run meaning no further resources
get updated by the periodic task.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1565721/+subscriptions
--
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help : https://help.launchpad.net/ListHelp