[PATCH 2/2] drm/mm: improve rb_hole_addr rbtree search

Nirmoy nirmodas at amd.com
Wed May 20 16:46:45 UTC 2020

On 5/20/20 6:35 PM, Chris Wilson wrote:
> 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.
> -Chris

Thanks for the detailed explanation.


More information about the dri-devel mailing list