Re: [PATCH v1] iommu/s390: Declare s390 iommu reserved regions

From: Pierre Morel
Date: Mon Jan 21 2019 - 06:51:25 EST


On 18/01/2019 14:51, Jean-Philippe Brucker wrote:
Hi Pierre,

On 18/01/2019 13:29, Pierre Morel wrote:
On 17/01/2019 14:02, Robin Murphy wrote:
On 15/01/2019 17:37, Pierre Morel wrote:
The s390 iommu can only allow DMA transactions between the zPCI device
entries start_dma and end_dma.


...


I already posted a patch retrieving the geometry through
VFIO_IOMMU_GET_INFO using a specific capability for the geometry [1],
and AFAIU, Alex did not agree with this.

On arm we also need to report the IOMMU geometry to userspace (max IOVA
size in particular). Shameer has been working on a solution [2] that
presents a unified view of both geometry and reserved regions into the
VFIO_IOMMU_GET_INFO call, and I think we should go with that. If I
understand correctly it's currently blocked on the RMRR problem and
we're waiting for Jacob or Ashok to take a look at it, as Kevin pinged
them on thread [1]?

[2] https://lkml.org/lkml/2018/4/18/293

Thanks,
Jean


Hi Jean,

I hopped that this proposition went in the same direction based on the following assumptions:


- The goal of the get_resv_region is defined in iommu.h as:
-----
* @get_resv_regions: Request list of reserved regions for a device
-----

- A iommu reserve region is a region which should not be mapped.
Isn't it exactly what happens outside the aperture?
Shouldn't it be reported by the iommu reserved region?

- If we use VFIO and want to get all reserved region we will have the VFIO_IOMMU_GET_INFO call provided by Shameer and it can get all reserved regions depending from the iommu driver itself at once by calling the get_reserved_region callback instead of having to merge them with the aperture.

- If there are other reserved region, depending on the system configuration and not on the IOMMU itself, the VFIO_IOMMU_GET_INFO call will have to merge them with the region gotten from the iommu driver.

- If we do not use QEMU nor VFIO at all, AFAIU, the standard way to retrieve the reserved regions associated with a device is to call the get_reserved_region callback from the associated iommu.

Please tell me were I am wrong.

Regards,
Pierre



What is different in what you propose?

@Alex: I was hoping that this patch goes in your direction. What do you
think?

Thanks,
Pierre

[1]: https://lore.kernel.org/patchwork/patch/1030369/



This seems to me related with the work Shameer has started on
vfio_iommu_type1 so I add Alex and Shameer to the CC list.


Pierre Morel (1):
ÂÂ iommu/s390: Declare s390 iommu reserved regions

 drivers/iommu/s390-iommu.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)







--
Pierre Morel
Linux/KVM/QEMU in BÃblingen - Germany