RE: mechanism to allow a driver to bind to any device

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

 




> -----Original Message-----
> From: Konrad Rzeszutek Wilk [mailto:konrad.wilk@xxxxxxxxxx]
> Sent: Wednesday, March 26, 2014 9:40 AM
> To: Yoder Stuart-B08248
> Cc: Greg KH; kvm@xxxxxxxxxxxxxxx; jan.kiszka@xxxxxxxxxxx;
> will.deacon@xxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Bjorn Helgaas; Sethi
> Varun-B16395; kvmarm@xxxxxxxxxxxxxxxxxxxxx; Rafael J. Wysocki;
> agraf@xxxxxxx; Guenter Roeck; Dmitry Kasatkin; Tejun Heo; Wood Scott-
> B07421; Antonios Motakis; tech@xxxxxxxxxxxxxxxxxxxxxx; Michal Hocko;
> Toshi Kani; a.rigo@xxxxxxxxxxxxxxxxxxxxxx; iommu@lists.linux-
> foundation.org; Joe Perches; christoffer.dall@xxxxxxxxxx
> Subject: Re: mechanism to allow a driver to bind to any device
> 
> On Wed, Mar 26, 2014 at 01:40:32AM +0000, Stuart Yoder wrote:
> > Hi Greg,
> >
> > We (Linaro, Freescale, Virtual Open Systems) are trying get an issue
> > closed that has been perculating for a while around creating a
> mechanism
> > that will allow kernel drivers like vfio can bind to devices of any
> type.
> >
> > This thread with you:
> > http://www.spinics.net/lists/kvm-arm/msg08370.html
> > ...seems to have died out, so am trying to get your response
> > and will summarize again.  Vfio drivers in the kernel (regardless of
> > bus type) need to bind to devices of any type.  The driver's function
> > is to simply export hardware resources of any type to user space.
> >
> > There are several approaches that have been proposed:
> 
> You seem to have missed the one I proposed.

Sorry, I frankly had no idea of what you were talking about.  Please
explain with an example what steps a user would take to unbind
a device from the host and bind it to say vfio-pci.

> >    1.  new_id -- (current approach) the user explicitly registers
> >        each new device type with the vfio driver using the new_id
> >        mechanism.
> >
> >        Problem: multiple drivers will be resident that handle the
> >        same device type...and there is nothing user space hotplug
> >        infrastructure can do to help.
> >
> >    2.  "any id" -- the vfio driver could specify a wildcard match
> >        of some kind in its ID match table which would allow it to
> >        match and bind to any possible device id.  However,
> >        we don't want the vfio driver grabbing _all_ devices...just the
> ones we
> >        explicitly want to pass to user space.
> >
> >        The proposed patch to support this was to create a new flag
> >        "sysfs_bind_only" in struct device_driver.  When this flag
> >        is set, the driver can only bind to devices via the sysfs
> >        bind file.  This would allow the wildcard match to work.
> >
> >        Patch is here:
> >        https://lkml.org/lkml/2013/12/3/253
> >
> >    3.  "Driver initiated explicit bind" -- with this approach the
> >        vfio driver would create a private 'bind' sysfs object
> >        and the user would echo the requested device into it:
> >
> >        echo 0001:03:00.0 > /sys/bus/pci/drivers/vfio-pci/vfio_bind
> >
> >        In order to make that work, the driver would need to call
> >        driver_probe_device() and thus we need this patch:
> >        https://lkml.org/lkml/2014/2/8/175
> >
> 
> 4). Use the 'unbind' (from the original device) and 'bind' to vfio
> driver.

How can you bind a device to vfio, when vfio is not aware of the
device type?   Does not work.

There is no way the vfio driver can know ahead of time what device may
be bound to it.

Stuart
_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm




[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux