[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC] virtio: convert to use DMA api
From: |
Cornelia Huck |
Subject: |
Re: [Qemu-devel] [RFC] virtio: convert to use DMA api |
Date: |
Mon, 23 Nov 2015 10:36:45 +0100 |
On Mon, 23 Nov 2015 15:41:11 +0800
Jason Wang <address@hidden> wrote:
> Currently, all virtio devices bypass IOMMU completely. This is because
> address_space_memory is assumed and used during DMA emulation. This
> patch converts the virtio core API to use DMA API. This idea is
>
> - introducing a new transport specific helper to query the dma address
> space. (only pci version is implemented).
> - query and use this address space during virtio device guest memory
> accessing
>
> With this virtiodevices will not bypass IOMMU anymore. Little tested with
> intel_iommu=on with virtio guest DMA series posted in
> https://lkml.org/lkml/2015/10/28/64.
>
> TODO:
> - Feature bit for this
I'm still not convinced about that feature bit stuff. It just feels
wrong to use a mechanism that conveys negotiable device features to
configure what is basically a platform/hypervisor feature. I'd rather
see this out of the virtio layer and into the pci layer.
> - Implement this for all transports
Is it OK to just keep a fallback to today's implementation for
transports for which the iommu concept doesn't make sense and that will
always have an identity mapping?
>
> Signed-off-by: Jason Wang <address@hidden>
> ---
> hw/block/virtio-blk.c | 2 +-
> hw/char/virtio-serial-bus.c | 2 +-
> hw/scsi/virtio-scsi.c | 2 +-
> hw/virtio/virtio-pci.c | 9 +++++++++
> hw/virtio/virtio.c | 36 +++++++++++++++++++--------------
> include/hw/virtio/virtio-access.h | 42
> +++++++++++++++++++++++++++++----------
> include/hw/virtio/virtio-bus.h | 1 +
> include/hw/virtio/virtio.h | 2 +-
> 8 files changed, 67 insertions(+), 29 deletions(-)
FWIW, this doesn't seem to break for the s390-ccw-virtio machine (only
snifftested).