Resets are notoriously hard to get fully working and notoriously racey, especially with selftests / IGTs that do all sorts of wild things that would be near impossible to hit during normal use cases. Even though likely impossible to hit, anything selftests / IGTs uncover needs to be fixed. This series addresses 7 such issues, adds a workaround to a selftest, and add another selftest to prove scrubbing of G2H during a reset works. v2: (Daniel Vetter) - Split fixes into individual patches - A kernel doc - A VLK ref for selftest workaround (Checkpatch) - Fix warnings Signed-off-by: Matthew Brost <matthew.brost@xxxxxxxxx> Matthew Brost (9): drm/i915/guc: Fix blocked context accounting drm/i915/guc: outstanding G2H accounting drm/i915/guc: Unwind context requests in reverse order drm/i915/guc: Don't drop ce->guc_active.lock when unwinding context drm/i915/guc: Flush the work queue for GuC generated G2H drm/i915/guc: Do not clear enable during reset in an enable is inflight drm/i915/guc: Don't enable scheduling on a banned context drm/i915/selftests: Fix memory corruption in live_lrc_isolation drm/i915/selftests: Add initial GuC selftest for scrubbing lost G2H drivers/gpu/drm/i915/gt/intel_context_types.h | 18 +++ drivers/gpu/drm/i915/gt/selftest_lrc.c | 29 +++- .../gpu/drm/i915/gt/uc/intel_guc_submission.c | 69 +++++++--- drivers/gpu/drm/i915/gt/uc/selftest_guc.c | 126 ++++++++++++++++++ .../drm/i915/selftests/i915_live_selftests.h | 1 + .../i915/selftests/intel_scheduler_helpers.c | 12 ++ .../i915/selftests/intel_scheduler_helpers.h | 2 + 7 files changed, 239 insertions(+), 18 deletions(-) create mode 100644 drivers/gpu/drm/i915/gt/uc/selftest_guc.c -- 2.32.0