Reviewed: https://review.opendev.org/c/openstack/nova/+/944277 Committed: https://opendev.org/openstack/nova/commit/229fb3513ae39fa120167107afe42568ca85ace9 Submitter: "Zuul (22348)" Branch: master
commit 229fb3513ae39fa120167107afe42568ca85ace9 Author: Balazs Gibizer <g...@redhat.com> Date: Thu Mar 13 16:24:27 2025 +0100 Ignore metadata tags in pci/stats _find_pool logic The stats module uses the _find_pool() call to find a matching pool for a new device or a device that is being deallocated. If no existing pool matches with the dev then then a new pool is created for it. The pool matching logic was faulty as it did not remove all the metadata keys from the pool like rp_uuid. So if the dev did not have that key but the pool did then the dev did not match. On the other hand the PCI allocation logic (when PCI in Placement is enabled) assumed that devices from a single rp_uuid are always in a single pool. As this assumption was broken by the above bug the PCI allocation blindly tried to allocate resources for an rp_uuid from each matching pool causing overallocation. The main fix in this patch is to ignore the metadata tags in _find_pool(). But also two safety net are added to the allocation logic. The logic now asserts that the assumption is correct and if not (i.e. it found multiple pools with the same rp_uuid) then it bails out. It also does not ever blindly allocate the same rp_uuid request from multiple pools. Closes-Bug: #2098496 Change-Id: I9678230397fa1a3c735ee01ed756d5af3b4e1191 ** Changed in: nova Status: In Progress => Fix Released -- 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/2098496 Title: VM gets more PCI hostdevs than requested when PCI in Placement is enabled with VFs Status in OpenStack Compute (nova): Fix Released Bug description: Reproduce: * create devstack from recent master with device_spec config enabling multiple VFs per PF * enable pci in placement feature * create VM with a flavor requesting a single VF * observe the the VM got a single hostdev * delete the VM * observer that the device the VM was using is freed * create another VM with the same flavor requesting a single VF Expected: The VM gets a single hostdev Actual: The VM gets two hostdevs and it has two devices allocated both in the nova DB and in placement To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/2098496/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp