Hi Michael,

On 7/2/20 1:28 PM, Michael S. Tsirkin wrote:
> On Mon, Jun 29, 2020 at 09:03:59AM +0200, Eric Auger wrote:
>> By default the virtio-iommu translates MSI transactions. This
>> behavior is inherited from ARM SMMU. However the virt machine
>> code knows where the MSI doorbells are, so we can easily
>> declare those regions as VIRTIO_IOMMU_RESV_MEM_T_MSI. With that
>> setting the guest iommu subsystem will not need to map MSIs.
>> This setup will simplify the VFIO integration.
>>
>> In this series, the ITS or GICV2M doorbells are declared as
>> HW MSI regions to be bypassed by the VIRTIO-IOMMU.
>>
>> This also paves the way to the x86 integration where the MSI
>> region, [0xFEE00000,0xFEEFFFFF], will be exposed by the q35
>> machine.  However this will be handled in a separate series
>> when not-DT support gets resolved.
> 
> 
> virtio things:
> 
> Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
> 
> 
> ARM tree makes sense for this, right?

Yes I think so.

Thanks

Eric
> 
> 
>> Best Regards
>>
>> Eric
>>
>> This series can be found at:
>> https://github.com/eauger/qemu/tree/v5.0.0-virtio-iommu-msi-bypass-v7
>>
>> History:
>>
>> v6 -> v7:
>> - fix the hint message
>> - put the assert again on probe request
>>
>> v5 -> v6:
>> - do not hardcode start/end addresses of doorbells
>> - check reserved region type on realize()
>>
>> v4 -> v5:
>> - Take into account some additional comments from Markus:
>>   - reserved region type becomes an unsigned + some comment/desc
>>     rewording
>>   - assert if the type is not RESERVED or MSI
>>
>> v3 -> v4:
>> - collected Jean and markus's R-bs
>> - tool into account all Markus' comments in [1/5] (except removal of
>>   goto)
>> - use ':' as delimitor instead of commas
>> - add example in 4/5 commit message as suggested by Markus
>>
>> v2 -> v3:
>> - Introduce VIRT_MSI_CTRL_NONE in VirtMSIControllerType
>> - do not fill the remainder of the probe buffer
>>
>> v1 -> v2:
>> - check which MSI controller is in use and advertise the
>>   corresponding MSI doorbell
>> - managed for both ITS and GICv2M
>> - various fixes spotted by Peter and Jean-Philippe, see
>>   individual logs
>>
>> v1: Most of those patches were respinned from
>>   [PATCH for-5.0 v11 00/20] VIRTIO-IOMMU device
>>   except the last one which is new
>>
>>
>> Eric Auger (5):
>>   qdev: Introduce DEFINE_PROP_RESERVED_REGION
>>   virtio-iommu: Implement RESV_MEM probe request
>>   virtio-iommu: Handle reserved regions in the translation process
>>   virtio-iommu-pci: Add array of Interval properties
>>   hw/arm/virt: Let the virtio-iommu bypass MSIs
>>
>>  include/exec/memory.h            |   6 ++
>>  include/hw/arm/virt.h            |   7 ++
>>  include/hw/qdev-properties.h     |   3 +
>>  include/hw/virtio/virtio-iommu.h |   2 +
>>  include/qemu/typedefs.h          |   1 +
>>  hw/arm/virt.c                    |  30 ++++++++
>>  hw/core/qdev-properties.c        |  89 ++++++++++++++++++++++++
>>  hw/virtio/virtio-iommu-pci.c     |  11 +++
>>  hw/virtio/virtio-iommu.c         | 114 +++++++++++++++++++++++++++++--
>>  hw/virtio/trace-events           |   1 +
>>  10 files changed, 260 insertions(+), 4 deletions(-)
>>
>> -- 
>> 2.20.1
> 
> 


Reply via email to