From: Peter Xu <peterx@redhat.com>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: Alexey Kardashevskiy <aik@ozlabs.ru>,
eric.auger@redhat.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH for-2.11] vfio: Fix vfio-kvm group registration
Date: Wed, 6 Dec 2017 15:20:56 +0800 [thread overview]
Message-ID: <20171206072056.GD2797@xz-mi> (raw)
In-Reply-To: <20171205183039.5fe06906@t450s.home>
On Tue, Dec 05, 2017 at 06:30:39PM -0700, Alex Williamson wrote:
> On Wed, 6 Dec 2017 12:02:01 +1100
> Alexey Kardashevskiy <aik@ozlabs.ru> wrote:
>
> > On 06/12/17 08:09, Alex Williamson wrote:
> > > Commit 8c37faa475f3 ("vfio-pci, ppc64/spapr: Reorder group-to-container
> > > attaching") moved registration of groups with the vfio-kvm device from
> > > vfio_get_group() to vfio_connect_container(), but it missed the case
> > > where a group is attached to an existing container and takes an early
> > > exit. Perhaps this is a less common case on ppc64/spapr, but on x86
> > > (without viommu) all groups are connected to the same container and
> > > thus only the first group gets registered with the vfio-kvm device.
> > > This becomes a problem if we then hot-unplug the devices associated
> > > with that first group and we end up with KVM being misinformed about
> > > any vfio connections that might remain. Fix by including the call to
> > > vfio_kvm_device_add_group() in this early exit path.
> > >
> > > Fixes: 8c37faa475f3 ("vfio-pci, ppc64/spapr: Reorder group-to-container attaching")
> > > Cc: qemu-stable@nongnu.org # qemu-2.10+
> > > Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
> > > ---
> > >
> > > This bug also existed in QEMU 2.10, but I think the fix is sufficiently
> > > obvious (famous last words) to propose for 2.11 at this late date. If
> > > the first group is hot unplugged then KVM may revert to code emulation
> > > that assumes no non-coherent DMA is present on some systems. Also for
> > > KVMGT, if the vGPU is not the first device registered, then the
> > > notifier to enable linkages to KVM would not be called. Please review.
> >
> > For what it is worth
> >
> > Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru>
>
> Thanks!
>
> > Sorry for the breakage...
> >
> > One question - how was this discovered? I'd love to set up a test
> > environment on my old thinkpad x230 if possible.
>
> Assign two devices from separate iommu groups, hot unplug the first
> device, followed by the second device. The second unplug will trigger:
>
> qemu-kvm: Failed to remove group ## from KVM VFIO device: No such file or directory
I reproduced this with command line:
bin=x86_64-softmmu/qemu-system-x86_64
$bin -machine q35,kernel-irqchip=split \
-enable-kvm -m 4G -nographic \
-monitor telnet::6666,server,nowait \
-device ioh3420,multifunction=on,bus=pcie.0,id=port0,chassis=0 \
-device ioh3420,bus=pcie.0,id=port1,chassis=1 \
-netdev user,id=user.0,hostfwd=tcp::5555-:22 \
-device e1000,netdev=user.0 \
-device vfio-pci,host=05:00.0,id=vfio0,bus=port0 \
-device vfio-pci,host=05:00.1,id=vfio1,bus=port1 \
/home/images/fedora-25.qcow2
The patch fixes it, so:
Reviewed-by: Peter Xu <peterx@redhat.com>
Tested-by: Peter Xu <peterx@redhat.com>
Thanks,
--
Peter Xu
next prev parent reply other threads:[~2017-12-06 7:21 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-05 21:09 [Qemu-devel] [PATCH for-2.11] vfio: Fix vfio-kvm group registration Alex Williamson
2017-12-06 1:02 ` Alexey Kardashevskiy
2017-12-06 1:30 ` Alex Williamson
2017-12-06 7:20 ` Peter Xu [this message]
2017-12-07 0:16 ` Alexey Kardashevskiy
2018-01-18 9:29 ` Alexey Kardashevskiy
2018-01-18 22:15 ` Alex Williamson
2018-01-19 0:35 ` Alexey Kardashevskiy
2017-12-06 2:44 ` Liu, Yi L
2017-12-06 3:12 ` Alex Williamson
2017-12-06 4:31 ` Liu, Yi L
2017-12-06 8:14 ` Auger Eric
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=20171206072056.GD2797@xz-mi \
--to=peterx@redhat.com \
--cc=aik@ozlabs.ru \
--cc=alex.williamson@redhat.com \
--cc=eric.auger@redhat.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).