On 2020/6/8 ??5:54, Michael S. Tsirkin wrote:> On Mon, Jun 08, 2020 at 05:46:52PM +0800, Jason Wang wrote: >> On 2020/6/8 ??5:45, Michael S. Tsirkin wrote: >>> On Mon, Jun 08, 2020 at 05:43:58PM +0800, Jason Wang wrote: >>>>>> Looking at >>>>>> pci_match_one_device() it checks both subvendor and subdevice there. >>>>>> >>>>>> Thanks >>>>> But IIUC there is no guarantee that driver with a specific subvendor >>>>> matches in presence of a generic one. >>>>> So either IFC or virtio pci can win, whichever binds first. >>>> I'm not sure I get there. But I try manually bind IFCVF to qemu's >>>> virtio-net-pci, and it fails. >>>> >>>> Thanks >>> Right but the reverse can happen: virtio-net can bind to IFCVF first. >> >> That's kind of expected. The PF is expected to be bound to virtio-pci to >> create VF via sysfs. >> >> Thanks >> >> >> > Once VFs are created, don't we want IFCVF to bind rather than > virtio-pci?Yes, but for PF we need virtio-pci. Thanks>
On Mon, Jun 08, 2020 at 06:07:36PM +0800, Jason Wang wrote:> > On 2020/6/8 ??5:54, Michael S. Tsirkin wrote: > > On Mon, Jun 08, 2020 at 05:46:52PM +0800, Jason Wang wrote: > > > On 2020/6/8 ??5:45, Michael S. Tsirkin wrote: > > > > On Mon, Jun 08, 2020 at 05:43:58PM +0800, Jason Wang wrote: > > > > > > > Looking at > > > > > > > pci_match_one_device() it checks both subvendor and subdevice there. > > > > > > > > > > > > > > Thanks > > > > > > But IIUC there is no guarantee that driver with a specific subvendor > > > > > > matches in presence of a generic one. > > > > > > So either IFC or virtio pci can win, whichever binds first. > > > > > I'm not sure I get there. But I try manually bind IFCVF to qemu's > > > > > virtio-net-pci, and it fails. > > > > > > > > > > Thanks > > > > Right but the reverse can happen: virtio-net can bind to IFCVF first. > > > > > > That's kind of expected. The PF is expected to be bound to virtio-pci to > > > create VF via sysfs. > > > > > > Thanks > > > > > > > > > > > Once VFs are created, don't we want IFCVF to bind rather than > > virtio-pci? > > > Yes, but for PF we need virtio-pci. > > Thanks >(Ab)using the driver_data field for this is an option. What do you think? -- MST
On 2020/6/8 ??9:29, Michael S. Tsirkin wrote:> On Mon, Jun 08, 2020 at 06:07:36PM +0800, Jason Wang wrote: >> On 2020/6/8 ??5:54, Michael S. Tsirkin wrote: >>> On Mon, Jun 08, 2020 at 05:46:52PM +0800, Jason Wang wrote: >>>> On 2020/6/8 ??5:45, Michael S. Tsirkin wrote: >>>>> On Mon, Jun 08, 2020 at 05:43:58PM +0800, Jason Wang wrote: >>>>>>>> Looking at >>>>>>>> pci_match_one_device() it checks both subvendor and subdevice there. >>>>>>>> >>>>>>>> Thanks >>>>>>> But IIUC there is no guarantee that driver with a specific subvendor >>>>>>> matches in presence of a generic one. >>>>>>> So either IFC or virtio pci can win, whichever binds first. >>>>>> I'm not sure I get there. But I try manually bind IFCVF to qemu's >>>>>> virtio-net-pci, and it fails. >>>>>> >>>>>> Thanks >>>>> Right but the reverse can happen: virtio-net can bind to IFCVF first. >>>> That's kind of expected. The PF is expected to be bound to virtio-pci to >>>> create VF via sysfs. >>>> >>>> Thanks >>>> >>>> >>>> >>> Once VFs are created, don't we want IFCVF to bind rather than >>> virtio-pci? >> >> Yes, but for PF we need virtio-pci. >> >> Thanks >> > (Ab)using the driver_data field for this is an option. > What do you think?Maybe you can elaborate more on this idea? Thanks>