mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Scott Wood <scottwood@freescale.com>
To: Kim Phillips <kim.phillips@linaro.org>
Cc: <linux-kernel@vger.kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	<a.motakis@virtualopensystems.com>,
	Alexander Graf <agraf@suse.de>,
	Alex Williamson <alex.williamson@redhat.com>,
	<stuart.yoder@freescale.com>,
	Wood Scott-B07421 <B07421@freescale.com>,
	Sethi Varun-B16395 <B16395@freescale.com>,
	Bhushan Bharat-R65777 <R65777@freescale.com>,
	Peter Maydell <peter.maydell@linaro.org>,
	Christoffer Dall <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 14:15:38 -0500	[thread overview]
Message-ID: <1380654938.10618.30.camel@snotra.buserror.net> (raw)
In-Reply-To: <20131001133831.6e46e8e00e09d5d9079fde57@linaro.org>

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)?

> 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, or that we might later want to unbind from VFIO and rebind to the
kernel...

> 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).  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.

-Scott




  reply	other threads:[~2013-10-01 19:15 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 [this message]
2013-10-01 19:17   ` Scott Wood
2013-10-01 22:01     ` Kim Phillips
2013-10-01 21:59   ` Kim Phillips
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=1380654938.10618.30.camel@snotra.buserror.net \
    --to=scottwood@freescale.com \
    --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=kim.phillips@linaro.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peter.maydell@linaro.org \
    --cc=santosh.shukla@linaro.org \
    --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

all inboxes | Powered by JetHome®