[Intel-gfx] [PATCH 3/5] drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list

Abdiel Janulgue abdiel.janulgue at linux.intel.com
Mon Jan 20 15:24:41 UTC 2020


On 20/01/2020 12.49, Chris Wilson wrote:
> Currently we create a new mmap_offset for every call to
> mmap_offset_ioctl. This exposes ourselves to an abusive client that may
> simply create new mmap_offsets ad infinitum, which will exhaust physical
> memory and the virtual address space. In addition to the exhaustion, a
> very long linear list of mmap_offsets causes other clients using the
> object to incur long list walks -- these long lists can also be
> generated by simply having many clients generate their own mmap_offset.
> 
> However, we can simply use the drm_vma_node itself to manage the file
> association (allow/revoke) dropping our need to keep an mmo per-file.
> Then if we keep a small rbtree of per-type mmap_offsets, we can lookup
> duplicate requests quickly.

As discussed, rbtree does do away with the limitation of the linear list

Reviewed-by: Abdiel Janulgue <abdiel.janulgue at linux.intel.com>

> Fixes: cc662126b413 ("drm/i915: Introduce DRM_I915_GEM_MMAP_OFFSET")
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Abdiel Janulgue <abdiel.janulgue at linux.intel.com>


More information about the Intel-gfx mailing list