> >> > > > This patch introduces two new device assignment functions
> >> > > >
> >> > > > pci_iov_assign_device(),
> >> > > > pci_iov_deassign_device()
> >> > > >
> >> > > > along with the existed one
> >> > > >
> >> > > > pci_vfs_assigned()
> >> > > >
> >> > > > They construct the VFs assignment management interface, used to
> >> > > > assign/ deassign device to VM and query the VFs reference counter.
> >> > > > instead of direct manipulation of device flag.
> >>
> >> Sorry for the late intrusion into the conversation, and perhaps it's
> >> a bit unrelated, but given that you're creating a 'VF assignment 
> >> management'
> >> perhaps it's the right place to add some sort of mechanism in order
> >> to prevent module removal once one of its VFs is assigned.
> >> [e.g., incrementing module reference count]
> >>
> >> At the moment [to the best of my knowledge] there's no mechanism
> >> preventing the 'not-so-bright' user from removing the driver, and no
> >> good will come out of it.
> >
> > On what module would the reference count be increased, the PF?  The
> > entire "VF assigned" interface is a hack to work around poor
> > architectures like legacy KVM device assignment where there's no
> > proper device owner for the VF.  This is "fixed" by using VFIO instead
> > and hopefully deprecating legacy KVM assignment.  Thanks,
>
>   To explain what Alex said, in another word, if VMs access VF via VFIO 
> driver,
> the owner of the device is VFIO, in this case, if you unload PF driver, you 
> still
> need to unload VFIO first, then unload PF driver. but the PF driver knows how 
> to
> notify the VFIO driver to unload.
>   But without VFIO like driver, for example some of current code will assign
> devcie (PF/VF) directly to KVM or XEN without driver in the middle. and the PF
> driver doesn't know how to unbind the assignment...

Hi,

I thought about perhaps incrementing the reference count of the PF's module
[i.e., the module supplying the driver for the PF] directly, so THAT module 
won't
be removable as long as the VF is assigned.

Although I don't know whether the module is even accessible; Can you derive a
pointer to a module from a net_device struct?

Thanks,
Yuval

________________________________

This message and any attached documents contain information from QLogic 
Corporation or its wholly-owned subsidiaries that may be confidential. If you 
are not the intended recipient, you may not read, copy, distribute, or use this 
information. If you have received this transmission in error, please notify the 
sender immediately by reply e-mail and then delete this message.
------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
E1000-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to