Messages in this thread | | | Subject | Re: [PATCH 3/3] drm: omapdrm: Do no allocate non-scanout GEMs through DMM/TILER | From | Ivaylo Dimitrov <> | Date | Thu, 17 Feb 2022 17:29:39 +0200 |
| |
On 17.02.22 г. 14:46 ч., Tomi Valkeinen wrote: > Hi, > > On 19/01/2022 12:23, Ivaylo Dimitrov wrote: >> On devices with DMM, all allocations are done through either DMM or >> TILER. >> DMM/TILER being a limited resource means that such allocations will start >> to fail before actual free memory is exhausted. What is even worse is >> that >> with time DMM/TILER space gets fragmented to the point that even if we >> have >> enough free DMM/TILER space and free memory, allocation fails because >> there >> is no big enough free block in DMM/TILER space. >> >> Such failures can be easily observed with OMAP xorg DDX, for example - >> starting few GUI applications (so buffers for their windows are >> allocated) >> and then rotating landscape<->portrait while closing and opening new >> windows soon results in allocation failures. >> >> Fix that by mapping buffers through DMM/TILER only when really needed, >> like, for scanout buffers. > > Doesn't this break users that get a buffer from omapdrm and expect it to > be contiguous? >
If you mean dumb buffer, then no, this does not break users as dumb buffers are allocated as scanout:
https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/omapdrm/omap_gem.c#L603
If you mean omap_bo allocated buffers, then if users want linear(scanout) buffer, then they request it explicitly by passing OMAP_BO_SCANOUT.
Ivo
| |