From: Antonios Motakis <a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> To: Stuart Yoder <stuart.yoder-KZfg59tc24xl57MIdRCFDg@public.gmane.org> Cc: "kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" <kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, "jan.kiszka-kv7WeFo6aLtBDgjK7y7TUQ@public.gmane.org" <jan.kiszka-kv7WeFo6aLtBDgjK7y7TUQ@public.gmane.org>, "will.deacon-5wv7dgnIgG8@public.gmane.org" <will.deacon-5wv7dgnIgG8@public.gmane.org>, "linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, Bjorn Helgaas <bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>, Varun Sethi <Varun.Sethi-KZfg59tc24xl57MIdRCFDg@public.gmane.org>, "kvmarm-FPEHb7Xf0XXUo1n7N8X6UoWGPAHP3yOg@public.gmane.org" <kvmarm-FPEHb7Xf0XXUo1n7N8X6UoWGPAHP3yOg@public.gmane.org>, "Rafael J. Wysocki" <rafael.j.wysocki-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>, "agraf-l3A5Bk7waGM@public.gmane.org" <agraf-l3A5Bk7waGM@public.gmane.org>, Guenter Roeck <linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>, Dmitry Kasatkin <d.kasatkin-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>, Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, Scott Wood <scottwood-KZfg59tc24xl57MIdRCFDg@public.gmane.org>, "tech-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org" <tech-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org>, Michal Hocko <mhocko-AlSwsSmVLrQ@public.gmane.org>, Toshi Kani <toshi.kani-VXdhtT5mjnY@public.gmane.org>, Greg KH <gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>, "a.rigo-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org" <a.rigo-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org>, "iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org" <iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>, Joe Perches Subject: Re: mechanism to allow a driver to bind to any device Date: Wed, 26 Mar 2014 22:42:44 +0100 [thread overview] Message-ID: <CAG8rG2zD2SHBZ9CjHZ-JMvYh5Zx=0n2ndrSh+Tx-nsMk_8uw4w@mail.gmail.com> (raw) In-Reply-To: <54cd150235ba4954becdd12f725c5ebd-ufbTtyGzTTT8GZusEWM6WuO6mTEJWrR4XA4E9RH9d+qIuWR1G4zioA@public.gmane.org> (Resend because of html) On Wed, Mar 26, 2014 at 2:40 AM, Stuart Yoder <stuart.yoder-KZfg59tc24xl57MIdRCFDg@public.gmane.org> 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: > > 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. > Of note is that new_id doesn't work particularly well for platform devices. Before trying any of the other two solutions, a nasty hack was applied on the device tree used with the system in order to let vfio-platform match with a specific device, which is certainly not an acceptable solution. Implementing wildcard matching quickly reveals the problems mentioned, which motivates the other two approaches. > 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 > > > Would like your comment on these options-- option #3 is preferred > and is literally a 2 line patch. I would definitely agree with approach #3, for which Kim has already provided a patch. Not having this would make using VFIO with platform devices really inelegant and strange. > > Thanks, > Stuart -- Antonios Motakis Virtual Open Systems
WARNING: multiple messages have this Message-ID (diff)
From: Antonios Motakis <a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> To: Stuart Yoder <stuart.yoder-KZfg59tc24xl57MIdRCFDg@public.gmane.org> Cc: "kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" <kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, "jan.kiszka-kv7WeFo6aLtBDgjK7y7TUQ@public.gmane.org" <jan.kiszka-kv7WeFo6aLtBDgjK7y7TUQ@public.gmane.org>, "will.deacon-5wv7dgnIgG8@public.gmane.org" <will.deacon-5wv7dgnIgG8@public.gmane.org>, "linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, Bjorn Helgaas <bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>, Varun Sethi <Varun.Sethi-KZfg59tc24xl57MIdRCFDg@public.gmane.org>, "kvmarm-FPEHb7Xf0XXUo1n7N8X6UoWGPAHP3yOg@public.gmane.org" <kvmarm-FPEHb7Xf0XXUo1n7N8X6UoWGPAHP3yOg@public.gmane.org>, "Rafael J. Wysocki" <rafael.j.wysocki-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>, "agraf-l3A5Bk7waGM@public.gmane.org" <agraf-l3A5Bk7waGM@public.gmane.org>, Guenter Roeck <linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>, Dmitry Kasatkin <d.kasatkin-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>, Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, Scott Wood <scottwood-KZfg59tc24xl57MIdRCFDg@public.gmane.org>, "tech-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org" <tech-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org>, Michal Hocko <mhocko-AlSwsSmVLrQ@public.gmane.org>, Toshi Kani <toshi.kani-VXdhtT5mjnY@public.gmane.org>, Greg KH <gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>, "a.rigo-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org" <a.rigo-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org>, "iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org" <iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>, Joe Subject: Re: mechanism to allow a driver to bind to any device Date: Wed, 26 Mar 2014 22:42:44 +0100 [thread overview] Message-ID: <CAG8rG2zD2SHBZ9CjHZ-JMvYh5Zx=0n2ndrSh+Tx-nsMk_8uw4w@mail.gmail.com> (raw) In-Reply-To: <54cd150235ba4954becdd12f725c5ebd-ufbTtyGzTTT8GZusEWM6WuO6mTEJWrR4XA4E9RH9d+qIuWR1G4zioA@public.gmane.org> (Resend because of html) On Wed, Mar 26, 2014 at 2:40 AM, Stuart Yoder <stuart.yoder-KZfg59tc24xl57MIdRCFDg@public.gmane.org> 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: > > 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. > Of note is that new_id doesn't work particularly well for platform devices. Before trying any of the other two solutions, a nasty hack was applied on the device tree used with the system in order to let vfio-platform match with a specific device, which is certainly not an acceptable solution. Implementing wildcard matching quickly reveals the problems mentioned, which motivates the other two approaches. > 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 > > > Would like your comment on these options-- option #3 is preferred > and is literally a 2 line patch. I would definitely agree with approach #3, for which Kim has already provided a patch. Not having this would make using VFIO with platform devices really inelegant and strange. > > Thanks, > Stuart -- Antonios Motakis Virtual Open Systems
next prev parent reply other threads:[~2014-03-26 21:42 UTC|newest] Thread overview: 90+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-02-08 17:29 [RFC PATCH v4 00/10] VFIO support for platform devices Antonios Motakis 2014-02-08 17:29 ` Antonios Motakis 2014-02-08 17:29 ` [RFC PATCH v4 01/10] driver core: export driver_probe_device() Antonios Motakis 2014-02-08 17:29 ` Antonios Motakis 2014-02-14 22:27 ` Greg KH 2014-02-14 22:27 ` Greg KH [not found] ` <20140214222716.GA11838-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org> 2014-02-14 23:00 ` Stuart Yoder [not found] ` <ba7597fd8c9f4d91bbccfb42e31a165e-ufbTtyGzTTT8GZusEWM6WuO6mTEJWrR4XA4E9RH9d+qIuWR1G4zioA@public.gmane.org> 2014-02-15 2:47 ` Greg KH 2014-02-15 2:47 ` Greg KH [not found] ` <20140215024725.GA2542-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org> 2014-02-15 16:33 ` Stuart Yoder 2014-02-15 16:33 ` Stuart Yoder [not found] ` <7043e1edd9974de590dcb392cd8aff14-ufbTtyGzTTT8GZusEWM6WuO6mTEJWrR4XA4E9RH9d+qIuWR1G4zioA@public.gmane.org> 2014-02-15 17:33 ` Greg KH 2014-02-15 17:33 ` Greg KH [not found] ` <20140215173348.GA8056-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org> 2014-02-15 18:19 ` Stuart Yoder 2014-02-15 18:19 ` Stuart Yoder [not found] ` <38f0473542954fe8b312a1f7b61a3d21-ufbTtyGzTTT8GZusEWM6WuO6mTEJWrR4XA4E9RH9d+qIuWR1G4zioA@public.gmane.org> 2014-02-18 0:38 ` Scott Wood 2014-02-18 0:38 ` Scott Wood 2014-02-20 22:34 ` Stuart Yoder 2014-02-20 22:34 ` Stuart Yoder [not found] ` <b6374a0f30194969ba4622ff2f58ae65-ufbTtyGzTTT8GZusEWM6WuO6mTEJWrR4XA4E9RH9d+qIuWR1G4zioA@public.gmane.org> 2014-02-20 22:43 ` Greg KH 2014-02-20 22:43 ` Greg KH [not found] ` <20140220224337.GA20097-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org> 2014-03-06 22:25 ` Stuart Yoder 2014-03-06 22:25 ` Stuart Yoder 2014-03-26 1:40 ` mechanism to allow a driver to bind to any device Stuart Yoder 2014-03-26 1:40 ` Stuart Yoder [not found] ` <54cd150235ba4954becdd12f725c5ebd-ufbTtyGzTTT8GZusEWM6WuO6mTEJWrR4XA4E9RH9d+qIuWR1G4zioA@public.gmane.org> 2014-03-26 14:40 ` Konrad Rzeszutek Wilk [not found] ` <20140326144025.GA18387-6K5HmflnPlqSPmnEAIUT9EEOCMrvLtNR@public.gmane.org> 2014-03-26 15:06 ` Alexander Graf [not found] ` <D45FC8F2-7807-4BBB-A253-8EFCD091D6BD-l3A5Bk7waGM@public.gmane.org> 2014-03-26 16:21 ` Alex Williamson [not found] ` <1395850862.632.247.camel-85EaTFmN5p//9pzu0YdTqQ@public.gmane.org> 2014-03-26 16:32 ` Konrad Rzeszutek Wilk 2014-03-26 16:32 ` Konrad Rzeszutek Wilk [not found] ` <20140326163209.GB21368-6K5HmflnPlqSPmnEAIUT9EEOCMrvLtNR@public.gmane.org> 2014-03-26 16:49 ` Alex Williamson 2014-03-26 16:49 ` Alex Williamson [not found] ` <1395852592.632.253.camel-85EaTFmN5p//9pzu0YdTqQ@public.gmane.org> 2014-03-26 17:04 ` Konrad Rzeszutek Wilk 2014-03-26 17:04 ` Konrad Rzeszutek Wilk [not found] ` <20140326170406.GA22902-6K5HmflnPlqSPmnEAIUT9EEOCMrvLtNR@public.gmane.org> 2014-03-26 17:26 ` Alex Williamson 2014-03-26 17:26 ` Alex Williamson 2014-03-26 17:51 ` Stuart Yoder 2014-03-26 22:09 ` Alex Williamson [not found] ` <1395871761.632.316.camel-85EaTFmN5p//9pzu0YdTqQ@public.gmane.org> 2014-03-28 16:58 ` Konrad Rzeszutek Wilk 2014-03-28 16:58 ` Konrad Rzeszutek Wilk [not found] ` <20140328165809.GA12659-6K5HmflnPlqSPmnEAIUT9EEOCMrvLtNR@public.gmane.org> 2014-03-28 17:10 ` Alex Williamson 2014-03-28 17:10 ` Alex Williamson 2014-03-31 22:36 ` Kim Phillips 2014-03-31 22:36 ` Kim Phillips 2014-03-31 23:52 ` Alex Williamson 2014-03-31 23:52 ` Alex Williamson 2014-03-31 18:47 ` Stuart Yoder 2014-03-31 18:47 ` Stuart Yoder [not found] ` <7d1b495cdb6a415e8d3b7f60f409991c-ufbTtyGzTTT8GZusEWM6WuO6mTEJWrR4XA4E9RH9d+qIuWR1G4zioA@public.gmane.org> 2014-03-31 19:47 ` Greg KH [not found] ` <20140331194705.GA13014-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org> 2014-03-31 20:23 ` Stuart Yoder 2014-03-31 22:32 ` Kim Phillips 2014-03-31 22:32 ` Kim Phillips 2014-03-31 18:32 ` Stuart Yoder 2014-03-31 18:32 ` Stuart Yoder 2014-03-26 16:24 ` Konrad Rzeszutek Wilk 2014-03-26 15:32 ` Stuart Yoder 2014-03-26 21:39 ` Antonios Motakis 2014-03-26 21:39 ` Antonios Motakis [not found] ` <CAG8rG2xCvCGJWwZTnkia5GD3BVJZB9SmKOm79T6Q1FnhgB+urw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2014-03-28 6:59 ` Greg KH 2014-03-28 6:59 ` Greg KH [not found] ` <20140328065942.GB14619-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org> 2014-03-31 18:21 ` Stuart Yoder 2014-03-26 21:42 ` Antonios Motakis [this message] 2014-03-26 21:42 ` Antonios Motakis 2014-02-08 17:29 ` [RFC PATCH v4 02/10] VFIO_IOMMU_TYPE1: Introduce the VFIO_DMA_MAP_FLAG_EXEC flag Antonios Motakis 2014-02-08 17:29 ` Antonios Motakis 2014-02-10 20:04 ` Alex Williamson 2014-02-10 20:04 ` Alex Williamson 2014-02-08 17:29 ` [RFC PATCH v4 03/10] VFIO_IOMMU_TYPE1: workaround to build for platform devices Antonios Motakis 2014-02-08 17:29 ` Antonios Motakis 2014-02-08 17:29 ` [RFC PATCH v4 04/10] VFIO_PLATFORM: Initial skeleton of VFIO support " Antonios Motakis 2014-02-08 17:29 ` [RFC PATCH v4 05/10] VFIO_PLATFORM: Return info for device and its memory mapped IO regions Antonios Motakis 2014-02-08 17:29 ` Antonios Motakis 2014-02-10 22:32 ` Alex Williamson 2014-02-10 22:32 ` Alex Williamson 2014-02-08 17:29 ` [RFC PATCH v4 06/10] VFIO_PLATFORM: Read and write support for the device fd Antonios Motakis 2014-02-08 17:29 ` Antonios Motakis 2014-02-10 22:45 ` Alex Williamson 2014-02-10 22:45 ` Alex Williamson 2014-02-10 23:12 ` Scott Wood 2014-02-10 23:12 ` Scott Wood 2014-02-10 23:20 ` Alex Williamson 2014-02-10 23:20 ` Alex Williamson 2014-02-08 17:29 ` [RFC PATCH v4 07/10] VFIO_PLATFORM: Support MMAP of MMIO regions Antonios Motakis 2014-02-08 17:29 ` Antonios Motakis 2014-02-08 17:29 ` [RFC PATCH v4 08/10] VFIO_PLATFORM: Return IRQ info Antonios Motakis 2014-02-08 17:29 ` Antonios Motakis 2014-02-08 17:29 ` [RFC PATCH v4 09/10] VFIO_PLATFORM: Initial interrupts support Antonios Motakis 2014-02-08 17:29 ` Antonios Motakis 2014-02-08 17:29 ` [RFC PATCH v4 10/10] VFIO_PLATFORM: Support for maskable and automasked interrupts Antonios Motakis 2014-02-08 17:29 ` Antonios Motakis
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='CAG8rG2zD2SHBZ9CjHZ-JMvYh5Zx=0n2ndrSh+Tx-nsMk_8uw4w@mail.gmail.com' \ --to=a.motakis-lrhrjnjw1ufhk3s98ze1ajgjjy/sre9j@public.gmane.org \ --cc=Varun.Sethi-KZfg59tc24xl57MIdRCFDg@public.gmane.org \ --cc=a.rigo-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org \ --cc=agraf-l3A5Bk7waGM@public.gmane.org \ --cc=bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \ --cc=d.kasatkin-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \ --cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \ --cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \ --cc=jan.kiszka-kv7WeFo6aLtBDgjK7y7TUQ@public.gmane.org \ --cc=kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=kvmarm-FPEHb7Xf0XXUo1n7N8X6UoWGPAHP3yOg@public.gmane.org \ --cc=linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org \ --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=mhocko-AlSwsSmVLrQ@public.gmane.org \ --cc=rafael.j.wysocki-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \ --cc=scottwood-KZfg59tc24xl57MIdRCFDg@public.gmane.org \ --cc=stuart.yoder-KZfg59tc24xl57MIdRCFDg@public.gmane.org \ --cc=tech-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org \ --cc=tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \ --cc=toshi.kani-VXdhtT5mjnY@public.gmane.org \ --cc=will.deacon-5wv7dgnIgG8@public.gmane.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.