Skip to content

Restore workarounds after engine reset and unify their handling

Tvrtko Ursulin intel-gfx 4 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 Latest7 patches 4 repliesIn review
  2. v37 patches 7 repliesSuperseded
  3. v20 of 8 patches 0 repliesSuperseded
Earlier versions · 1
VersionPostedPatchesRepliesStatus
v18 patches14 repliesSuperseded

Changes in v4 from the cover letter

* Further review comment tweaks.

Patches in v4 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7drm/i915: Record GT workarounds in a listdrivers/gpu/drm/i915/i915_drv.c drivers/gpu/drm/i915/i915_drv.h drivers/gpu/drm/i915/i915_gem.c +2 more+355 -1681 reply
1/7drm/i915: Record GT workarounds in a listdrivers/gpu/drm/i915/i915_drv.c drivers/gpu/drm/i915/i915_drv.h drivers/gpu/drm/i915/i915_gem.c +2 more+354 -1680 replies
2/7drm/i915: Introduce per-engine workaroundsdrivers/gpu/drm/i915/intel_engine_cs.c drivers/gpu/drm/i915/intel_lrc.c drivers/gpu/drm/i915/intel_ringbuffer.h +2 more+153 -1190 replies
2/7drm/i915: Introduce per-engine workaroundsdrivers/gpu/drm/i915/intel_engine_cs.c drivers/gpu/drm/i915/intel_lrc.c drivers/gpu/drm/i915/intel_ringbuffer.h +2 more+153 -1190 replies
3/7drm/i915: Verify GT workaround state after GPU initdrivers/gpu/drm/i915/i915_drv.c drivers/gpu/drm/i915/i915_gem.c drivers/gpu/drm/i915/intel_workarounds.c +1 more+40 -00 replies
4/7drm/i915/selftests: Add tests for GT and engine workaround verificationdrivers/gpu/drm/i915/Makefile drivers/gpu/drm/i915/intel_workarounds.c drivers/gpu/drm/i915/selftests/igt_reset.c +3 more+214 -470 replies
5/7drm/i915: Move register white-listing to the common workaround frameworkdrivers/gpu/drm/i915/intel_engine_cs.c drivers/gpu/drm/i915/intel_lrc.c drivers/gpu/drm/i915/intel_ringbuffer.h +3 more+60 -730 replies
6/7drm/i915: Fuse per-context workaround handling with the common frameworkdrivers/gpu/drm/i915/i915_debugfs.c drivers/gpu/drm/i915/i915_drv.h drivers/gpu/drm/i915/i915_gem_context.c +6 more+168 -2100 replies
6/7drm/i915: Fuse per-context workaround handling with the common frameworkdrivers/gpu/drm/i915/i915_debugfs.c drivers/gpu/drm/i915/i915_drv.h drivers/gpu/drm/i915/i915_gem_context.c +6 more+168 -2090 replies
7/7drm/i915: Trim unused workaround list entriesdrivers/gpu/drm/i915/intel_workarounds.c+15 -11 reply

Reviews trailers per patch

All 10 patches have a Reviewed-by or Acked-by.

PatchRodrigo ViviChris Wilson
1/7R-b R-b R-b
1/7R-b R-b R-b
2/7A-b A-b R-b R-b
2/7A-b A-b R-b R-b
3/7R-b
4/7R-b
5/7R-b
6/7R-b R-b
6/7R-b R-b
7/7R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v4 thread

Cover letter [PATCH v4 0/7] Restore workarounds after engine reset and unify their handling

From: Tvrtko Ursulin <[email protected]>

First two patches in this series fix losing of workarounds after engine reset
(https://bugzilla.freedesktop.org/show_bug.cgi?id=107945) which started happening after 59b449d5c82a ("drm/i915: Split out functions for different kinds of workarounds").

But since it was discovered to be unsafe to simply re-apply all of them, against a possibly active GPU, and potentially from IRQ context, the approach taken was to split GT workarounds and per-engine workarounds. Latter so far contain the ones living in the 0x2xxx and 0xbxxx range, which were empirically shown to be lost after RCS reset.

This way only a smaller set of affected workarounds can be applied after engine resetm, which is done with irq safe read-modify-write cycle.

The series is structured like this so first two patches are as standalone as possible so it is easy (easier) to backport them. The rest of the series cleans up the whole workaround handling by moving all four classes of them to a common framework.

v2:
* One patch less due removing verification after engine reset.
* See patch change logs.

v3:
* Further review comments as per individual change logs.

v4:
* Further review comment tweaks.

Tvrtko Ursulin (7):
drm/i915: Record GT workarounds in a list
drm/i915: Introduce per-engine workarounds
drm/i915: Verify GT workaround state after GPU init drm/i915/selftests: Add tests for GT and engine workaround
verification
drm/i915: Move register white-listing to the common workaround
framework
drm/i915: Fuse per-context workaround handling with the common
framework
drm/i915: Trim unused workaround list entries

 drivers/gpu/drm/i915/Makefile                 |   1 +
 drivers/gpu/drm/i915/i915_debugfs.c           |  12 +-
 drivers/gpu/drm/i915/i915_drv.c               |   2 +
 drivers/gpu/drm/i915/i915_drv.h               |  17 +-
 drivers/gpu/drm/i915/i915_gem.c               |   7 +-
 drivers/gpu/drm/i915/i915_gem_context.c       |   6 +-
 drivers/gpu/drm/i915/intel_engine_cs.c        |   4 +
 drivers/gpu/drm/i915/intel_lrc.c              |  11 +-
 drivers/gpu/drm/i915/intel_ringbuffer.c       |   2 +-
 drivers/gpu/drm/i915/intel_ringbuffer.h       |   4 +
 drivers/gpu/drm/i915/intel_workarounds.c      | 989 +++++++++++-------
 drivers/gpu/drm/i915/intel_workarounds.h      |  36 +-
 drivers/gpu/drm/i915/selftests/igt_reset.c    |  44 +
 drivers/gpu/drm/i915/selftests/igt_reset.h    |  15 +
 .../gpu/drm/i915/selftests/intel_hangcheck.c  |  51 +-
 .../drm/i915/selftests/intel_workarounds.c    | 184 +++-
 16 files changed, 886 insertions(+), 499 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/selftests/igt_reset.c
 create mode 100644 drivers/gpu/drm/i915/selftests/igt_reset.h
Signature · 6 lines
2.19.1

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx