mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
7865559872
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.
Fixes:
|
||
---|---|---|
.. | ||
selftests | ||
i915_gem_busy.c | ||
i915_gem_clflush.c | ||
i915_gem_clflush.h | ||
i915_gem_client_blt.c | ||
i915_gem_client_blt.h | ||
i915_gem_context_types.h | ||
i915_gem_context.c | ||
i915_gem_context.h | ||
i915_gem_dmabuf.c | ||
i915_gem_domain.c | ||
i915_gem_execbuffer.c | ||
i915_gem_fence.c | ||
i915_gem_internal.c | ||
i915_gem_ioctls.h | ||
i915_gem_lmem.c | ||
i915_gem_lmem.h | ||
i915_gem_mman.c | ||
i915_gem_mman.h | ||
i915_gem_object_blt.c | ||
i915_gem_object_blt.h | ||
i915_gem_object_types.h | ||
i915_gem_object.c | ||
i915_gem_object.h | ||
i915_gem_pages.c | ||
i915_gem_phys.c | ||
i915_gem_pm.c | ||
i915_gem_pm.h | ||
i915_gem_region.c | ||
i915_gem_region.h | ||
i915_gem_shmem.c | ||
i915_gem_shrinker.c | ||
i915_gem_shrinker.h | ||
i915_gem_stolen.c | ||
i915_gem_stolen.h | ||
i915_gem_throttle.c | ||
i915_gem_tiling.c | ||
i915_gem_userptr.c | ||
i915_gem_wait.c | ||
i915_gemfs.c | ||
i915_gemfs.h |