On 08/11/2017 03:42 AM, Laine Stump wrote: > I had already sent 3 patches to properly support macvtap passthrough > of both ports of a dual port VF, and those patches were ACKed by > Michal: > > https://www.redhat.com/archives/libvir-list/2017-August/msg00170.html > > When Michal sent the ACK, I was already working on a V2 that updated > Patch 2 (now Patch 3), and added on some more patches in order to > properly support VFIO device assignment of VFs on these cards (but > only if they've been setup in single port mode). A scorecard: > > Patch 1 - same as V1, already ACKed > Patch 2 - NEW trivial patch to make an arg of a function const > Patch 3 - update virPCIGetNetName() - improved from V1 > Patch 4 - match phys_port_id, slightly modified from V1 due to change > in virPCIGetNetName in new Patch 3. > Patch 5 - NEW save/set/restore using correct PF netdev during vfio > Patch 6 - NEW eliminate bogus error logs when trying to read saved net config > Patch 7 - NEW fix checking of PF online status for dual port cards > > Here's the original cover letter blurb: > > The commit log of Patch 1 explains the majority of the reason for > these patches. In short, they disambiguate the multiple netdevs per > PCI device on the SRIOV PF and VFs of a Mellanox dual port NIC *when > converting from a VF netdev to a PF netdev and vice versa*. This > permits us to set the vlan tag and MAC address for the correct VF > netdev (and detect the online status of the correct PF netdev for that > VF) when using a VF in macvtap passthrough mode. (in other words, with > these patches in place, it is possible to use *all* the VF netdevs on > both ports of a dual port mellanox NIC for macvtap passthrough.) > > These patches *do not* solve the problem of saving/setting the mac > address/vlan tag for *both* ports when using a dual port VF for PCI > device assignment with VFIO (see my RFC email from last week). Since I > learned from responses to the RFC that these "dual netdevs on a single > PCI PF/VF" cards are legacy, and all new Mellanox products have only > one netdev per PF/VF (like all the other SRIOV NICs on the market), > I've decided that it's not worth cluttering up libvirt's XML with > config for a dying breed. Since it's possible to support VFIO device > assignment on those cards when the VFs are in single port mode, I > think it is worthwhile to make that work, so that owners of the older > cards can get maximum value from their investment. > > > > > Laine Stump (7): > util: new function virNetDevGetPhysPortID() > util: Fix const'ness of 1st arg to virPCIGetNetName() > util: make virPCIGetNetName() more versatile > util: match phys_port_id when converting PF-netdev to/from VF-netdev > util: save the correct VF's info when using a dual port SRIOV NIC in > single port mode > util: restructure virNetDevReadNetConfig() to eliminate false error > logs > util: check for PF online status earlier in guest startup > > src/libvirt_private.syms | 1 + > src/util/virhostdev.c | 137 ++++++++++++++++++++++++++------------ > src/util/virnetdev.c | 159 ++++++++++++++++++++++++++++++++++---------- > src/util/virnetdev.h | 5 ++ > src/util/virnetdevmacvlan.c | 5 +- > src/util/virpci.c | 97 +++++++++++++++++++++++---- > src/util/virpci.h | 9 ++- > 7 files changed, 316 insertions(+), 97 deletions(-) > Unfortunately, I don't have a machine to test this, but the code looks good. Therefore you have my ACK. Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list