qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC 0/8] VIRTIO-IOMMU device


From: Jason Wang
Subject: Re: [Qemu-devel] [RFC 0/8] VIRTIO-IOMMU device
Date: Wed, 7 Jun 2017 17:17:13 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1



On 2017年06月07日 16:35, Eric Auger wrote:
This series implements the virtio-iommu device. This is a proof
of concept based on the virtio-iommu specification written by
Jean-Philippe Brucker [1]. This was tested with a guest using
the virtio-iommu driver [2] and exposed with a virtio-net-pci
using dma ops.

The device gets instantiated using the "-device virtio-iommu-device"
option. It currently works with ARM virt machine only as the machine
must handle the dt binding between the virtio-mmio "iommu" node and
the PCI host bridge node. ACPI booting is not yet supported.

This should allow to start some benchmarking activities against
pure emulated IOMMU (especially ARM SMMU).

Yes, it would be also interesting to compare it with intel IOMMU. Actually the core function is similar to the subset of intel one with CM enabled. Since each map and unmap requires a command, it would be very slow for dynamic mappings. I wonder whether or not we can do any optimization on this.

Thanks


Best Regards

Eric

This series can be found at:
https://github.com/eauger/qemu/tree/virtio-iommu-rfcv1

References:
[1] [RFC 0/3] virtio-iommu: a paravirtualized IOMMU,
[2] [RFC PATCH linux] iommu: Add virtio-iommu driver
[3] [RFC PATCH kvmtool 00/15] Add virtio-iommu

Eric Auger (8):
   update-linux-headers: import virtio_iommu.h
   linux-headers: Update for virtio-iommu
   virtio_iommu: add skeleton
   virtio-iommu: Decode the command payload
   virtio_iommu: Add the iommu regions
   virtio-iommu: Implement the translation and commands
   hw/arm/virt: Add 2.10 machine type
   hw/arm/virt: Add virtio-iommu the virt board

  hw/arm/virt.c                                 | 116 ++++-
  hw/virtio/Makefile.objs                       |   1 +
  hw/virtio/trace-events                        |  14 +
  hw/virtio/virtio-iommu.c                      | 623 ++++++++++++++++++++++++++
  include/hw/arm/virt.h                         |   5 +
  include/hw/virtio/virtio-iommu.h              |  60 +++
  include/standard-headers/linux/virtio_ids.h   |   1 +
  include/standard-headers/linux/virtio_iommu.h | 142 ++++++
  linux-headers/linux/virtio_iommu.h            |   1 +
  scripts/update-linux-headers.sh               |   3 +
  10 files changed, 957 insertions(+), 9 deletions(-)
  create mode 100644 hw/virtio/virtio-iommu.c
  create mode 100644 include/hw/virtio/virtio-iommu.h
  create mode 100644 include/standard-headers/linux/virtio_iommu.h
  create mode 100644 linux-headers/linux/virtio_iommu.h





reply via email to

[Prev in Thread] Current Thread [Next in Thread]