[PATCH 2/2] drm/mm: improve rb_hole_addr rbtree search
chris at chris-wilson.co.uk
Wed May 20 16:35:09 UTC 2020
Quoting Nirmoy (2020-05-20 17:28:04)
> Hi Chris,
> On 5/20/20 12:56 AM, Chris Wilson wrote:
> > Quoting Nirmoy Das (2020-05-19 09:44:36)
> >> +#define DRM_MM_ALIGN_SHIFT 6
> >> #define HOLE_SIZE(NODE) ((NODE)->hole_size)
> >> #define HOLE_ADDR(NODE) (__drm_mm_hole_node_start(NODE))
> >> +#define HOLE_SIZE_ALIGN(NODE) ((NODE->hole_size << DRM_MM_ALIGN_SHIFT) | \
> >> + ffs(HOLE_ADDR(NODE)))
> > Fwiw, max hole size of 58b, we would need to stop storing byte
> > extents...
> Can you please explain 2nd part of this statement.
Currently we [i915] use drm_mm with byte-addressing, so 58b is a tad too
close to the amount we actually need to track. If we used page tracking
instead of bytes, we regain 12b to play around with. It makes no
difference to the code at the moment (e.g. we still could not fit within
u32) so there has been no pressure to rewrite the extents handling. But
given sufficient reason, we could.
More information about the dri-devel