OpenCloudOS-Kernel/drivers/gpu/drm/i915/selftests
Chris Wilson d1b48c1e71 drm/i915: Replace execbuf vma ht with an idr
This was the competing idea long ago, but it was only with the rewrite
of the idr as an radixtree and using the radixtree directly ourselves,
along with the realisation that we can store the vma directly in the
radixtree and only need a list for the reverse mapping, that made the
patch performant enough to displace using a hashtable. Though the vma ht
is fast and doesn't require any extra allocation (as we can embed the node
inside the vma), it does require a thread for resizing and serialization
and will have the occasional slow lookup. That is hairy enough to
investigate alternatives and favour them if equivalent in peak performance.
One advantage of allocating an indirection entry is that we can support a
single shared bo between many clients, something that was done on a
first-come first-serve basis for shared GGTT vma previously. To offset
the extra allocations, we create yet another kmem_cache for them.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170816085210.4199-5-chris@chris-wilson.co.uk
2017-08-18 11:59:02 +01:00
..
huge_gem_object.c drm/i915: Split obj->cache_coherent to track r/w 2017-08-15 15:46:57 +01:00
huge_gem_object.h
i915_gem_coherency.c drm/i915: Don't use MI_STORE_DWORD_IMM on Sandybridge/vcs 2017-08-18 11:55:02 +01:00
i915_gem_context.c drm/i915: Don't use MI_STORE_DWORD_IMM on Sandybridge/vcs 2017-08-18 11:55:02 +01:00
i915_gem_dmabuf.c drm/i915: Fix an error checking test 2017-06-27 14:30:56 +01:00
i915_gem_evict.c drm/i915: Eliminate lots of iterations over the execobjects array 2017-06-16 16:54:05 +01:00
i915_gem_gtt.c drm/i915: pass the vma to insert_entries 2017-06-22 16:48:50 +01:00
i915_gem_object.c
i915_gem_request.c
i915_gem_timeline.c
i915_live_selftests.h
i915_mock_selftests.h drm/i915: Import the kfence selftests for i915_sw_fence 2017-05-17 13:38:02 +01:00
i915_random.c
i915_random.h
i915_selftest.c
i915_sw_fence.c drm/i915: Check for allocation failure 2017-05-19 20:36:32 +01:00
i915_syncmap.c
i915_vma.c drm/i915: Allow contexts to be unreferenced locklessly 2017-06-20 17:13:47 +01:00
intel_breadcrumbs.c drm: drop drm_[cm]alloc* helpers 2017-05-18 17:22:39 +02:00
intel_hangcheck.c drm/i915: Don't use MI_STORE_DWORD_IMM on Sandybridge/vcs 2017-08-18 11:55:02 +01:00
intel_uncore.c
mock_context.c drm/i915: Replace execbuf vma ht with an idr 2017-08-18 11:59:02 +01:00
mock_context.h drm/i915/selftests: Exercise independence of per-engine resets 2017-07-27 09:38:48 +02:00
mock_dmabuf.c
mock_dmabuf.h
mock_drm.c
mock_drm.h
mock_engine.c drm/i915: Supply the engine-id for our mock_engine() 2017-08-10 12:18:35 +01:00
mock_engine.h drm/i915: Supply the engine-id for our mock_engine() 2017-08-10 12:18:35 +01:00
mock_gem_device.c drm/i915: Supply the engine-id for our mock_engine() 2017-08-10 12:18:35 +01:00
mock_gem_device.h
mock_gem_object.h
mock_gtt.c drm/i915: pass the vma to insert_entries 2017-06-22 16:48:50 +01:00
mock_gtt.h
mock_request.c
mock_request.h
mock_timeline.c
mock_timeline.h
mock_uncore.c
mock_uncore.h
scatterlist.c