As noted in , this RFE is necessary to close a gap where it's possible to configure a NUMA affinity policy for PCI passthrough devices but not SR-IOV devices. To restate what's described there, NUMA policies are currently configured as part of the PCI alias configuration in 'nova.conf', and by requesting a PCI device using the given alias you also get the NUMA affinity policy associated with that alias. However, SR-IOV devices are not typically attached to an instance using PCI aliases but rather by configuring a neutron port and attaching that on instance boot. This means the PCI alias-based approach is of no use for SR-IOV devices.
There are two possible approaches we can pursue to resolve this. The first approach is to use flavor extra specs and image metadata to configure instance-wide PCI policies that would apply to all PCI devices attached to the instance including SR-IOV devices. This was the approach first proposed in the 'share-pci-between-numa-nodes' blueprint , before this was modified to use PCI aliases instead . The other approach is to provide a new QoS policy in neutron that nova could consume. This was the approach that was discussed and essentially approved at the most recent Denver PTG. The flavor/image-based approach has the advantage of being much simpler to implement and mostly backportable, but it is very broad and prevents us from specifying NUMA affinity policies on a per port basis. The neutron QoS policy approach, by comparison, involves API and object changes in neutron, which make it more difficult to implement and prevent us from backporting it, but it does allow for very fine grained control over the affinity policy of each device.
We propose pursuing both approaches in succession. We will first pursue the flavor extra spec/image metadata-based approach for OSP 16, backporting this to OSP 13 once complete. In a later cycle, we will pursue the neutron QoS policy-based approach. This BZ is tracking the first approach.