Hide Forgot
Cloned from launchpad blueprint https://blueprints.launchpad.net/nova/+spec/pci-extra-info. Description: PCI devices has not only PCI standard property like BDF, vendor_id etc, it also has some extra information which may be application specific. For example, attached network switch for NIC, or resolution for GPU etc. These information can't be achieved through hypervisor, and may be provided externally through like configuration file. Currently nova PCI support has basic support for such extra information in database and object layer. But we need more effort to it, including: get such information from configuration file, provide API to access them easily, group devices with same extra information value etc. and pci passthough need full testing in path gating. == Detailed Design and discuss== 1.extra info uniform problem: pci extra info store failed cause new code does not accept unknow type value. reason: 1) pci unit code coverage is insufficent 2) no gating test in temptest or somewhere else. 3) physical address in extra info is a list not string. 4) new code then does not take the pci extra info as a sample. solution: change all extra info (k,v) as Dictfostring, insert code into object mode deal with difrent version. NO DB change and upgrade. linked bug Bug #1240383: pci passthrough: unicode object support does not work with the unkown fileds 2.alias/whitelist extra info support for SRIOV SRIOV need group the device in some way, then nutron can use the group to meet requements of physical network reachability. https://wiki.openstack.org/wiki/PCI_passthrough_SRIOV_support 3.device allocation tracking for SRIOV nutron SRIOV support need know which device allocaed to a specific NIC, then do futher configration. https://wiki.openstack.org/wiki/PCI_passthrough_SRIOV_support 4. white list and it's API also in the same link: https://wiki.openstack.org/wiki/PCI_passthrough_SRIOV_support 4.avoid update the database every minute: same pci device infomation updte should not push to DB, there need some enhancement about objects don't touch the what_changed fields when store same value as old to a key. Specification URL (additional information): None