linux/drivers/gpu/drm/i915/gem
Chris Wilson 2935ed5339 drm/i915: Remove logical HW ID
With the introduction of ctx->engines[] we allow multiple logical
contexts to be used on the same engine (e.g. with virtual engines).
According to bspec, aach logical context requires a unique tag in order
for context-switching to occur correctly between them. [Simple
experiments show that it is not so easy to trick the HW into performing
a lite-restore with matching logical IDs, though my memory from early
Broadwell experiments do suggest that it should be generating
lite-restores.]

We only need to keep a unique tag for the active lifetime of the
context, and for as long as we need to identify that context. The HW
uses the tag to determine if it should use a lite-restore (why not the
LRCA?) and passes the tag back for various status identifies. The only
status we need to track is for OA, so when using perf, we assign the
specific context a unique tag.

v2: Calculate required number of tags to fill ELSP.

Fixes: 976b55f0e1 ("drm/i915: Allow a context to define its set of engines")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111895
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191004134015.13204-14-chris@chris-wilson.co.uk
2019-10-04 15:39:30 +01:00
..
selftests drm/i915: Remove logical HW ID 2019-10-04 15:39:30 +01: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: Remove logical HW ID 2019-10-04 15:39:30 +01:00
i915_gem_context.c drm/i915: Remove logical HW ID 2019-10-04 15:39:30 +01:00
i915_gem_context.h drm/i915: Remove logical HW ID 2019-10-04 15:39:30 +01:00
i915_gem_dmabuf.c dma-buf: rename reservation_object to dma_resv 2019-08-13 09:09:30 +02:00
i915_gem_domain.c drm/i915: Pull i915_vma_pin under the vm->mutex 2019-10-04 15:39:02 +01:00
i915_gem_execbuffer.c drm/i915: Pull i915_vma_pin under the vm->mutex 2019-10-04 15:39:02 +01: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: Pull scatterlist utils out of i915_gem.h 2019-05-28 12:45:29 +01:00
i915_gem_ioctls.h
i915_gem_mman.c drm/i915: Move request runtime management onto gt 2019-10-04 15:39:26 +01:00
i915_gem_object_blt.c drm/i915: Make engine's batch pool safe for use with virtual engines 2019-08-27 16:42:12 +01: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: Coordinate i915_active with its own mutex 2019-10-04 15:39:12 +01:00
i915_gem_object.c drm/i915: Pull i915_vma_pin under the vm->mutex 2019-10-04 15:39:02 +01:00
i915_gem_object.h drm/i915: Pull i915_vma_pin under the vm->mutex 2019-10-04 15:39:02 +01:00
i915_gem_pages.c drm/i915: Make shrink/unshrink be atomic 2019-09-11 08:14:23 +01:00
i915_gem_phys.c drm/i915: Free the imported shmemfs file for phys objects 2019-08-09 13:32:29 +01:00
i915_gem_pm.c drm/i915: Move global activity tracking from GEM to GT 2019-10-04 15:39:30 +01:00
i915_gem_pm.h drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
i915_gem_shmem.c drm/i915: avoid including intel_drv.h via i915_drv.h->i915_trace.h 2019-08-07 12:43:14 +03:00
i915_gem_shrinker.c drm/i915: Pull i915_vma_pin under the vm->mutex 2019-10-04 15:39:02 +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: Pull i915_vma_pin under the vm->mutex 2019-10-04 15:39:02 +01:00
i915_gem_stolen.h drm/i915: extract gem/i915_gem_stolen.h from i915_drv.h 2019-08-09 12:03:29 +03: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: Pull i915_vma_pin under the vm->mutex 2019-10-04 15:39:02 +01:00
i915_gem_userptr.c drm/i915: Pull i915_vma_pin under the vm->mutex 2019-10-04 15:39:02 +01: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