OpenCloudOS-Kernel/drivers/gpu/drm/i915/selftests
Chris Wilson c41166f9a1 drm/i915: Beware temporary wedging when determining -EIO
At a few points in our uABI, we check to see if the driver is wedged and
report -EIO back to the user in that case. However, as we perform the
check and reset asynchronously (where once before they were both
serialised by the struct_mutex), we may instead see the temporary wedging
used to cancel inflight rendering to avoid a deadlock during reset
(caused by either us timing out in our reset handler,
i915_wedge_on_timeout or with malice aforethought in intel_reset_prepare
for a stuck modeset). If we suspect this is the case, that is we see a
wedged driver *and* reset in progress, then wait until the reset is
resolved before reporting upon the wedged status.

v2: might_sleep() (Mika)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109580
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190220145637.23503-1-chris@chris-wilson.co.uk
2019-02-20 16:31:08 +00:00
..
huge_gem_object.c drm: move read_domains and write_domain into i915 2018-02-16 14:12:48 +00:00
huge_gem_object.h
huge_pages.c drm/i915: Beware temporary wedging when determining -EIO 2019-02-20 16:31:08 +00:00
i915_active.c drm/i915: Beware temporary wedging when determining -EIO 2019-02-20 16:31:08 +00:00
i915_gem.c drm/i915: Syntatic sugar for using intel_runtime_pm 2019-01-14 16:18:25 +00:00
i915_gem_coherency.c drm/i915: Beware temporary wedging when determining -EIO 2019-02-20 16:31:08 +00:00
i915_gem_context.c drm/i915: Beware temporary wedging when determining -EIO 2019-02-20 16:31:08 +00:00
i915_gem_dmabuf.c drm/i915: Replace drm_dev_unref with drm_dev_put 2018-06-28 19:09:46 +02:00
i915_gem_evict.c drm/i915: Beware temporary wedging when determining -EIO 2019-02-20 16:31:08 +00:00
i915_gem_gtt.c drm/i915/selftests: Move local mock_ggtt allocations to the heap 2019-02-17 21:07:46 +00:00
i915_gem_object.c drm/i915: Beware temporary wedging when determining -EIO 2019-02-20 16:31:08 +00:00
i915_live_selftests.h drm/i915: Generalise GPU activity tracking 2019-02-05 17:12:00 +00:00
i915_mock_selftests.h drm/i915: Replace global breadcrumbs with per-context interrupt tracking 2019-01-29 21:45:22 +00:00
i915_random.c drm/i915: Share per-timeline HWSP using a slab suballocator 2019-01-28 19:07:06 +00:00
i915_random.h drm/i915: Share per-timeline HWSP using a slab suballocator 2019-01-28 19:07:06 +00:00
i915_request.c drm/i915: Beware temporary wedging when determining -EIO 2019-02-20 16:31:08 +00:00
i915_selftest.c drm/i915/selftests: Apply a subtest filter 2019-01-29 19:59:57 +00:00
i915_sw_fence.c drm/i915: Remove unecessary dma_fence_ops 2018-08-17 11:22:15 +02:00
i915_syncmap.c
i915_timeline.c drm/i915: Track the context's seqno in its own timeline HWSP 2019-01-28 19:07:09 +00:00
i915_vma.c drm/i915/selftests: Move local mock_ggtt allocations to the heap 2019-02-17 21:07:46 +00:00
igt_flush_test.c drm/i915: Beware temporary wedging when determining -EIO 2019-02-20 16:31:08 +00:00
igt_flush_test.h drm/i915/selftests: Refactor common flush_test() 2018-05-08 12:44:31 +01:00
igt_live_test.c drm/i915: Drop fake breadcrumb irq 2019-01-29 21:45:30 +00:00
igt_live_test.h drm/i915/selftests: Refactor common live_test framework 2019-01-22 13:01:20 +00:00
igt_reset.c drm/i915/selftests: Add tests for GT and engine workaround verification 2018-12-04 12:23:19 +00:00
igt_reset.h drm/i915/selftests: Add tests for GT and engine workaround verification 2018-12-04 12:23:19 +00:00
igt_spinner.c drm/i915: Don't claim an unstarted request was guilty 2019-02-08 16:47:40 +00:00
igt_spinner.h drm/i915/selftests: Extract spinner code 2018-11-30 15:09:00 +00:00
igt_wedge_me.h drm/i915/selftests: Add a safety net to live_workarounds 2018-07-11 14:13:56 +01:00
intel_engine_cs.c drm/i915: add a selftest for the mmio_bases table 2018-03-15 08:46:06 +00:00
intel_guc.c drm/i915/selftests: Mark up rpm wakerefs 2019-01-14 16:18:20 +00:00
intel_hangcheck.c drm/i915: Beware temporary wedging when determining -EIO 2019-02-20 16:31:08 +00:00
intel_lrc.c drm/i915: Beware temporary wedging when determining -EIO 2019-02-20 16:31:08 +00:00
intel_uncore.c drm/i915: Restore user forcewake domains across suspend 2018-08-15 13:41:05 -07:00
intel_workarounds.c drm/i915: Beware temporary wedging when determining -EIO 2019-02-20 16:31:08 +00:00
lib_sw_fence.c drm/i915: Replace global breadcrumbs with per-context interrupt tracking 2019-01-29 21:45:22 +00:00
lib_sw_fence.h drm/i915: Replace global breadcrumbs with per-context interrupt tracking 2019-01-29 21:45:22 +00:00
mock_context.c drm/i915: Refactor out intel_context_init() 2019-01-22 13:13:53 +00:00
mock_context.h drm/i915/selftests: Use a sacrificial context for hang testing 2018-02-05 15:27:24 +00:00
mock_dmabuf.c drm/i915/selftests: Remove unused dmabuf->kmap routines, fix the build 2018-06-20 17:48:24 +01:00
mock_dmabuf.h
mock_drm.c
mock_drm.h
mock_engine.c drm/i915: Replace global breadcrumbs with per-context interrupt tracking 2019-01-29 21:45:22 +00:00
mock_engine.h drm/i915: Replace global breadcrumbs with per-context interrupt tracking 2019-01-29 21:45:22 +00:00
mock_gem_device.c drm/i915: Revoke mmaps and prevent access to fence registers across reset 2019-02-08 16:47:32 +00:00
mock_gem_device.h
mock_gem_object.h
mock_gtt.c drm/i915/selftests: Create a clean GGTT for vma/gtt selftesting 2019-01-22 12:50:39 +00:00
mock_gtt.h drm/i915/selftests: Create a clean GGTT for vma/gtt selftesting 2019-01-22 12:50:39 +00:00
mock_request.c drm/i915: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00:00
mock_request.h drm/i915: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00:00
mock_timeline.c drm/i915: Pull i915_gem_active into the i915_active family 2019-02-05 17:20:11 +00:00
mock_timeline.h drm/i915: Split i915_gem_timeline into individual timelines 2018-05-02 23:57:18 +01:00
mock_uncore.c
mock_uncore.h
scatterlist.c