qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alex Williamson <alex.williamson@redhat.com>
To: "Roedel, Joerg" <Joerg.Roedel@amd.com>
Cc: Alexey Kardashevskiy <aik@au1.ibm.com>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	Paul Mackerras <pmac@au1.ibm.com>,
	qemu-devel <qemu-devel@nongnu.org>, chrisw <chrisw@sous-sol.org>,
	iommu <iommu@lists.linux-foundation.org>,
	Avi Kivity <avi@redhat.com>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
	"benve@cisco.com" <benve@cisco.com>
Subject: Re: [Qemu-devel] kvm PCI assignment & VFIO ramblings
Date: Wed, 24 Aug 2011 09:07:46 -0600	[thread overview]
Message-ID: <1314198467.2859.192.camel@bling.home> (raw)
In-Reply-To: <20110824085213.GB2079@amd.com>

On Wed, 2011-08-24 at 10:52 +0200, Roedel, Joerg wrote:
> On Tue, Aug 23, 2011 at 01:08:29PM -0400, Alex Williamson wrote:
> > On Tue, 2011-08-23 at 15:14 +0200, Roedel, Joerg wrote:
> 
> > > Handling it through fds is a good idea. This makes sure that everything
> > > belongs to one process. I am not really sure yet if we go the way to
> > > just bind plain groups together or if we create meta-groups. The
> > > meta-groups thing seems somewhat cleaner, though.
> > 
> > I'm leaning towards binding because we need to make it dynamic, but I
> > don't really have a good picture of the lifecycle of a meta-group.
> 
> In my view the life-cycle of the meta-group is a subrange of the
> qemu-instance's life-cycle.

I guess I mean the lifecycle of a super-group that's actually exposed as
a new group in sysfs.  Who creates it?  How?  How are groups dynamically
added and removed from the super-group?  The group merging makes sense
to me because it's largely just an optimization that qemu will try to
merge groups.  If it works, great.  If not, it manages them separately.
When all the devices from a group are unplugged, unmerge the group if
necessary.

> > > Putting the process to sleep (which would be uninterruptible) seems bad.
> > > The process would sleep until the guest releases the device-group, which
> > > can take days or months.
> > > The best thing (and the most intrusive :-) ) is to change PCI core to
> > > allow unbindings to fail, I think. But this probably further complicates
> > > the way to upstream VFIO...
> > 
> > Yes, it's not ideal but I think it's sufficient for now and if we later
> > get support for returning an error from release, we can set a timeout
> > after notifying the user to make use of that.  Thanks,
> 
> Ben had the idea of just forcing to hard-unplug this device from the
> guest. Thats probably the best way to deal with that, I think. VFIO
> sends a notification to qemu that the device is gone and qemu informs
> the guest in some way about it.

We need to try the polite method of attempting to hot unplug the device
from qemu first, which the current vfio code already implements.  We can
then escalate if it doesn't respond.  The current code calls abort in
qemu if the guest doesn't respond, but I agree we should also be
enforcing this at the kernel interface.  I think the problem with the
hard-unplug is that we don't have a good revoke mechanism for the mmio
mmaps.  Thanks,

