From: Auger Eric <eric.auger@redhat.com>
To: Bharat Bhushan <bharat.bhushan@nxp.com>,
"eric.auger.pro@gmail.com" <eric.auger.pro@gmail.com>,
"peter.maydell@linaro.org" <peter.maydell@linaro.org>,
"alex.williamson@redhat.com" <alex.williamson@redhat.com>,
"mst@redhat.com" <mst@redhat.com>,
"qemu-arm@nongnu.org" <qemu-arm@nongnu.org>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
"jean-philippe.brucker@arm.com" <jean-philippe.brucker@arm.com>
Cc: "will.deacon@arm.com" <will.deacon@arm.com>,
"robin.murphy@arm.com" <robin.murphy@arm.com>,
"kevin.tian@intel.com" <kevin.tian@intel.com>,
"marc.zyngier@arm.com" <marc.zyngier@arm.com>,
"christoffer.dall@linaro.org" <christoffer.dall@linaro.org>,
"drjones@redhat.com" <drjones@redhat.com>,
"wei@redhat.com" <wei@redhat.com>,
"tn@semihalf.com" <tn@semihalf.com>, Peter Xu <peterx@redhat.com>
Subject: Re: [Qemu-devel] [RFC v2 0/8] VIRTIO-IOMMU device
Date: Fri, 9 Jun 2017 14:15:10 +0200 [thread overview]
Message-ID: <445b60fe-a0da-ee93-fab3-be88fe269846@redhat.com> (raw)
In-Reply-To: <AM5PR0401MB2545C0E76C4BE6F82FE376D09ACE0@AM5PR0401MB2545.eurprd04.prod.outlook.com>
Hi,
On 09/06/2017 13:30, Bharat Bhushan wrote:
> Hi Eric,
>
>> -----Original Message-----
>> From: Auger Eric [mailto:eric.auger@redhat.com]
>> Sent: Friday, June 09, 2017 12:14 PM
>> To: Bharat Bhushan <bharat.bhushan@nxp.com>;
>> eric.auger.pro@gmail.com; peter.maydell@linaro.org;
>> alex.williamson@redhat.com; mst@redhat.com; qemu-arm@nongnu.org;
>> qemu-devel@nongnu.org; jean-philippe.brucker@arm.com
>> Cc: will.deacon@arm.com; robin.murphy@arm.com; kevin.tian@intel.com;
>> marc.zyngier@arm.com; christoffer.dall@linaro.org; drjones@redhat.com;
>> wei@redhat.com; tn@semihalf.com
>> Subject: Re: [RFC v2 0/8] VIRTIO-IOMMU device
>>
>> Hi Bharat,
>>
>> On 09/06/2017 08:16, Bharat Bhushan wrote:
>>> Hi Eric,
>>>
>>>> -----Original Message-----
>>>> From: Eric Auger [mailto:eric.auger@redhat.com]
>>>> Sent: Wednesday, June 07, 2017 9:31 PM
>>>> To: eric.auger.pro@gmail.com; eric.auger@redhat.com;
>>>> peter.maydell@linaro.org; alex.williamson@redhat.com;
>> mst@redhat.com;
>>>> qemu-arm@nongnu.org; qemu-devel@nongnu.org; jean-
>>>> philippe.brucker@arm.com
>>>> Cc: will.deacon@arm.com; robin.murphy@arm.com;
>> kevin.tian@intel.com;
>>>> marc.zyngier@arm.com; christoffer.dall@linaro.org;
>>>> drjones@redhat.com; wei@redhat.com; tn@semihalf.com; Bharat
>> Bhushan
>>>> <bharat.bhushan@nxp.com>
>>>> Subject: [RFC v2 0/8] VIRTIO-IOMMU device
>>>>
>>>> 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.
For those who may play with the device, this was tested with a
virtio-net-pci device using the following command:
-device
virtio-net-pci,netdev=tap0,mac=<MAC>,iommu_platform,disable-modern=off,disable-legacy=on
\
I tried to run the guest using a virtio-blk-pci device using
-device
virtio-blk-pci,scsi=off,drive=<>,iommu_platform=off,disable-modern=off,disable-legacy=on,werror=stop,rerror=stop
\
and the guest does *not* boot whereas it does without any iommu.
However I am not sure the issue is related to the actual virtual iommu
device as I have the exact same issue with vsmmuv3 emulated device (This
was originally reported by Tomasz). So the issue may come from the
infrastructure around. To be further investigated ...
Thanks
Eric
>>>>
>>>> This should allow to start some benchmarking activities against pure
>>>> emulated IOMMU (especially ARM SMMU).
>>>
>>> I am testing this on ARM64 and see below continuous error prints:
>>>
>>> virtio_iommu_translate sid=8 is not known!!
>>> virtio_iommu_translate sid=8 is not known!!
>>> virtio_iommu_translate sid=8 is not known!!
>>> virtio_iommu_translate sid=8 is not known!!
>>> virtio_iommu_translate sid=8 is not known!!
>>> virtio_iommu_translate sid=8 is not known!!
>>> virtio_iommu_translate sid=8 is not known!!
>>> virtio_iommu_translate sid=8 is not known!!
>>> virtio_iommu_translate sid=8 is not known!!
>>> virtio_iommu_translate sid=8 is not known!!
>>>
>>>
>>> Also in guest I do not see device-tree node with virtio-iommu.
>> do you mean the virtio-mmio with #iommu-cells property?
>>
>> This one is created statically by virt machine. I would be surprised if it were
>> not there. Are you using the virt = virt2.10 machine. Machines before do not
>> support its instantiation.
>>
>> Please can you add a printf in hw/arm/virt.c create_virtio_mmio() at the
>> moment when this node is created. Also you can add a printf in
>> bind_virtio_iommu_device() to make sure the binding with the PCI host
>> bridge is added on machine init done.
>>
>> Also worth to check, CONFIG_VIRTIO_IOMMU=y on guest side.
>
> It works on my side. The driver config was disabled and also I was using guest kernel which was not have deferred-probing. Now after fixing it works on my side
> I placed some prints to see dma-map are mapping regions in virtio-iommu, it uses emulated iommu.
>
> I will continue to add VFIO support now on this and more testing !!
>
> Thanks
> -Bharat
>
>>
>> Thanks
>>
>> Eric
>>
>>> I am using qemu-tree you mentioned below and iommu-driver patches
>> published by Jean-P.
>>> Qemu command line have additional ""-device virtio-iommu-device". What
>> I am missing ?
>>
>>
>>>
>>> Thanks
>>> -Bharat
>>>
>>>>
>>>> Best Regards
>>>>
>>>> Eric
>>>>
>>>> This series can be found at:
>>>> https://github.com/eauger/qemu/tree/virtio-iommu-rfcv2
>>>>
>>>> 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
>>>>
>>>> History:
>>>> v1 -> v2:
>>>> - fix redifinition of viommu_as typedef
>>>>
>>>> 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
>>>>
>>>> --
>>>> 2.5.5
>>>
prev parent reply other threads:[~2017-06-09 12:15 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-07 16:01 [Qemu-devel] [RFC v2 0/8] VIRTIO-IOMMU device Eric Auger
2017-06-07 16:01 ` [Qemu-devel] [RFC v2 1/8] update-linux-headers: import virtio_iommu.h Eric Auger
2017-06-07 16:01 ` [Qemu-devel] [RFC v2 2/8] linux-headers: Update for virtio-iommu Eric Auger
2017-06-07 16:01 ` [Qemu-devel] [RFC v2 3/8] virtio_iommu: add skeleton Eric Auger
2017-06-08 11:09 ` Bharat Bhushan
2017-06-23 16:08 ` Jean-Philippe Brucker
2017-06-07 16:01 ` [Qemu-devel] [RFC v2 4/8] virtio-iommu: Decode the command payload Eric Auger
2017-06-07 16:01 ` [Qemu-devel] [RFC v2 5/8] virtio_iommu: Add the iommu regions Eric Auger
2017-06-12 5:59 ` Bharat Bhushan
2017-06-07 16:01 ` [Qemu-devel] [RFC v2 6/8] virtio-iommu: Implement the translation and commands Eric Auger
2017-06-23 16:09 ` Jean-Philippe Brucker
2017-07-04 9:13 ` Bharat Bhushan
2017-07-05 6:40 ` Auger Eric
2017-07-14 2:17 ` Peter Xu
2017-07-14 6:40 ` Bharat Bhushan
2017-07-17 1:28 ` Peter Xu
2017-07-31 13:08 ` Auger Eric
2017-08-03 10:48 ` Bharat Bhushan
2017-07-14 11:25 ` Jean-Philippe Brucker
2017-07-17 1:37 ` Peter Xu
2017-06-07 16:01 ` [Qemu-devel] [RFC v2 7/8] hw/arm/virt: Add 2.10 machine type Eric Auger
2017-06-07 16:01 ` [Qemu-devel] [RFC v2 8/8] hw/arm/virt: Add virtio-iommu the virt board Eric Auger
2017-06-09 6:16 ` [Qemu-devel] [RFC v2 0/8] VIRTIO-IOMMU device Bharat Bhushan
2017-06-09 6:43 ` Auger Eric
2017-06-09 11:30 ` Bharat Bhushan
2017-06-09 11:53 ` Auger Eric
2017-06-19 7:54 ` Bharat Bhushan
2017-06-19 10:15 ` Jean-Philippe Brucker
2017-06-26 8:22 ` Auger Eric
2017-06-26 16:13 ` Jean-Philippe Brucker
2017-06-27 6:38 ` Auger Eric
2017-06-27 8:46 ` Will Deacon
2017-06-27 8:59 ` Auger Eric
2017-07-05 7:25 ` Tian, Kevin
2017-07-05 12:44 ` Jean-Philippe Brucker
2017-07-05 7:14 ` Tian, Kevin
2017-07-05 12:44 ` Jean-Philippe Brucker
2017-07-07 6:21 ` Tian, Kevin
2017-07-07 15:15 ` Jean-Philippe Brucker
2017-07-14 7:20 ` Tian, Kevin
2017-07-14 11:25 ` Jean-Philippe Brucker
2017-07-17 2:20 ` Tian, Kevin
2017-07-05 7:15 ` Bharat Bhushan
2017-06-26 7:54 ` Auger Eric
2017-07-05 8:23 ` Bharat Bhushan
2017-07-05 8:44 ` Auger Eric
2017-07-05 8:49 ` Bharat Bhushan
2017-07-06 10:02 ` Jean-Philippe Brucker
2017-07-06 11:24 ` Bharat Bhushan
2017-07-06 11:55 ` Jean-Philippe Brucker
2017-07-06 21:16 ` Auger Eric
2017-07-06 23:23 ` [Qemu-devel] [Qemu-arm] " Kalra, Ashish
2017-07-06 23:29 ` Michael S. Tsirkin
2017-07-06 23:33 ` Tian, Kevin
2017-07-07 15:14 ` Jean-Philippe Brucker
2017-07-07 22:11 ` Kalra, Ashish
2017-07-11 11:31 ` Jean-Philippe Brucker
2017-07-14 6:58 ` Tian, Kevin
2017-07-07 6:25 ` [Qemu-devel] " Bharat Bhushan
2017-07-07 7:25 ` Auger Eric
2017-07-07 11:36 ` Bharat Bhushan
2017-07-07 15:19 ` Jean-Philippe Brucker
2017-07-11 5:54 ` Bharat Bhushan
2017-07-11 12:51 ` Jean-Philippe Brucker
2017-07-12 3:50 ` Bharat Bhushan
2017-07-12 10:18 ` Jean-Philippe Brucker
2017-07-12 10:27 ` Bharat Bhushan
2017-07-12 10:58 ` Jean-Philippe Brucker
2017-07-12 11:12 ` Bharat Bhushan
2017-07-06 21:11 ` Auger Eric
2017-07-07 7:31 ` Auger Eric
2017-07-07 15:20 ` Jean-Philippe Brucker
2017-06-09 12:15 ` Auger Eric [this message]
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=445b60fe-a0da-ee93-fab3-be88fe269846@redhat.com \
--to=eric.auger@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=bharat.bhushan@nxp.com \
--cc=christoffer.dall@linaro.org \
--cc=drjones@redhat.com \
--cc=eric.auger.pro@gmail.com \
--cc=jean-philippe.brucker@arm.com \
--cc=kevin.tian@intel.com \
--cc=marc.zyngier@arm.com \
--cc=mst@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=peterx@redhat.com \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=robin.murphy@arm.com \
--cc=tn@semihalf.com \
--cc=wei@redhat.com \
--cc=will.deacon@arm.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).