From: Kim Phillips <kim.phillips@linaro.org>
To: scottwood@freescale.com
Cc: linux-kernel@vger.kernel.org, gregkh@linuxfoundation.org,
a.motakis@virtualopensystems.com, agraf@suse.de,
alex.williamson@redhat.com, stuart.yoder@freescale.com,
B07421@freescale.com, B16395@freescale.com, R65777@freescale.com,
peter.maydell@linaro.org, christoffer.dall@linaro.org,
santosh.shukla@linaro.org, kvm@vger.kernel.org
Subject: Re: RFC: (re-)binding the VFIO platform driver to a platform device
Date: Tue, 1 Oct 2013 16:59:14 -0500 [thread overview]
Message-ID: <20131001165914.a7ebe64aac3e4bb0f845da29@linaro.org> (raw)
In-Reply-To: <1380654938.10618.30.camel@snotra.buserror.net>
On Tue, 1 Oct 2013 14:15:38 -0500
Scott Wood <scottwood@freescale.com> wrote:
> On Tue, 2013-10-01 at 13:38 -0500, Kim Phillips wrote:
> > Hi,
> >
> > Santosh and I are having a problem figuring out how to enable binding
> > (and re-binding) platform devices to a platform VFIO driver (see
> > Antonis' WIP: [1]) in an upstream-acceptable manner.
> >
> > Binding platform drivers currently depends on a string match in the
> > device node's compatible entry. On an arndale, one can currently
> > rebind the same device to the same driver like so:
> >
> > echo 12ce0000.i2c > /sys/bus/platform/drivers/s3c-i2c/12ce0000.i2c/driver/unbind
> > echo 12ce0000.i2c > /sys/bus/platform/drivers/s3c-i2c/bind
> >
> > And one can bind it to the vfio-dt driver, as Antonis instructs, by
> > appending a 'vfio-dt' string to the device tree compatible entry for
> > the device. Then this would work:
> >
> > echo 12ce0000.i2c > /sys/bus/platform/drivers/s3c-i2c/12ce0000.i2c/driver/unbind
> > echo 12ce0000.i2c > /sys/bus/platform/drivers/vfio-dt/bind
> >
> > Consequently, the hack patch below [2] allows any platform device to be
> > bound to the vfio-dt driver, without making changes to the device
> > tree. It's a hack because I don't see having any driver name specific
> > code in drivers/base/bus.c being upstream acceptable.
>
> Modifying the device tree is the worse part of this.
>
> Is this part of your later suggestion to make compatible writeable after
> boot, or are you talking about messing with the device tree before boot
> (putting software config in the device tree, among other ickiness)?
writeable after boot
> > Alternately, device tree compatible entries may be made writeable after
> > boot, e.g.:
> >
> > echo vfio-platform > /proc/device-tree/i2c\@12CE0000/compatible
> >
> > [note s/vfio-dt/vfio-platform/]
> >
> > but that would require the vfio-platform module be reloaded, thereby
> > unbinding it from any existing devices it was bound to: we're
> > seeking a more dynamic solution.
>
> Eww.
>
> Not to mention that the VFIO user might want to know what the compatible
> was,
well, technically the user would be able to get that info by reading
compatible before writing it, and ideally write the original value back
in addition to the new value.
> or that we might later want to unbind from VFIO and rebind to the
> kernel...
I believe that's independent: it would depend on which driver's (VFIO,
kernel, or other) sysfs file the device address gets written into.
> > Alex Graf (cc'd) proposed an alternate approach: re-write the driver
> > name in the device's sysfs entry:
> >
> > echo "vfio-platform" > /sys/bus/platform/devices/101e0000.rtc/driver/driver_name
> >
> > The advantage of this approach is that we can achieve the re-bind
> > (unbind + bind) as an atomic operation, which alleviates userspace from
> > having to coordinate with other device operations (I think VM migration
> > is an example case here).
> >
> > Note that driver_name currently doesn't exist in sysfs, so it would
> > either have to be added, or another means developed to rename the
> > driver symlink itself:
>
> I think the ideal interface would be if you could write the sysfs device
> name into the vfio bind file (or some new file in the same directory),
> and have it claim that device (preferably with an atomic unbind from the
> previous driver).
ok.
> We shouldn't be messing around with compatible
> (either modifying it or telling VFIO which compatibles to look for) when
> we know the specific devices (not just type of devices) we want to bind.
ok, but I still don't see how to get past driver_match_device()'s
refusal to allow bind a non-compatible driver (or one who's name isn't
in the compatible list).
Kim
next prev parent reply other threads:[~2013-10-01 21:59 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-01 18:38 Kim Phillips
2013-10-01 19:15 ` Scott Wood
2013-10-01 19:17 ` Scott Wood
2013-10-01 22:01 ` Kim Phillips
2013-10-01 21:59 ` Kim Phillips [this message]
2013-10-01 22:44 ` Scott Wood
2013-10-01 20:00 ` Greg Kroah-Hartman
2013-10-01 22:02 ` Kim Phillips
2013-10-02 1:53 ` Christoffer Dall
2013-10-02 2:35 ` Alex Williamson
2013-10-02 15:14 ` Christoffer Dall
2013-10-02 15:29 ` Alex Williamson
2013-10-02 18:25 ` Yoder Stuart-B08248
2013-10-02 18:32 ` Scott Wood
2013-10-02 18:43 ` Christoffer Dall
2013-10-02 20:04 ` Kim Phillips
2013-10-02 20:13 ` Christoffer Dall
2013-10-02 20:19 ` Scott Wood
2013-10-02 20:14 ` Scott Wood
2013-10-02 20:27 ` Christoffer Dall
2013-10-02 20:39 ` gregkh
2013-10-02 20:44 ` Christoffer Dall
2013-10-02 20:37 ` gregkh
2013-10-02 20:42 ` Christoffer Dall
2013-10-02 21:08 ` Scott Wood
2013-10-02 21:16 ` gregkh
2013-10-02 21:35 ` Scott Wood
2013-10-02 23:40 ` gregkh
2013-10-03 18:33 ` Scott Wood
2013-10-03 18:54 ` gregkh
2013-10-03 19:11 ` Scott Wood
2013-10-03 20:32 ` gregkh
2013-10-09 19:02 ` Yoder Stuart-B08248
2013-10-09 19:16 ` gregkh
2013-10-09 19:49 ` Scott Wood
2013-10-09 19:21 ` Scott Wood
2013-10-09 19:44 ` Yoder Stuart-B08248
2013-10-09 20:03 ` Scott Wood
2013-10-10 3:05 ` Kim Phillips
2013-10-10 8:01 ` Bhushan Bharat-R65777
2013-10-10 15:27 ` Scott Wood
2013-10-11 6:27 ` [PATCH 1/4] driver core: Add new device_driver flag to allow binding via sysfs only Kim Phillips
2013-10-11 6:27 ` [PATCH 2/4] driver core: platform: allow platform drivers to bind to any device Kim Phillips
2013-10-11 6:27 ` [PATCH 3/4] VFIO: pci: amend vfio-pci for explicit binding via sysfs only Kim Phillips
2013-10-11 20:43 ` Scott Wood
2013-10-11 23:17 ` Kim Phillips
2013-10-14 13:01 ` Yoder Stuart-B08248
2013-10-14 17:13 ` Scott Wood
2013-10-24 11:32 ` Bhushan Bharat-R65777
2013-10-28 17:47 ` Alex Williamson
2013-10-28 18:00 ` Scott Wood
2013-10-28 18:09 ` Scott Wood
2013-10-29 3:38 ` Bhushan Bharat-R65777
2013-10-29 3:40 ` Scott Wood
2013-10-29 3:52 ` Bhushan Bharat-R65777
2013-10-29 4:29 ` Scott Wood
2013-10-29 4:31 ` Bhushan Bharat-R65777
2013-10-29 4:35 ` Scott Wood
2013-10-29 4:45 ` Bhushan Bharat-R65777
2013-10-29 4:54 ` Scott Wood
2013-10-29 6:39 ` Bhushan Bharat-R65777
2013-10-11 6:27 ` [PATCH] VFIO: platform: allow the driver to bind to any device explicitly via sysfs Kim Phillips
2013-10-10 7:45 ` RFC: (re-)binding the VFIO platform driver to a platform device Bhushan Bharat-R65777
2013-10-10 13:43 ` Yoder Stuart-B08248
2013-10-10 15:23 ` Scott Wood
2013-10-10 15:25 ` Bhushan Bharat-R65777
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=20131001165914.a7ebe64aac3e4bb0f845da29@linaro.org \
--to=kim.phillips@linaro.org \
--cc=B07421@freescale.com \
--cc=B16395@freescale.com \
--cc=R65777@freescale.com \
--cc=a.motakis@virtualopensystems.com \
--cc=agraf@suse.de \
--cc=alex.williamson@redhat.com \
--cc=christoffer.dall@linaro.org \
--cc=gregkh@linuxfoundation.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=peter.maydell@linaro.org \
--cc=santosh.shukla@linaro.org \
--cc=scottwood@freescale.com \
--cc=stuart.yoder@freescale.com \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome