On 11/10/2023 3:13 PM, Boris Brezillon wrote:
Hello, This patchset is an attempt at making page table allocation customizable. This is useful to some GPU drivers for various reasons: - speed-up upcoming page table allocations by managing a pool of free pages - batch page table allocation instead of allocating one page at a time - pre-reserve pages for page tables needed for map/unmap operations and return the unused page tables to some pool The first and last reasons are particularly important for GPU drivers wanting to implement asynchronous VM_BIND. Asynchronous VM_BIND requires that any page table needed for a map/unmap operation to succeed be allocated at VM_BIND job creation time. At the time of the job creation, we don't know what the VM will look like when we get to execute the map/unmap, and can't guess how many page tables we will need. Because of that, we have to over-provision page tables for the worst case scenario (page table tree is empty), which means we will allocate/free a lot. Having pool a pool of free pages is crucial if we want to speed-up VM_BIND requests. There might also be other good reasons to want custom allocators, like fine-grained memory accounting and resource limiting. A real example of how such custom allocators can be used is available here[1]. v2 of the Panthor driver is approaching submission, and I figured I'd try to upstream the dependencies separately, which is why I submit this series now, even though the user of this new API will come afterwards. If you'd prefer to have those patches submitted along with the Panthor driver, let me know. Regards, Boris [1]https://gitlab.freedesktop.org/panfrost/linux/-/blob/panthor/drivers/gpu/drm/panthor/panthor_mmu.c#L441 Boris Brezillon (2): iommu: Allow passing custom allocators to pgtable drivers iommu: Extend LPAE page table format to support custom allocators drivers/iommu/io-pgtable-arm.c | 55 ++++++++++++++++++++++++---------- drivers/iommu/io-pgtable.c | 23 ++++++++++++++ include/linux/io-pgtable.h | 31 +++++++++++++++++++ 3 files changed, 93 insertions(+), 16 deletions(-)
Tested patches and reviewed also, both looks good , please feel free to add in case of merging:
Reviewed-by: Gaurav Kohli <quic_gkohli@xxxxxxxxxxx> Tested-by: Gaurav Kohli <quic_gkohli@xxxxxxxxxxx>