linux_dsm_epyc7002/drivers/gpu/drm/i915/gem
Chris Wilson dea8d5ce46 drm/i915/gem: Require per-engine reset support for non-persistent contexts
To enable non-persistent contexts, we require a means of cancelling any
inflight work from that context. This is first done "gracefully" by
using preemption to kick the active context off the engine, and then
forcefully by resetting the engine if it is active. If we are unable to
reset the engine to remove hostile userspace, we should not allow
userspace to opt into using non-persistent contexts.

If the per-engine reset fails, we still do a full GPU reset, but that is
rare and usually indicative of much deeper issues. The damage is already
done. However, the goal of the interface to allow long running compute
jobs without causing collateral damage elsewhere, and if we are unable
to support that we should make that known by not providing the
interface (and falsely pretending we can).

Fixes: a0e047156c ("drm/i915/gem: Make context persistence optional")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Jon Bloomfield <jon.bloomfield@intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200130164553.1937718-1-chris@chris-wilson.co.uk
(cherry picked from commit d1b9b5f127)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2020-02-17 19:17:02 +02:00
..
selftests Merge drm/drm-next into drm-intel-next-queued 2020-01-09 17:19:12 +02:00
i915_gem_busy.c drm/i915: Align engine->uabi_class/instance with i915_drm.h 2020-01-21 09:25:20 +02:00
i915_gem_clflush.c drm/i915: Hold reference to intel_frontbuffer as we track activity 2019-12-23 14:27:23 +02:00
i915_gem_clflush.h
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
i915_gem_context_types.h drm/i915: Drop GEM context as a direct link from i915_request 2019-12-20 10:52:21 +00:00
i915_gem_context.c drm/i915/gem: Require per-engine reset support for non-persistent contexts 2020-02-17 19:17:02 +02:00
i915_gem_context.h drm/i915/gtt: split up i915_gem_gtt 2020-01-07 19:27:36 +00:00
i915_gem_dmabuf.c drm-misc-next for v5.6: 2019-12-17 13:57:54 +01:00
i915_gem_domain.c drm/i915: Hold reference to intel_frontbuffer as we track activity 2019-12-23 14:27:23 +02:00
i915_gem_execbuffer.c drm/i915/gem: Take local vma references for the parser 2020-02-10 14:45:25 +02:00
i915_gem_fence.c
i915_gem_internal.c drm/i915/gem: Distinguish each object type 2019-10-22 16:23:32 +01:00
i915_gem_ioctls.h drm/i915: Introduce DRM_I915_GEM_MMAP_OFFSET 2019-12-04 15:11:44 +00:00
i915_gem_lmem.c drm/i915/gem: Support discontiguous lmem object maps 2020-01-03 11:26:01 +00:00
i915_gem_lmem.h drm/i915/gem: Support discontiguous lmem object maps 2020-01-03 11:26:01 +00:00
i915_gem_mman.c drm/i915/gem: Tighten checks and acquiring the mmap object 2020-02-12 13:24:45 +02:00
i915_gem_mman.h drm/i915: Introduce DRM_I915_GEM_MMAP_OFFSET 2019-12-04 15:11: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
i915_gem_object_types.h drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list 2020-02-11 11:49:31 +02:00
i915_gem_object.c drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list 2020-02-11 11:49:31 +02:00
i915_gem_object.h drm/i915/gem: Tighten checks and acquiring the mmap object 2020-02-12 13:24:45 +02:00
i915_gem_pages.c drm/i915/gem: Support discontiguous lmem object maps 2020-01-03 11:26:01 +00: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/gt: Pull intel_gt_init_hw() into intel_gt_resume() 2019-12-22 15:18:04 +00: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/gem: Single page objects are naturally contiguous 2020-01-02 21:21:17 +00: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/lmem: debugfs for LMEM details 2019-12-28 17:54:43 +00:00
i915_gem_shrinker.c Merge drm/drm-next into drm-intel-next-queued 2019-12-11 11:13:50 +02:00
i915_gem_shrinker.h
i915_gem_stolen.c drm/i915/lmem: debugfs for LMEM details 2019-12-28 17:54:43 +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
i915_gem_tiling.c drm/i915: Introduce DRM_I915_GEM_MMAP_OFFSET 2019-12-04 15:11:44 +00:00
i915_gem_userptr.c drm pull for 5.6-rc1 2020-01-30 08:04:01 -08:00
i915_gem_wait.c
i915_gemfs.c
i915_gemfs.h