Re: [RFC PATCH kvmtool 00/15] Add virtio-iommu
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
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 +- >