Re: [PATCH v4 1/5] dma-mapping: Add dma_opt_mapping_size()

From: John Garry
Date: Wed Jun 29 2022 - 07:58:13 EST


On 28/06/2022 12:27, John Garry via iommu wrote:
On 28/06/2022 12:23, Robin Murphy wrote:
+
+    size_t
+    dma_opt_mapping_size(struct device *dev);
+
+Returns the maximum optimal size of a mapping for the device. Mapping large
+buffers may take longer so device drivers are advised to limit total DMA
+streaming mappings length to the returned value.

Nit: I'm not sure "advised" is necessarily the right thing to say in general - that's only really true for a caller who cares about throughput of churning through short-lived mappings more than anything else, and doesn't take a significant hit overall from splitting up larger requests. I do think it's good to clarify the exact context of "optimal" here, but I'd prefer to be objectively clear that it's for workloads where the up-front mapping overhead dominates.

I'm going to go with something like this:

size_t
dma_opt_mapping_size(struct device *dev);

Returns the maximum optimal size of a mapping for the device.

Mapping larger buffers may take much longer in certain scenarios. In addition, for high-rate short-lived streaming mappings the upfront time spent on the mapping may account for an appreciable part of the total request lifetime. As such, if splitting larger requests incurs no significant performance penalty, then device drivers are advised to limit total DMA streaming mappings length to the returned value.

Let me know if you would like it further amended.

Cheers,
John