[PATCH 0/3] drm: omapdrm: Fix excessive GEM buffers DMM/CMA usage

Tomi Valkeinen tomi.valkeinen at ideasonboard.com
Thu Feb 17 13:03:02 UTC 2022


Hi Ivaylo,

On 19/01/2022 12:23, Ivaylo Dimitrov wrote:
> This patch series fixes excessive DMM or CMA usage of GEM buffers leading to
> various runtime allocation failures. The series enables daily usage of devices
> without exausting limited resources like CMA or DMM space if GPU rendering is
> needed.
> 
> The first patch doesn't bring any functional changes, it just moves some
> TILER/DMM related code to a separate function, to simplify the review of the
> next two patches.
> 
> The second patch allows off-CPU rendering to non-scanout buffers. Without that
> patch, it is basically impossible to use the driver allocated GEM buffers on
> OMAP3 for anything else but a basic CPU rendered examples as if we want GPU
> rendering, we must allocate buffers as scanout buffers, which are CMA allocated.
> CMA soon gets fragmented and we start seeing allocation failures. Such failres
> in Xorg cannot be handeled gracefully, so the system is basically unusable.
> 
> Third patch fixes similar issue on OMAP4/5, where DMM/TILER spaces get
> fragmented with time, leading to allocation failures.

I think this is just hacking around the problem. The problem is that 
omapdrm is being used by some as a generic buffer allocator. Those users 
should be changed to use a their own allocator or a generic allocator. 
And we could then drop the OMAP_BO_SCANOUT flag, as all buffers would be 
scanout buffers.

Or do we have a regression in the driver? My understanding is that this 
has never really worked.

  Tomi


More information about the dri-devel mailing list