Re: [RFC PATCH kvmtool 00/15] Add virtio-iommu

2017-05-22 Thread Jean-Philippe Brucker
Hi Bharat,

On 22/05/17 09:26, Bharat Bhushan wrote:
> Hi Jean,
> 
> I am trying to run and review on my side but I see Linux patches are not with 
> latest kernel version.
> Will it be possible for you to share your Linux and kvmtool git repository 
> reference?

Please find linux and kvmtool patches at the following repos:

git://linux-arm.org/kvmtool-jpb.git virtio-iommu/base
git://linux-arm.org/linux-jpb.git virtio-iommu/base

Note that these branches are unstable, subject to fixes and rebase. I'll
try to keep them in sync with upstream.

Thanks,
Jean
___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


RE: [RFC PATCH kvmtool 00/15] Add virtio-iommu

2017-05-22 Thread Bharat Bhushan
Hi Jean,

I am trying to run and review on my side but I see Linux patches are not with 
latest kernel version.
Will it be possible for you to share your Linux and kvmtool git repository 
reference?

Thanks
-Bharat

> -Original Message-
> From: virtualization-boun...@lists.linux-foundation.org
> [mailto:virtualization-boun...@lists.linux-foundation.org] On Behalf Of Jean-
> Philippe Brucker
> Sent: Saturday, April 08, 2017 12:55 AM
> To: iommu@lists.linux-foundation.org; k...@vger.kernel.org;
> virtualizat...@lists.linux-foundation.org; virtio-...@lists.oasis-open.org
> Cc: cd...@linaro.org; lorenzo.pieral...@arm.com; m...@redhat.com;
> marc.zyng...@arm.com; j...@8bytes.org; will.dea...@arm.com;
> robin.mur...@arm.com
> Subject: [RFC PATCH kvmtool 00/15] Add virtio-iommu
> 
> Implement a virtio-iommu device and translate DMA traffic from vfio and
> virtio devices. Virtio needed some rework to support scatter-gather accesses
> to vring and buffers at page granularity. Patch 3 implements the actual 
> virtio-
> iommu device.
> 
> Adding --viommu on the command-line now inserts a virtual IOMMU in front
> of all virtio and vfio devices:
> 
>   $ lkvm run -k Image --console virtio -p console=hvc0 \
>  --viommu --vfio 0 --vfio 4 --irqchip gicv3-its
>   ...
>   [2.998949] virtio_iommu virtio0: probe successful
>   [3.007739] virtio_iommu virtio1: probe successful
>   ...
>   [3.165023] iommu: Adding device :00:00.0 to group 0
>   [3.536480] iommu: Adding device 10200.virtio to group 1
>   [3.553643] iommu: Adding device 10600.virtio to group 2
>   [3.570687] iommu: Adding device 10800.virtio to group 3
>   [3.627425] iommu: Adding device 10a00.virtio to group 4
>   [7.823689] iommu: Adding device :00:01.0 to group 5
>   ...
> 
> Patches 13 and 14 add debug facilities. Some statistics are gathered for each
> address space and can be queried via the debug builtin:
> 
>   $ lkvm debug -n guest-1210 --iommu stats
>   iommu 0 "viommu-vfio"
> kicks 1255
> requests  1256
> ioas 1
>   maps7
>   unmaps  4
>   resident2101248
> ioas 6
>   maps623
>   unmaps  620
>   resident16384
>   iommu 1 "viommu-virtio"
> kicks 11426
> requests  11431
> ioas 2
>   maps2836
>   unmaps  2835
>   resident8192
>   accesses2836
>   ...
> 
> This is based on the VFIO patchset[1], itself based on Andre's ITS work.
> The VFIO bits have only been tested on a software model and are unlikely to
> work on actual hardware, but I also tested virtio on an ARM Juno.
> 
> [1] http://www.spinics.net/lists/kvm/msg147624.html
> 
> Jean-Philippe Brucker (15):
>   virtio: synchronize virtio-iommu headers with Linux
>   FDT: (re)introduce a dynamic phandle allocator
>   virtio: add virtio-iommu
>   Add a simple IOMMU
>   iommu: describe IOMMU topology in device-trees
>   irq: register MSI doorbell addresses
>   virtio: factor virtqueue initialization
>   virtio: add vIOMMU instance for virtio devices
>   virtio: access vring and buffers through IOMMU mappings
>   virtio-pci: translate MSIs with the virtual IOMMU
>   virtio: set VIRTIO_F_IOMMU_PLATFORM when necessary
>   vfio: add support for virtual IOMMU
>   virtio-iommu: debug via IPC
>   virtio-iommu: implement basic debug commands
>   virtio: use virtio-iommu when available
> 
>  Makefile  |   3 +
>  arm/gic.c |   4 +
>  arm/include/arm-common/fdt-arch.h |   2 +-
>  arm/pci.c |  49 ++-
>  builtin-debug.c   |   8 +-
>  builtin-run.c |   2 +
>  fdt.c |  35 ++
>  include/kvm/builtin-debug.h   |   6 +
>  include/kvm/devices.h |   4 +
>  include/kvm/fdt.h |  20 +
>  include/kvm/iommu.h   | 105 +
>  include/kvm/irq.h |   3 +
>  include/kvm/kvm-config.h  |   1 +
>  include/kvm/vfio.h|   2 +
>  include/kvm/virtio-iommu.h|  15 +
>  include/kvm/virtio-mmio.h |   1 +
>  include/kvm/virtio-pci.h  |   2 +
>  include/kvm/virtio.h  | 137 +-
>  include/linux/virtio_config.h |  74 
>  include/linux/virtio_ids.h|   4 +
>  include/linux/virtio_iommu.h  | 142 ++
>  iommu.c   | 240 ++
>  irq.c |  35 ++
>  kvm-ipc.c |  43 +-
>  mips/include/kvm/fdt-arch.h   |   2 +-
>  powerpc/include/kvm/fdt-arch.h|   2 +-
>  vfio.c| 281 +++-
>  virtio/9p.c   |   7 +-
>