All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark McLoughlin <markmc@redhat.com>
To: Greg KH <greg@kroah.com>
Cc: kvm <kvm@vger.kernel.org>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	Chris Wright <chrisw@redhat.com>,
	"Dugger, Donald D" <donald.d.dugger@intel.com>,
	"Kay, Allen M" <allen.m.kay@intel.com>
Subject: Re: KVM PCI device assignment issues
Date: Fri, 13 Feb 2009 17:06:16 +0000	[thread overview]
Message-ID: <1234544776.23746.87.camel@blaa> (raw)
In-Reply-To: <20090213165615.GA31338@kroah.com>

On Fri, 2009-02-13 at 08:56 -0800, Greg KH wrote:
> On Fri, Feb 13, 2009 at 04:32:47PM +0000, Mark McLoughlin wrote:
> > Driver Unbinding
> > ================
> > 
> > Before a device is assigned to a guest, we should make sure that no host
> > device driver is currently bound to the device.
> > 
> > We can do that with e.g.
> > 
> >  $> echo -n "8086 10de"  > /sys/bus/pci/drivers/pci-stub/new_id
> >  $> echo -n 0000:00:19.0 > /sys/bus/pci/drivers/e1000e/unbind
> >  $> echo -n 0000:00:19.0 > /sys/bus/pci/drivers/pci-stub/bind
> > 
> > One minor problem with this scheme is that at this point you can't
> > unbind from pci-stub and trigger a re-probe and have e1000e bind to it.
> 
> Are you sure?  It should work if you manually tell the e1000e driver to
> bind to it, after unbinding it from the pci-stub driver.

Yes, that works - I meant using /sys/bus/pci/drivers_probe. The problem
is that it would suck for management tools to have to remember which
device driver it was originally bound to.

> > In order to support that, we need a "remove_id" interface to remove the
> > dynamic ID.
> 
> Why?

Before assignment:

 $> echo -n "8086 10de"  > /sys/bus/pci/drivers/pci-stub/new_id
 $> echo -n 0000:00:19.0 > /sys/bus/pci/drivers/e1000e/unbind
 $> echo -n 0000:00:19.0 > /sys/bus/pci/drivers/pci-stub/bind
 $> echo -n "8086 10de"  > /sys/bus/pci/drivers/pci-stub/remove_id

After assignment:

 $> echo -n 0000:00:19.0 > /sys/bus/pci/drivers_probe

> > What we don't support is a way to unbind permanently. Xen has a
> > pciback.hide module param which tries to achieve this, but you end up
> > with the inevitable issues around making sure pciback is loaded before
> > the device driver etc.
> 
> What do you mean, unbind "permanently"?  For every reboot?  Or just
> within the same boot time?

Across reboots, yeah.

Cheers,
Mark.


  reply	other threads:[~2009-02-13 17:06 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-13 16:32 KVM PCI device assignment issues Mark McLoughlin
2009-02-13 16:56 ` Greg KH
2009-02-13 17:06   ` Mark McLoughlin [this message]
2009-02-13 17:36 ` Matthew Wilcox
2009-02-13 18:22   ` Chris Wright
2009-02-13 19:47     ` Chris Wright
2009-02-24  9:20   ` Zhao, Yu
2009-02-14  2:12 ` [PATCH] pci: add remove_id sysfs entry Chris Wright
2009-02-14  3:33   ` Greg KH
2009-02-24  1:26     ` Chris Wright
2009-02-24  2:17       ` [PATCH 1/2] PCI: add some sysfs ABI docs Chris Wright
2009-02-24  2:18         ` [PATCH 2/2] PCI: add remove_id sysfs entry Chris Wright
2009-02-24  3:47           ` Greg KH
2009-02-24  5:33             ` Chris Wright
2009-02-24  5:43               ` Greg KH
2009-02-24  3:47         ` [PATCH 1/2] PCI: add some sysfs ABI docs Greg KH
2009-02-24  5:08           ` Chris Wright
2009-02-24  5:50       ` [PATCH 1/2 v2] " Chris Wright
2009-02-24  5:52         ` [PATCH 2/2 v2] PCI: add remove_id sysfs entry Chris Wright
2009-02-26  5:37           ` Han, Weidong
2009-02-27  0:27             ` Chris Wright
2009-03-20  0:35           ` Jesse Barnes
2009-02-24 17:37         ` [PATCH 1/2 v2] PCI: add some sysfs ABI docs Jesse Barnes

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=1234544776.23746.87.camel@blaa \
    --to=markmc@redhat.com \
    --cc=allen.m.kay@intel.com \
    --cc=chrisw@redhat.com \
    --cc=donald.d.dugger@intel.com \
    --cc=greg@kroah.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-pci@vger.kernel.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: link
Be 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.