[RFC,v2,1/2] dt-bindings: iommu: Document iova-best-fit property for IOMMU masters

Message ID 20221212215138.17897-1-quic_c_gdjako@quicinc.com
State New
Headers
Series [RFC,v2,1/2] dt-bindings: iommu: Document iova-best-fit property for IOMMU masters |

Commit Message

Georgi Djakov Dec. 12, 2022, 9:51 p.m. UTC
  Document the "iova-best-fit" device-tree property, which is used to
describe that the iommu master is constrained on memory and the system
must put more effort when allocating IOVAs to avoid holes/gaps in
memory. This improves the memory utilization and helps with memory
fragmentation issues in some cases, but it could take longer to allocate
an IOVA compared with the default "first-fit" algorithm.

Signed-off-by: Georgi Djakov <quic_c_gdjako@quicinc.com>
---
 Documentation/devicetree/bindings/iommu/iommu.txt | 4 ++++
 1 file changed, 4 insertions(+)
  

Comments

Rob Herring Dec. 13, 2022, 4:35 p.m. UTC | #1
On Mon, Dec 12, 2022 at 01:51:37PM -0800, Georgi Djakov wrote:
> Document the "iova-best-fit" device-tree property, which is used to
> describe that the iommu master is constrained on memory and the system
> must put more effort when allocating IOVAs to avoid holes/gaps in
> memory. This improves the memory utilization and helps with memory
> fragmentation issues in some cases, but it could take longer to allocate
> an IOVA compared with the default "first-fit" algorithm.
> 
> Signed-off-by: Georgi Djakov <quic_c_gdjako@quicinc.com>
> ---
>  Documentation/devicetree/bindings/iommu/iommu.txt | 4 ++++
>  1 file changed, 4 insertions(+)

No new properties in common .txt files. Schemas only.

However, this looks like kernel policy which doesn't belong in DT.

> diff --git a/Documentation/devicetree/bindings/iommu/iommu.txt b/Documentation/devicetree/bindings/iommu/iommu.txt
> index 26ba9e530f13..ca1b4813c5bf 100644
> --- a/Documentation/devicetree/bindings/iommu/iommu.txt
> +++ b/Documentation/devicetree/bindings/iommu/iommu.txt
> @@ -88,6 +88,10 @@ prevent any driver from properly setting up the translations.
>  
>  Optional properties:
>  --------------------
> +- iova-best-fit: When present, the best-fit algorithm will be used, instead
> +  of first-fit. This reduces memory fragmentation when allocating IOVAs in
> +  some cases, but may also increase the time it takes to allocate an IOVA.
> +
>  - pasid-num-bits: Some masters support multiple address spaces for DMA, by
>    tagging DMA transactions with an address space identifier. By default,
>    this is 0, which means that the device only has one address space.
>
  

Patch

diff --git a/Documentation/devicetree/bindings/iommu/iommu.txt b/Documentation/devicetree/bindings/iommu/iommu.txt
index 26ba9e530f13..ca1b4813c5bf 100644
--- a/Documentation/devicetree/bindings/iommu/iommu.txt
+++ b/Documentation/devicetree/bindings/iommu/iommu.txt
@@ -88,6 +88,10 @@  prevent any driver from properly setting up the translations.
 
 Optional properties:
 --------------------
+- iova-best-fit: When present, the best-fit algorithm will be used, instead
+  of first-fit. This reduces memory fragmentation when allocating IOVAs in
+  some cases, but may also increase the time it takes to allocate an IOVA.
+
 - pasid-num-bits: Some masters support multiple address spaces for DMA, by
   tagging DMA transactions with an address space identifier. By default,
   this is 0, which means that the device only has one address space.