From: "Michael S. Tsirkin" <mst@redhat.com>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Anshuman Khandual <khandual@linux.vnet.ibm.com>,
virtualization@lists.linux-foundation.org,
linux-kernel@vger.kernel.org, robh@kernel.org, aik@ozlabs.ru,
jasowang@redhat.com, joe@perches.com,
linuxppc-dev@lists.ozlabs.org, elfring@users.sourceforge.net,
david@gibson.dropbear.id.au
Subject: Re: [RFC] virtio: Use DMA MAP API for devices without an IOMMU
Date: Thu, 5 Apr 2018 21:34:54 +0300 [thread overview]
Message-ID: <20180405213042-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <1522940983.21446.205.camel@kernel.crashing.org>
On Fri, Apr 06, 2018 at 01:09:43AM +1000, Benjamin Herrenschmidt wrote:
> On Thu, 2018-04-05 at 17:54 +0300, Michael S. Tsirkin wrote:
> > On Thu, Apr 05, 2018 at 08:09:30PM +0530, Anshuman Khandual wrote:
> > > On 04/05/2018 04:26 PM, Anshuman Khandual wrote:
> > > > There are certian platforms which would like to use SWIOTLB based DMA API
> > > > for bouncing purpose without actually requiring an IOMMU back end. But the
> > > > virtio core does not allow such mechanism. Right now DMA MAP API is only
> > > > selected for devices which have an IOMMU and then the QEMU/host back end
> > > > will process all incoming SG buffer addresses as IOVA instead of simple
> > > > GPA which is the case for simple bounce buffers after being processed with
> > > > SWIOTLB API. To enable this usage, it introduces an architecture specific
> > > > function which will just make virtio core front end select DMA operations
> > > > structure.
> > > >
> > > > Signed-off-by: Anshuman Khandual <khandual@linux.vnet.ibm.com>
> > >
> > > + "Michael S. Tsirkin" <mst@redhat.com>
> >
> > I'm confused by this.
> >
> > static bool vring_use_dma_api(struct virtio_device *vdev)
> > {
> > if (!virtio_has_iommu_quirk(vdev))
> > return true;
> >
> >
> > Why doesn't setting VIRTIO_F_IOMMU_PLATFORM on the
> > hypervisor side sufficient?
>
> In this specific case, because that would make qemu expect an iommu,
> and there isn't one.
I think that you can set iommu_platform in qemu without an iommu.
> Anshuman, you need to provide more background here. I don't have time
> right now it's late, but explain about the fact that this is for a
> specific type of secure VM which has only a limited pool of (insecure)
> memory that can be shared with qemu, so all IOs need to bounce via that
> pool, which can be achieved by using swiotlb.
>
> Note: this isn't urgent, we can discuss alternative approaches, this is
> just to start the conversation.
>
> Cheers,
> Ben.
next prev parent reply other threads:[~2018-04-05 18:34 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-05 10:56 [RFC] virtio: Use DMA MAP API for devices without an IOMMU Anshuman Khandual
2018-04-05 11:14 ` Balbir Singh
2018-04-05 11:14 ` Balbir Singh
2018-04-05 11:28 ` Anshuman Khandual
2018-04-05 11:28 ` Anshuman Khandual
2018-04-05 14:39 ` Anshuman Khandual
2018-04-05 14:39 ` Anshuman Khandual
2018-04-05 14:54 ` Michael S. Tsirkin
2018-04-05 15:09 ` Benjamin Herrenschmidt
2018-04-05 15:09 ` Benjamin Herrenschmidt
2018-04-05 18:34 ` Michael S. Tsirkin [this message]
2018-04-05 21:18 ` Benjamin Herrenschmidt
2018-04-05 21:18 ` Benjamin Herrenschmidt
2018-04-06 2:53 ` Anshuman Khandual
2018-04-06 7:16 ` Christoph Hellwig
2018-04-06 7:16 ` Christoph Hellwig
2018-04-06 8:37 ` Benjamin Herrenschmidt
2018-04-06 8:37 ` Benjamin Herrenschmidt
2018-04-15 12:11 ` Christoph Hellwig
2018-04-15 12:11 ` Christoph Hellwig
2018-04-18 3:17 ` Anshuman Khandual
2018-04-18 3:17 ` Anshuman Khandual
2018-04-18 16:20 ` Michael S. Tsirkin
2018-04-18 16:20 ` Michael S. Tsirkin
2018-05-01 16:34 ` Ram Pai
2018-04-06 2:53 ` Anshuman Khandual
2018-04-05 18:34 ` Michael S. Tsirkin
2018-04-05 14:54 ` Michael S. Tsirkin
-- strict thread matches above, loose matches on Subject: below --
2018-04-05 10:56 Anshuman Khandual
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=20180405213042-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=aik@ozlabs.ru \
--cc=benh@kernel.crashing.org \
--cc=david@gibson.dropbear.id.au \
--cc=elfring@users.sourceforge.net \
--cc=jasowang@redhat.com \
--cc=joe@perches.com \
--cc=khandual@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=robh@kernel.org \
--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 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.