Re: [RFC PATCH v2 0/6] Introduce sparse DRM shmem object allocations
From: Boris Brezillon
Date: Mon Mar 31 2025 - 04:33:54 EST
Hi Thomas,
On Mon, 31 Mar 2025 09:13:59 +0200
Thomas Zimmermann <tzimmermann@xxxxxxx> wrote:
> Hi
>
> Am 26.03.25 um 03:14 schrieb Adrián Larumbe:
> > This patch series is a proposal for implementing sparse page allocations
> > for shmem objects. It was initially motivated by a kind of BO managed by
> > the Panfrost driver, the tiler heap, which grows on demand every time the
> > GPU faults on a virtual address within its drm_mm-managed ranged.
>
> I've looked at panfrost_gem.h and found that the driver's gem structure
> has grown quite a bit. It seems to have outgrown gem-shmem already. I
> think you should consider pulling a copy of gem-shmem into the driver
> and building a dedicated memory manager on top.
Actually, it's not just something we need for panfrost. I plan to use
the same non-blocking allocation mechanism for panthor's heap
chunks/buffers, and lima could use it for its heap buffers too. The
non-blocking page allocation is also something i915 has been
open-coding here [1], and I believe that some of this logic could
(and should IMHO) live in common code rather than each driver coming
with its own solution, thus increasing the risk of bugs/inconsistencies.
That's even more important if we provide a common gem-shmem shrinker
like Dmitry's has been proposing.
Best Regards,
Boris
[1]https://elixir.bootlin.com/linux/v6.13.7/source/drivers/gpu/drm/i915/gem/i915_gem_shmem.c#L89