Alex

  reply	other threads:[~2011-08-24 15:08 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1311983933.8793.42.camel@pasglop>
2011-07-30 18:20 ` [Qemu-devel] kvm PCI assignment & VFIO ramblings Alex Williamson
2011-07-30 23:54   ` Benjamin Herrenschmidt
2011-08-01 18:59     ` Alex Williamson
2011-08-02  2:00       ` Benjamin Herrenschmidt
2011-07-30 23:55   ` Benjamin Herrenschmidt
2011-08-02  8:28   ` David Gibson
2011-08-02 18:14     ` Alex Williamson
2011-08-02 18:35       ` Alex Williamson
2011-08-03  2:04         ` David Gibson
2011-08-03  3:44           ` Alex Williamson
2011-08-04  0:39             ` David Gibson
2011-08-08  8:28           ` Avi Kivity
2011-08-09 23:24             ` Alex Williamson
2011-08-10  2:48               ` Benjamin Herrenschmidt
2011-08-20 16:51                 ` Alex Williamson
2011-08-22  5:55                   ` David Gibson
2011-08-22 15:45                     ` Alex Williamson
2011-08-22 21:01                       ` Benjamin Herrenschmidt
2011-08-23 19:30                         ` Alex Williamson
2011-08-23 23:51                           ` Benjamin Herrenschmidt
2011-08-24  3:40                             ` Alexander Graf
2011-08-24 14:47                             ` Alex Williamson
2011-08-24  8:43                           ` Joerg Roedel
2011-08-24 14:56                             ` Alex Williamson
2011-08-25 11:01                               ` Roedel, Joerg
2011-08-23  2:38                       ` David Gibson
2011-08-23 16:23                         ` Alex Williamson
2011-08-23 23:41                           ` Benjamin Herrenschmidt
2011-08-24  3:36                             ` Alexander Graf
2011-08-22  6:30                   ` Avi Kivity
2011-08-22 10:46                     ` Joerg Roedel
2011-08-22 10:51                       ` Avi Kivity
2011-08-22 12:36                         ` Roedel, Joerg
2011-08-22 12:42                           ` Avi Kivity
2011-08-22 12:55                             ` Roedel, Joerg
2011-08-22 13:06                               ` Avi Kivity
2011-08-22 13:15                                 ` Roedel, Joerg
2011-08-22 13:17                                   ` Avi Kivity
2011-08-22 14:37                                     ` Roedel, Joerg
2011-08-22 20:53                     ` Benjamin Herrenschmidt
2011-08-22 17:25                   ` Joerg Roedel
2011-08-22 19:17                     ` Alex Williamson
2011-08-23 13:14                       ` Roedel, Joerg
2011-08-23 17:08                         ` Alex Williamson
2011-08-24  8:52                           ` Roedel, Joerg
2011-08-24 15:07                             ` Alex Williamson [this message]
2011-08-25 12:31                               ` Roedel, Joerg
2011-08-25 13:25                                 ` Alexander Graf
2011-08-26  4:24                                   ` David Gibson
2011-08-26  9:24                                     ` Roedel, Joerg
2011-08-28 13:14                                       ` Avi Kivity
2011-08-28 13:56                                         ` Joerg Roedel
2011-08-28 14:04                                           ` Avi Kivity
2011-08-30 16:14                                             ` Joerg Roedel
2011-08-22 21:03                     ` Benjamin Herrenschmidt
2011-08-23 13:18                       ` Roedel, Joerg
2011-08-23 23:35                         ` Benjamin Herrenschmidt
2011-08-24  8:53                           ` Roedel, Joerg
2011-08-22 20:29                   ` aafabbri
2011-08-22 20:49                     ` Benjamin Herrenschmidt
2011-08-22 21:38                       ` aafabbri
2011-08-22 21:49                         ` Benjamin Herrenschmidt
2011-08-23  0:52                           ` aafabbri
2011-08-23  6:54                             ` Benjamin Herrenschmidt
2011-08-23 11:09                               ` Joerg Roedel
2011-08-23 17:01                               ` Alex Williamson
2011-08-23 17:33                                 ` Aaron Fabbri
2011-08-23 18:01                                   ` Alex Williamson
2011-08-24  9:10                                   ` Joerg Roedel
2011-08-24 21:13                                     ` Alex Williamson
2011-08-25 10:54                                       ` Roedel, Joerg
2011-08-25 15:38                                         ` Don Dutile
2011-08-25 16:46                                           ` Roedel, Joerg
2011-08-25 17:20                                         ` Alex Williamson
2011-08-25 18:05                                           ` Joerg Roedel
2011-08-26 18:04                                             ` Alex Williamson
2011-08-30 16:13                                               ` Joerg Roedel
2011-08-23 11:04                             ` Joerg Roedel
2011-08-23 16:54                               ` aafabbri
2011-08-24  9:14                                 ` Roedel, Joerg
2011-08-24  9:33                                   ` David Gibson
2011-08-24 11:03                                     ` Roedel, Joerg
2011-08-26  4:20                                       ` David Gibson
2011-08-26  9:33                                         ` Roedel, Joerg
2011-08-26 14:07                                           ` Alexander Graf
2011-08-26 15:24                                             ` Joerg Roedel
2011-08-26 15:29                                               ` Alexander Graf
2011-08-26 17:52                                             ` Aaron Fabbri
2011-08-26 19:35                                               ` Chris Wright
2011-08-26 20:17                                                 ` Aaron Fabbri
2011-08-26 21:06                                                   ` Chris Wright
2011-08-30  1:29                                                   ` David Gibson
2011-08-04 10:35   ` Joerg Roedel

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=1314198467.2859.192.camel@bling.home \
    --to=alex.williamson@redhat.com \
    --cc=Joerg.Roedel@amd.com \
    --cc=aik@au1.ibm.com \
    --cc=avi@redhat.com \
    --cc=benve@cisco.com \
    --cc=chrisw@sous-sol.org \
    --cc=iommu@lists.linux-foundation.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=pmac@au1.ibm.com \
    --cc=qemu-devel@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).