RE: [PATCH V7 vfio 9/9] vfio/virtio: Introduce a vfio driver over virtio devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> From: Alex Williamson <alex.williamson@xxxxxxxxxx>
> Sent: Thursday, December 14, 2023 4:24 AM
> 
> On Wed, 13 Dec 2023 14:25:10 +0200
> Yishai Hadas <yishaih@xxxxxxxxxx> wrote:
> 
> > On 13/12/2023 10:23, Tian, Kevin wrote:
> 
> > >> +
> > >> +static int virtiovf_pci_probe(struct pci_dev *pdev,
> > >> +			      const struct pci_device_id *id)
> > >> +{
> > >> +	const struct vfio_device_ops *ops = &virtiovf_vfio_pci_ops;
> > >> +	struct virtiovf_pci_core_device *virtvdev;
> > >> +	int ret;
> > >> +
> > >> +	if (pdev->is_virtfn && virtio_pci_admin_has_legacy_io(pdev) &&
> > >> +	    !virtiovf_bar0_exists(pdev))
> > >> +		ops = &virtiovf_vfio_pci_tran_ops;
> > >
> > > I have a confusion here.
> > >
> > > why do we want to allow this driver binding to non-matching VF or
> > > even PF?
> >
> > The intention is to allow the binding of any virtio-net device (i.e. PF,
> > VF which is not transitional capable) to have a single driver over VFIO
> > for all virtio-net devices.
> >
> > This enables any user space application to bind and use any virtio-net
> > device without the need to care.
> >
> > In case the device is not transitional capable, it will simply use the
> > generic vfio functionality.
> 
> The algorithm we've suggested for finding the most appropriate variant
> driver for the device doesn't include a step of moving on to another
> driver if the binding fails.  We lose determinism at that point.
> Therefore this driver needs to handle all devices matching the id table.
> The fact that virtio dictates various config space fields limits our
> ability to refine the match from the id table. Thanks,
> 

OK, that makes sense.





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux