On Thu, Jul 02, 2020 at 02:01:46PM +0200, Auger Eric wrote: > 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
Okay. Feel free to merge through ARM tree pls. Reviewed-by: Michael S. Tsirkin <m...@redhat.com> > > > > > >> 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 > > > >