linux_dsm_epyc7002/drivers/gpu/drm/i915/gem
Chris Wilson cd30a50317 drm/i915/gem: Excise the per-batch whitelist from the context
One does not lightly add a new hidden struct_mutex dependency deep within
the execbuf bowels! The immediate suspicion in seeing the whitelist
cached on the context, is that it is intended to be preserved between
batches, as the kernel is quite adept at caching small allocations
itself. But no, it's sole purpose is to serialise command submission in
order to save a kmalloc on a slow, slow path!

By removing the whitelist dependency from the context, our freedom to
chop the big struct_mutex is greatly augmented.

v2: s/set_bit/__set_bit/ as the whitelist shall never be accessed
concurrently.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191128113424.3885958-1-chris@chris-wilson.co.uk
2019-11-28 11:39:50 +00:00
..
selftests drm/i915: Serialise with engine-pm around requests on the kernel_context 2019-11-25 13:17:18 +00:00
i915_gem_busy.c dma-buf: Restore seqlock around dma_resv updates 2019-08-16 12:40:58 +01:00
i915_gem_clflush.c drm/i915: Generalise the clflush dma-worker 2019-08-22 08:27:44 +01:00
i915_gem_clflush.h drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
i915_gem_client_blt.c drm/i915: Drop struct_mutex from around i915_retire_requests() 2019-10-04 15:39:17 +01:00
i915_gem_client_blt.h drm/i915: add in-kernel blitter client 2019-05-30 12:01:44 +01:00
i915_gem_context_types.h drm/i915/gem: Excise the per-batch whitelist from the context 2019-11-28 11:39:50 +00:00
i915_gem_context.c drm/i915/gem: Excise the per-batch whitelist from the context 2019-11-28 11:39:50 +00:00
i915_gem_context.h drm/i915/gem: Make context persistence optional 2019-10-29 21:02:52 +00:00
i915_gem_dmabuf.c drm/i915/gem: Distinguish each object type 2019-10-22 16:23:32 +01:00
i915_gem_domain.c drm/i915/gem: Track ggtt writes from userspace on the bound vma 2019-11-19 15:12:46 +00:00
i915_gem_execbuffer.c drm/i915/gem: Purge the sudden reappearance of i915_gem_object_pin() 2019-11-15 21:32:18 +00:00
i915_gem_fence.c Merge drm/drm-next into drm-intel-next-queued 2019-08-22 00:10:36 -07:00
i915_gem_internal.c drm/i915/gem: Distinguish each object type 2019-10-22 16:23:32 +01:00
i915_gem_ioctls.h
i915_gem_lmem.c drm/i915/lmem: add the fake lmem region 2019-10-31 20:41:47 +00:00
i915_gem_lmem.h drm/i915/lmem: support kernel mapping 2019-10-25 22:55:43 +01:00
i915_gem_mman.c drm/i915/gem: Early rejection of no-aperture map_ggtt 2019-11-06 12:09:44 +00:00
i915_gem_object_blt.c drm/i915/blt: fixup block_size rounding 2019-10-29 06:57:20 +00:00
i915_gem_object_blt.h drm/i915/blt: support copying objects 2019-08-10 19:35:36 +01:00
i915_gem_object_types.h drm/i915: Switch obj->mm.lock lockdep annotations on its head 2019-11-07 09:58:11 +01:00
i915_gem_object.c drm/i915/gem: Protect the obj->vma.list during iteration 2019-11-19 15:12:47 +00:00
i915_gem_object.h drm/i915: use might_lock_nested in get_pages annotation 2019-11-07 09:58:54 +01:00
i915_gem_pages.c drm/i915: Switch obj->mm.lock lockdep annotations on its head 2019-11-07 09:58:11 +01:00
i915_gem_phys.c drm/i915: Switch obj->mm.lock lockdep annotations on its head 2019-11-07 09:58:11 +01:00
i915_gem_pm.c drm/i915: Defer rc6 shutdown to suspend_late 2019-11-05 16:05:42 +02:00
i915_gem_pm.h drm/i915: Teach record_defaults to operate on the intel_gt 2019-10-22 20:43:07 +01:00
i915_gem_region.c drm/i915: treat shmem as a region 2019-10-18 12:41:03 +01:00
i915_gem_region.h drm/i915/region: support contiguous allocations 2019-10-08 20:50:01 +01:00
i915_gem_shmem.c drm/i915/gem: Distinguish each object type 2019-10-22 16:23:32 +01:00
i915_gem_shrinker.c drm/i915: Switch obj->mm.lock lockdep annotations on its head 2019-11-07 09:58:11 +01:00
i915_gem_shrinker.h drm/i915: extract i915_gem_shrinker.h from i915_drv.h 2019-08-09 12:03:32 +03:00
i915_gem_stolen.c drm/i915/gem: Pass mem region to preallocated stolen 2019-11-11 19:22:18 +00:00
i915_gem_stolen.h drm/i915: treat stolen as a region 2019-10-18 12:41:05 +01:00
i915_gem_throttle.c drm/i915: Keep drm_i915_file_private around under RCU 2019-08-23 22:13:17 +01:00
i915_gem_tiling.c drm/i915: Move swizzle_bit under i915_ggtt 2019-10-16 19:42:19 +01:00
i915_gem_userptr.c drm/i915/userptr: Try to acquire the page lock around set_page_dirty() 2019-11-12 10:22:58 +02:00
i915_gem_wait.c dma-buf: rename reservation_object to dma_resv 2019-08-13 09:09:30 +02:00
i915_gemfs.c drm/i915: Stop reconfiguring our shmemfs mountpoint 2019-08-09 20:18:30 +01:00
i915_gemfs.h drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
Makefile drm/i915: use upstream version of header tests 2019-07-30 12:11:57 +03:00