From: "Michael S. Tsirkin" <mst@redhat.com>
To: Andy Lutomirski <luto@amacapital.net>
Cc: "linux-s390@vger.kernel.org" <linux-s390@vger.kernel.org>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Linux Virtualization <virtualization@lists.linux-foundation.org>,
Christian Borntraeger <borntraeger@de.ibm.com>,
Paolo Bonzini <pbonzini@redhat.com>,
"linux390@de.ibm.com" <linux390@de.ibm.com>
Subject: Re: [PATCH v5 2/3] virtio_pci: Use the DMA API for virtqueues when possible
Date: Wed, 1 Oct 2014 09:42:35 +0300 [thread overview]
Message-ID: <20141001064235.GA31859@redhat.com> (raw)
In-Reply-To: <CALCETrVBmTPg1J6nt8EXAmtvazh_uXRzYRSvvA4-Pdrj8t=VpQ@mail.gmail.com>
On Tue, Sep 30, 2014 at 08:48:45AM -0700, Andy Lutomirski wrote:
> On Tue, Sep 30, 2014 at 8:38 AM, Michael S. Tsirkin <mst@redhat.com> wrote:
> > I thought hard about this, I think we are better off waiting till the
> > next release: there's a chance QEMU will have IOMMU support for KVM x86
> > then, and this will make it easier to judge which way does the wind
> > blow.
> >
> > It seems that we lose nothing substantial keeping the status quo a bit longer,
> > but if we make an incompatible change in guests now we might
> > create nasty compatibility headaches going forward.
> >
>
> I would argue for the opposite approach. Having a QEMU release that
> supports an IOMMU on x86 and exposes a commonly used PCI device that
> bypasses that IOMMU without any explicit notification to the guest
> (and specification!) that this is happening is IMO insane. Once that
> happens, we'll have to address the nasty case on both x86 and PPC.
> This will suck.
>
> If we accept the guest change and make sure that there is never a QEMU
> release that has a visible IOMMU cheat on any arch other than PPC,
> then at least the damage will be contained.
Wrt QEMU this sounds reasonable. Wrt guest, deferring guest changes
a bit, until we have a better idea about how the host side behaves
sounds better to me than saying "this is how guests will behave,
let the host adapt to that".
> x86 will be worse than PPC, too: the special case needed to support
> QEMU 2.2 with IOMMU and virtio enabled with a Xen guest will be fairly
> large and disgusting and will only exist to support something that IMO
> should never have existed in the first place.
>
> PPC at least avoids *that* problem by virtue of not having Xen
> paravirt. (And please don't add Xen paravirt to PPC -- x86 is trying
> to kill it off, but this is a 5-10 year project.)
>
> [..., reordered]
>
> >>
> >> Except that I think that PPC is the only platform on which QEMU's code
> >> actually bypasses any IOMMU. Unless we've all missed something, there
> >> is no QEMU release that will put a virtio device behind an IOMMU on
> >> any platform other than PPC.
> >
> > I think that is true but it seems that this will be true for x86 for
> > QEMU 2.2 unless we make some changes there.
> > Which we might not have the time for since 2.2 is feature frozen
> > from tomorrow.
> > Maybe we should disable the IOMMU in 2.2, this is worth considering.
> >
>
> Please do.
Or at least disable it just if there are virtio devices.
> Also, try booting this 2.2 QEMU candidate with nested virtualization
> on. Then bind vfio to a virtio-pci device and watch the guest get
> corrupted. QEMU will blame Linux for incorrectly programming the
> hardware, and Linux will blame QEMU for its blatant violation of the
> ACPI spec. Given that this is presumably most of the point of adding
> IOMMU support, it seems like a terrible idea to let code like that
> into the wild.
>
> If this happens, Linux may also end up needing a quirk to prevent vfio
> from binding to QEMU 2.2's virtio-pci devices.
>
> --Andy
This specific item wouldn't worry me too much.
--
MST
next prev parent reply other threads:[~2014-10-01 6:42 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-17 5:22 [PATCH v5 0/3] virtio: Use the DMA API when appropriate Andy Lutomirski
2014-09-17 5:22 ` [PATCH v5 1/3] virtio_ring: Support DMA APIs if requested Andy Lutomirski
2014-09-17 5:22 ` [PATCH v5 2/3] virtio_pci: Use the DMA API for virtqueues when possible Andy Lutomirski
2014-09-17 12:02 ` Benjamin Herrenschmidt
2014-09-17 14:16 ` Michael S. Tsirkin
2014-09-17 16:07 ` Andy Lutomirski
2014-09-17 16:49 ` David Woodhouse
2014-09-19 21:28 ` Benjamin Herrenschmidt
2014-09-19 21:33 ` Benjamin Herrenschmidt
2014-09-20 5:59 ` Andy Lutomirski
2014-09-21 5:03 ` Benjamin Herrenschmidt
2014-09-21 5:05 ` Benjamin Herrenschmidt
2014-09-21 5:48 ` Andy Lutomirski
2014-09-21 6:01 ` David Woodhouse
2014-09-24 21:41 ` Andy Lutomirski
2014-09-24 21:50 ` Benjamin Herrenschmidt
2014-09-24 21:59 ` Andy Lutomirski
2014-09-24 22:04 ` Benjamin Herrenschmidt
2014-09-24 22:15 ` Andy Lutomirski
2014-09-24 22:38 ` Benjamin Herrenschmidt
2014-09-24 22:49 ` Andy Lutomirski
2014-09-19 21:31 ` Benjamin Herrenschmidt
2014-09-29 18:55 ` Andy Lutomirski
2014-09-29 20:49 ` Benjamin Herrenschmidt
2014-09-29 20:55 ` Andy Lutomirski
2014-09-29 21:06 ` Benjamin Herrenschmidt
2014-09-30 15:38 ` Michael S. Tsirkin
2014-09-30 15:48 ` Andy Lutomirski
2014-09-30 16:19 ` Andy Lutomirski
2014-09-30 17:53 ` Konrad Rzeszutek Wilk
2014-09-30 18:01 ` Andy Lutomirski
2014-10-02 16:36 ` Konrad Rzeszutek Wilk
2014-10-01 6:42 ` Michael S. Tsirkin [this message]
2014-09-30 15:53 ` Paolo Bonzini
2014-10-01 7:36 ` Michael S. Tsirkin
2014-09-30 20:05 ` Andy Lutomirski
2014-10-06 9:59 ` Christian Borntraeger
2014-10-06 10:48 ` Benjamin Herrenschmidt
2014-09-17 16:09 ` Ira W. Snyder
2014-09-17 16:15 ` Andy Lutomirski
2014-09-17 5:22 ` [PATCH v5 3/3] virtio_net: Stop doing DMA from the stack Andy Lutomirski
2014-09-19 18:25 ` [PATCH v5 0/3] virtio: Use the DMA API when appropriate Konrad Rzeszutek Wilk
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=20141001064235.GA31859@redhat.com \
--to=mst@redhat.com \
--cc=benh@kernel.crashing.org \
--cc=borntraeger@de.ibm.com \
--cc=konrad.wilk@oracle.com \
--cc=linux-s390@vger.kernel.org \
--cc=linux390@de.ibm.com \
--cc=luto@amacapital.net \
--cc=pbonzini@redhat.com \
--cc=virtualization@lists.linux-foundation.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