From: David Gibson <dwg@au1.ibm.com>
To: Avi Kivity <avi@redhat.com>
Cc: Anthony Liguori <aliguori@us.ibm.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
joerg.roedel@amd.com,
Paul 'Rusty' Russell <rusty@rustcorp.com.au>,
qemu-devel@nongnu.org, agraf@suse.de, kraxel@redhat.com,
eduard.munteanu@linux360.ro, rth@twiddle.net
Subject: Re: [Qemu-devel] [PATCH 1/9] Add stub functions for PCI device models to do PCI DMA
Date: Thu, 20 Oct 2011 13:58:53 +1100 [thread overview]
Message-ID: <20111020025853.GA16619@truffala.fritz.box> (raw)
In-Reply-To: <4E9E93F7.8080400@redhat.com>
On Wed, Oct 19, 2011 at 11:10:15AM +0200, Avi Kivity wrote:
> On 10/18/2011 03:46 AM, David Gibson wrote:
> > On Sun, Oct 16, 2011 at 03:15:53PM +0200, Avi Kivity wrote:
> > > On 10/14/2011 04:14 AM, David Gibson wrote:
> > > > > Virtio is a very, very special case. virtio requires coherent RAM access.
> > > >
> > > > Right. Virtio's access to memory is *not* emulated PCI DMA, it's
> > > > god-like hypervisor access to guest system memory. It should
> > > > correctly bypass any IOMMU, and so should remain as
> > > > cpu_physical_memory_rw() or the atomic accessors, rather than being
> > > > converted to this new API.
> > >
> > > virtio should definitely not bypass an iommu.
> >
> > So, I just had a chat with Rusty about this. Perhaps it shouldn't,
> > but it does. The spec is in terms of guest physical addresses, not
> > bus/DMA addresses, and more to the point the Linux driver does *not*
> > do the necessary dma_map() and unmap operations to treat this as a PCI
> > DMA. So like it or not, god-like hypervisor access rather than
> > emulated PCI DMA is what it does.
>
> Wow, how did we manage to break virtio in so many different ways?
>
> Is there a way to unbreak it?
Yes, using a feature bit.
> On x86 it will continue to work if we
> rewrite the spec in terms of pci dma, what about non-x86?
No, anything with a non-optional IOMMU will break horribly. That's
why we need a feature bit.
> > > A guest may assign a
> > > virtio device to nested guests, and would wish it confined by the
> > > emulated iommu.
> >
> > Well, that would be nice, but it can't be done. It could be fixed,
> > but it would be an incompatible change so it would need a new feature
> > bit corresponding changes in the Linux driver to do the dma map/unmap
> > if it accepts the "respect IOMMU" feature.
>
> Needs to be done IMO.
Well, sure, but my point is that I'm not volunteering for it. Someone
who actually needs the feature can do the work.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
next prev parent reply other threads:[~2011-10-20 2:59 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-05 4:34 [Qemu-devel] [0/9] Preliminary work for IOMMU emulation support; the easy bits (v2) David Gibson
2011-09-05 4:34 ` [Qemu-devel] [PATCH 1/9] Add stub functions for PCI device models to do PCI DMA David Gibson
2011-10-02 10:25 ` Michael S. Tsirkin
2011-10-02 10:29 ` Avi Kivity
2011-10-02 10:52 ` Michael S. Tsirkin
2011-10-02 10:58 ` Avi Kivity
2011-10-02 11:17 ` Michael S. Tsirkin
2011-10-02 11:28 ` Alexander Graf
2011-10-02 11:43 ` Michael S. Tsirkin
2011-10-02 12:01 ` Avi Kivity
2011-10-02 12:14 ` Michael S. Tsirkin
2011-10-02 12:26 ` Avi Kivity
2011-10-03 13:17 ` Anthony Liguori
2011-10-12 3:09 ` David Gibson
2011-10-12 9:12 ` Michael S. Tsirkin
2011-10-14 2:14 ` David Gibson
2011-10-16 12:50 ` Michael S. Tsirkin
2011-10-16 13:15 ` Avi Kivity
2011-10-18 1:46 ` David Gibson
2011-10-19 0:31 ` Rusty Russell
2011-10-19 1:22 ` Michael S. Tsirkin
2011-10-19 9:10 ` Avi Kivity
2011-10-20 2:58 ` David Gibson [this message]
2011-10-12 3:07 ` David Gibson
2011-10-12 7:22 ` Michael S. Tsirkin
2011-10-12 15:43 ` David Gibson
2011-10-12 15:45 ` David Gibson
2011-10-12 3:11 ` David Gibson
2011-10-12 8:44 ` Michael S. Tsirkin
2011-10-12 9:08 ` Gerd Hoffmann
2011-10-03 13:10 ` Anthony Liguori
2011-09-05 4:34 ` [Qemu-devel] [PATCH 2/9] rtl8139: Use PCI DMA stub functions David Gibson
2011-09-05 4:34 ` [Qemu-devel] [PATCH 3/9] eepro100: " David Gibson
2011-10-02 11:45 ` Michael S. Tsirkin
2011-10-14 2:15 ` David Gibson
2011-09-05 4:34 ` [Qemu-devel] [PATCH 4/9] ac97: " David Gibson
2011-09-05 4:35 ` [Qemu-devel] [PATCH 5/9] es1370: " David Gibson
2011-09-05 4:35 ` [Qemu-devel] [PATCH 6/9] e1000: " David Gibson
2011-09-05 4:35 ` [Qemu-devel] [PATCH 7/9] lsi53c895a: " David Gibson
2011-09-05 4:35 ` [Qemu-devel] [PATCH 8/9] pcnet-pci: " David Gibson
2011-09-05 4:35 ` [Qemu-devel] [PATCH 9/9] intel-hda: " David Gibson
2011-09-16 6:58 ` [Qemu-devel] [0/9] Preliminary work for IOMMU emulation support; the easy bits (v2) David Gibson
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=20111020025853.GA16619@truffala.fritz.box \
--to=dwg@au1.ibm.com \
--cc=agraf@suse.de \
--cc=aliguori@us.ibm.com \
--cc=avi@redhat.com \
--cc=eduard.munteanu@linux360.ro \
--cc=joerg.roedel@amd.com \
--cc=kraxel@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
--cc=rusty@rustcorp.com.au \
/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.