[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [Qemu-devel] [RFC v2 0/8] VIRTIO-IOMMU device
From: |
Auger Eric |
Subject: |
Re: [Qemu-arm] [Qemu-devel] [RFC v2 0/8] VIRTIO-IOMMU device |
Date: |
Fri, 9 Jun 2017 13:53:49 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 |
Hi Bharat,
On 09/06/2017 13:30, Bharat Bhushan wrote:
> Hi Eric,
>
>> -----Original Message-----
>> From: Auger Eric [mailto:address@hidden
>> Sent: Friday, June 09, 2017 12:14 PM
>> To: Bharat Bhushan <address@hidden>;
>> address@hidden; address@hidden;
>> address@hidden; address@hidden; address@hidden;
>> address@hidden; address@hidden
>> Cc: address@hidden; address@hidden; address@hidden;
>> address@hidden; address@hidden; address@hidden;
>> address@hidden; address@hidden
>> 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:address@hidden
>>>> Sent: Wednesday, June 07, 2017 9:31 PM
>>>> To: address@hidden; address@hidden;
>>>> address@hidden; address@hidden;
>> address@hidden;
>>>> address@hidden; address@hidden; jean-
>>>> address@hidden
>>>> Cc: address@hidden; address@hidden;
>> address@hidden;
>>>> address@hidden; address@hidden;
>>>> address@hidden; address@hidden; address@hidden; Bharat
>> Bhushan
>>>> <address@hidden>
>>>> 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.
>>>>
>>>> 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.
Great.
The driver config was disabled and also I was using guest kernel which
was not have deferred-probing.
Yes I did not mention in my cover letter the guest I have been using is
based on Jean-Philippe's branch, featuring deferred IOMMU probing. I I
have not tried yet with an upstream guest.
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 !!
OK. I will do the VFIO integration first on the vsmmuv3 device as I
already prepared the VFIO replay and hopefully we will sync ;-)
Thanks
Eric
>
> 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
>>>
>
- [Qemu-arm] [RFC v2 4/8] virtio-iommu: Decode the command payload, (continued)
- [Qemu-arm] [RFC v2 4/8] virtio-iommu: Decode the command payload, Eric Auger, 2017/06/07
- [Qemu-arm] [RFC v2 5/8] virtio_iommu: Add the iommu regions, Eric Auger, 2017/06/07
- [Qemu-arm] [RFC v2 6/8] virtio-iommu: Implement the translation and commands, Eric Auger, 2017/06/07
- [Qemu-arm] [RFC v2 7/8] hw/arm/virt: Add 2.10 machine type, Eric Auger, 2017/06/07
- [Qemu-arm] [RFC v2 8/8] hw/arm/virt: Add virtio-iommu the virt board, Eric Auger, 2017/06/07
- Re: [Qemu-arm] [RFC v2 0/8] VIRTIO-IOMMU device, Bharat Bhushan, 2017/06/09
- Re: [Qemu-arm] [RFC v2 0/8] VIRTIO-IOMMU device, Auger Eric, 2017/06/09
- Re: [Qemu-arm] [RFC v2 0/8] VIRTIO-IOMMU device, Bharat Bhushan, 2017/06/09
- Re: [Qemu-arm] [Qemu-devel] [RFC v2 0/8] VIRTIO-IOMMU device,
Auger Eric <=
- Re: [Qemu-arm] [Qemu-devel] [RFC v2 0/8] VIRTIO-IOMMU device, Bharat Bhushan, 2017/06/19
- Re: [Qemu-arm] [Qemu-devel] [RFC v2 0/8] VIRTIO-IOMMU device, Jean-Philippe Brucker, 2017/06/19
- Re: [Qemu-arm] [Qemu-devel] [RFC v2 0/8] VIRTIO-IOMMU device, Auger Eric, 2017/06/26
- Re: [Qemu-arm] [Qemu-devel] [RFC v2 0/8] VIRTIO-IOMMU device, Jean-Philippe Brucker, 2017/06/26
- Re: [Qemu-arm] [Qemu-devel] [RFC v2 0/8] VIRTIO-IOMMU device, Auger Eric, 2017/06/27
- Re: [Qemu-arm] [Qemu-devel] [RFC v2 0/8] VIRTIO-IOMMU device, Will Deacon, 2017/06/27
- Re: [Qemu-arm] [Qemu-devel] [RFC v2 0/8] VIRTIO-IOMMU device, Auger Eric, 2017/06/27
- Re: [Qemu-arm] [Qemu-devel] [RFC v2 0/8] VIRTIO-IOMMU device, Auger Eric, 2017/06/26
- Re: [Qemu-arm] [RFC v2 0/8] VIRTIO-IOMMU device, Auger Eric, 2017/06/09