Re: [PATCH v2 0/5] Optimize iommu_map_sg() performance

2021-01-22 Thread Robin Murphy
On 2021-01-21 21:30, isa...@codeaurora.org wrote: On 2021-01-12 08:00, Robin Murphy wrote: On 2021-01-11 14:54, Isaac J. Manjarres wrote: The iommu_map_sg() code currently iterates through the given scatter-gather list, and in the worst case, invokes iommu_map() for each element in the

Re: [PATCH v2 0/5] Optimize iommu_map_sg() performance

2021-01-21 Thread isaacm
On 2021-01-12 08:00, Robin Murphy wrote: On 2021-01-11 14:54, Isaac J. Manjarres wrote: The iommu_map_sg() code currently iterates through the given scatter-gather list, and in the worst case, invokes iommu_map() for each element in the scatter-gather list, which calls into the IOMMU driver

Re: [PATCH v2 0/5] Optimize iommu_map_sg() performance

2021-01-12 Thread Robin Murphy
On 2021-01-12 16:33, Christoph Hellwig wrote: On Tue, Jan 12, 2021 at 04:00:59PM +, Robin Murphy wrote: Out of curiosity, how much of the difference is attributable to actual indirect call overhead vs. the additional massive reduction in visits to arm_smmu_rpm_{get,put} that you fail to

Re: [PATCH v2 0/5] Optimize iommu_map_sg() performance

2021-01-12 Thread Christoph Hellwig
On Tue, Jan 12, 2021 at 04:00:59PM +, Robin Murphy wrote: > Out of curiosity, how much of the difference is attributable to actual > indirect call overhead vs. the additional massive reduction in visits to > arm_smmu_rpm_{get,put} that you fail to mention? There are ways to optimise > indirect

Re: [PATCH v2 0/5] Optimize iommu_map_sg() performance

2021-01-12 Thread Robin Murphy
On 2021-01-11 14:54, Isaac J. Manjarres wrote: The iommu_map_sg() code currently iterates through the given scatter-gather list, and in the worst case, invokes iommu_map() for each element in the scatter-gather list, which calls into the IOMMU driver through an indirect call. For an IOMMU driver

[PATCH v2 0/5] Optimize iommu_map_sg() performance

2021-01-11 Thread Isaac J. Manjarres
The iommu_map_sg() code currently iterates through the given scatter-gather list, and in the worst case, invokes iommu_map() for each element in the scatter-gather list, which calls into the IOMMU driver through an indirect call. For an IOMMU driver that uses a format supported by the io-pgtable