[PATCH 0/3] Fix GPU virtual address collosion when CPU page size != GPU page size
Lucas Stach
l.stach at pengutronix.de
Fri Oct 25 08:06:31 UTC 2024
Hi Sui,
Am Samstag, dem 05.10.2024 um 03:42 +0800 schrieb Sui Jingfeng:
> Etnaviv assumes that GPU page size is 4KiB, however, when using
> softpin capable GPUs on a different CPU page size configuration.
> Userspace still doing the allocation with 4KiB page as unit. This
> results in userspace allocated GPU virtual address ranges collision
> and therefore unable to be inserted to the specified hole exactly.
>
> The root cause is that kernel side BO takes up bigger address space
> than userspace assumes when the size of it is not CPU page size aligned.
>
> To solve it with no GPU VA range space wasting, we first track the size
> of a buffer that userspace/GPU think of it is, then partially map and/or
> unmap the tail physical page with respect to this 'user size'. Ensure
> that GPU VA is fully mapped and/or unmapped.
>
Would you be able to get me a updated series with the feedback taken
care of? I would like to add this series to the next upstream pull
request, if possible.
Regards,
Lucas
> Sui Jingfeng (3):
> drm/etnaviv: Track GPU VA size separately
> drm/etnaviv: Map and unmap the GPU VA range with respect to its user
> size
> drm/etnaviv: Print an error message if inserting IOVA range fails
>
> drivers/gpu/drm/etnaviv/etnaviv_gem.c | 8 +++--
> drivers/gpu/drm/etnaviv/etnaviv_gem.h | 1 +
> drivers/gpu/drm/etnaviv/etnaviv_mmu.c | 42 ++++++++++++---------------
> 3 files changed, 24 insertions(+), 27 deletions(-)
>
More information about the etnaviv
mailing list