Hi Maciej, thanks for bringing this up. On 06/26/2017 04:59 AM, Maciej Kucia wrote: > Hi, > > I have recently spent some time digging in Nova PCI devices handling code. > I would like to propose some improvements: > https://review.openstack.org/#/c/474218/ (Extended PCI alias) > https://review.openstack.org/#/q/status:open+project:openstack/nova+topic:PCI > > but > > There is an ongoing work on Resource Providers, Traits and Placement: > https://specs.openstack.org/openstack/nova-specs/specs/mitaka/approved/resource-providers.html > https://specs.openstack.org/openstack/nova-specs/specs/pike/approved/resource-provider-traits.html > https://github.com/openstack/os-traits > https://docs.openstack.org/developer/nova/placement.html > > I am willing to contribute some work to the PCI handling in Queens. > Given the scope of changes a new spec will be needed. > > The current PCI code has some issues that would be nice to fix. Most > notably: > - Broken single responsibility principle > A lot of classes are doing more than the name would suggest > - Files and classes naming is not consistent > - Mixed SR-IOV and PCI code > - PCI Pools provide no real performance advantage and add unnecessary > complexity I would like to add for consideration the issue that the current whitelist/allocaton model doesn't work at all for hypervisors like HyperV and PowerVM that don't directly own/access the devices as Linux /dev files; and (at least for PowerVM) where VFs can be created on the fly. I'm hoping the placement and resource provider work will result in a world where a compute node can define different kinds of PCI devices as resource classes against which resources with specific traits can be claimed. And hopefully the whitelist goes away (or I can "opt out" of it) in the process. > > My questions: > - I understand that Nova will remain handling low-level operations > between OpenStack and hypervisor driver. > Is this correct? > - Will the `placement service` take the responsibility of managing PCI > devices? > - Shall the SR-IOV handling be done by Nova or `placement service` (in > such case Nova would manage SR-IOV as a regular PCI)? > - Where to store PCI configuration? > For example currently nova.conf PCI Whitelist is responsible for some > SR-IOV configuration. > Shall it be stored somewhere alongside `SR-IOV` resource provider? > > Thanks, > Maciej > > > > __________________________________________________________________________ > OpenStack Development Mailing List (not for usage questions) > Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev >