iommu/iova: Make the rcache depot scale better
authorRobin Murphy <robin.murphy@arm.com>
Tue, 12 Sep 2023 16:28:05 +0000 (17:28 +0100)
committerJoerg Roedel <jroedel@suse.de>
Mon, 25 Sep 2023 10:07:43 +0000 (12:07 +0200)
commit911aa1245da83ff5e76d33bb612d8b5a3f2ec4a5
tree4fbbfb59c22f25a23c0172abc58e5b4e8bf28058
parentafad94a93ef12887390d67aa9b6dd6be2657712f
iommu/iova: Make the rcache depot scale better

The algorithm in the original paper specifies the storage of full
magazines in the depot as an unbounded list rather than a fixed-size
array. It turns out to be pretty straightforward to do this in our
implementation with no significant loss of efficiency. This allows
the depot to scale up to the working set sizes of larger systems,
while also potentially saving some memory on smaller ones too.

Since this involves touching struct iova_magazine with the requisite
care, we may as well reinforce the comment with a proper assertion too.

Reviewed-by: John Garry <john.g.garry@oracle.com>
Reviewed-by: Jerry Snitselaar <jsnitsel@redhat.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Link: https://lore.kernel.org/r/f597aa72fc3e1d315bc4574af0ce0ebe5c31cd22.1694535580.git.robin.murphy@arm.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/iova.c