Gen8+ engine-reset

Submitted by Michel Thierry on March 25, 2017, 1:29 a.m.

Details

Reviewer None
Submitted March 25, 2017, 1:29 a.m.
Last Updated June 15, 2017, 8:42 p.m.
Revision 13

Cover Letter(s)

Revision 1
      These patches add the reset-engine feature from Gen8. This is also
referred to as Timeout detection and recovery (TDR). This complements to
the full gpu reset feature available in i915 but it only allows to reset a
particular engine instead of all engines thus providing a light weight
engine reset and recovery mechanism.

Thanks to recent changes merged, this implementation is now not only for
execlists, but for GuC based submission too; it is still limited from
Gen8 onwards. I have also included the changes for watchdog timeout
detection. The GuC related patches can be seen as RFC.

Timeout detection relies on the existing hangcheck, which remains the same;
main changes are to the recovery mechanism. Once we detect a hang on a
particular engine we identify the request that caused the hang, skip the
request and adjust head pointers to allow the execution to proceed
normally. After some cleanup, submissions are restarted to process
remaining work queued to that engine.

If engine reset fails to recover engine correctly then we fallback to full
gpu reset.

We can argue about the effectiveness of reset-engine vs full reset when
more than one ring is hung, but the benefits of just resetting one engine
are reduced when the driver has to do it multiple times.

Note - with guc submission enabled, Fi.CI.BAT is reporting a regression
in gem_ringfill@basic-default-hang. But local testing show it can only be
reproducible while running IGT v1.7; IGT v1.8 or newer don't show the
problem.

v2: ELSP queue request tracking and reset path changes to handle incomplete
requests during reset. Thanks to Chris Wilson for providing these patches.

v3: Let the waiter keep handling the full gpu reset if it already has the
lock; point out that GuC submission needs a different method to restart
workloads after the engine reset completes.

v4: Handle reset as 2 level resets, by first going to engine only and fall
backing to full/chip reset as needed, i.e. reset_engine will need the
struct_mutex.

v5: Rebased after reset flag split in 2, add GuC support, include watchdog
detection patches, addressing comments from prev RFC.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>

Arun Siluvery (7):
  drm/i915: Update i915.reset to handle engine resets
  drm/i915/tdr: Modify error handler for per engine hang recovery
  drm/i915/tdr: Add support for per engine reset recovery
  drm/i915/tdr: Add engine reset count to error state
  drm/i915/tdr: Export per-engine reset count info to debugfs
  drm/i915/tdr: Enable Engine reset and recovery support
  drm/i915/guc: Provide register list to be saved/restored during engine
    reset

Michel Thierry (10):
  drm/i915: Fix stale comment about I915_RESET_IN_PROGRESS flag
  drm/i915: Rename gen8_(un)request_engine_reset to
    gen8_(un)request_reset_engine
  drm/i915: Add engine reset count in get-reset-stats ioctl
  drm/i915/selftests: reset engine self tests
  drm/i915/guc: Add support for reset engine using GuC commands
  drm/i915: Watchdog timeout: Pass GuC shared data structure during
    param load
  drm/i915: Watchdog timeout: IRQ handler for gen8+
  drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+
  drm/i915: Watchdog timeout: DRM kernel interface to set the timeout
  drm/i915: Watchdog timeout: Export media reset count from GuC to
    debugfs

Mika Kuoppala (1):
  drm/i915: Skip reset request if there is one already

 drivers/gpu/drm/i915/i915_debugfs.c              |  49 +++++++
 drivers/gpu/drm/i915/i915_drv.c                  | 150 +++++++++++++++++++++-
 drivers/gpu/drm/i915/i915_drv.h                  |  34 ++++-
 drivers/gpu/drm/i915/i915_gem.c                  |  16 ++-
 drivers/gpu/drm/i915/i915_gem_context.c          |  92 +++++++++++++-
 drivers/gpu/drm/i915/i915_gem_context.h          |  24 ++++
 drivers/gpu/drm/i915/i915_gem_request.c          |   5 +-
 drivers/gpu/drm/i915/i915_gpu_error.c            |  14 +-
 drivers/gpu/drm/i915/i915_guc_submission.c       |  98 +++++++++++++-
 drivers/gpu/drm/i915/i915_irq.c                  |  32 ++++-
 drivers/gpu/drm/i915/i915_params.c               |   6 +-
 drivers/gpu/drm/i915/i915_params.h               |   2 +-
 drivers/gpu/drm/i915/i915_pci.c                  |   5 +-
 drivers/gpu/drm/i915/i915_reg.h                  |   6 +
 drivers/gpu/drm/i915/intel_guc_fwif.h            |  26 +++-
 drivers/gpu/drm/i915/intel_guc_loader.c          |   8 ++
 drivers/gpu/drm/i915/intel_hangcheck.c           |  13 +-
 drivers/gpu/drm/i915/intel_lrc.c                 | 155 ++++++++++++++++++++++-
 drivers/gpu/drm/i915/intel_ringbuffer.h          |  24 ++++
 drivers/gpu/drm/i915/intel_uc.h                  |   1 +
 drivers/gpu/drm/i915/intel_uncore.c              |  43 ++++++-
 drivers/gpu/drm/i915/selftests/intel_hangcheck.c | 148 +++++++++++++++++++++-
 include/uapi/drm/i915_drm.h                      |   7 +-
 23 files changed, 906 insertions(+), 52 deletions(-)
    
Revision 2
      These patches add the reset-engine feature from Gen8. This is also
referred to as Timeout detection and recovery (TDR). This complements to
the full gpu reset feature available in i915 but it only allows to reset a
particular engine instead of all engines thus providing a light weight
engine reset and recovery mechanism.

Thanks to recent changes merged, this implementation is now not only for
execlists, but for GuC based submission too; it is still limited from
Gen8 onwards. I have also included the changes for watchdog timeout
detection. The GuC related patches are functional, but can be seen as RFC.

Timeout detection relies on the existing hangcheck, which remains the same;
main changes are to the recovery mechanism. Once we detect a hang on a
particular engine we identify the request that caused the hang, skip the
request and adjust head pointers to allow the execution to proceed
normally. After some cleanup, submissions are restarted to process
remaining work queued to that engine.

If engine reset fails to recover engine correctly then we fallback to full
gpu reset.

We can argue about the effectiveness of reset-engine vs full reset when
more than one ring is hung, but the benefits of just resetting one engine
are reduced when the driver has to do it multiple times.

v2: ELSP queue request tracking and reset path changes to handle incomplete
requests during reset. Thanks to Chris Wilson for providing these patches.

v3: Let the waiter keep handling the full gpu reset if it already has the
lock; point out that GuC submission needs a different method to restart
workloads after the engine reset completes.

v4: Handle reset as 2 level resets, by first going to engine only and fall
backing to full/chip reset as needed, i.e. reset_engine will need the
struct_mutex.

v5: Rebased after reset flag split in 2, add GuC support, include watchdog
detection patches, addressing comments from prev RFC.

v6: Mutex-less reset engine. Updates in watchdog abi and guc whitelist &
register-restore fixes (including an old patch from Daniele).

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>

Arun Siluvery (7):
  drm/i915: Update i915.reset to handle engine resets
  drm/i915/tdr: Modify error handler for per engine hang recovery
  drm/i915/tdr: Add support for per engine reset recovery
  drm/i915/tdr: Add engine reset count to error state
  drm/i915/tdr: Export per-engine reset count info to debugfs
  drm/i915/tdr: Enable Engine reset and recovery support
  drm/i915/guc: Provide register list to be saved/restored during engine
    reset

Daniele Ceraolo Spurio (1):
  drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder

Michel Thierry (11):
  drm/i915: Fix stale comment about I915_RESET_IN_PROGRESS flag
  drm/i915: Rename gen8_(un)request_engine_reset to
    gen8_reset_engine_start/cancel
  drm/i915: Add engine reset count in get-reset-stats ioctl
  drm/i915/selftests: reset engine self tests
  drm/i915/guc: Add support for reset engine using GuC commands
  drm/i915: Watchdog timeout: Pass GuC shared data structure during
    param load
  drm/i915: Watchdog timeout: IRQ handler for gen8+
  drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+
  drm/i915: Watchdog timeout: DRM kernel interface to set the timeout
  drm/i915: Watchdog timeout: Include threshold value in error state
  drm/i915: Watchdog timeout: Export media reset count from GuC to
    debugfs

Mika Kuoppala (1):
  drm/i915: Skip reset request if there is one already

 drivers/gpu/drm/i915/i915_debugfs.c              |  43 +++++++
 drivers/gpu/drm/i915/i915_drv.c                  | 104 ++++++++++++++-
 drivers/gpu/drm/i915/i915_drv.h                  |  63 ++++++++-
 drivers/gpu/drm/i915/i915_gem.c                  |  97 ++++++++------
 drivers/gpu/drm/i915/i915_gem_context.c          | 116 ++++++++++++++++-
 drivers/gpu/drm/i915/i915_gem_context.h          |   4 +
 drivers/gpu/drm/i915/i915_gem_request.c          |   2 +-
 drivers/gpu/drm/i915/i915_gpu_error.c            |  14 +-
 drivers/gpu/drm/i915/i915_guc_submission.c       | 128 +++++++++++++++++--
 drivers/gpu/drm/i915/i915_irq.c                  |  43 ++++++-
 drivers/gpu/drm/i915/i915_params.c               |   6 +-
 drivers/gpu/drm/i915/i915_params.h               |   2 +-
 drivers/gpu/drm/i915/i915_pci.c                  |   5 +-
 drivers/gpu/drm/i915/i915_reg.h                  |   6 +
 drivers/gpu/drm/i915/intel_guc_fwif.h            |  27 +++-
 drivers/gpu/drm/i915/intel_guc_loader.c          |  11 ++
 drivers/gpu/drm/i915/intel_hangcheck.c           |  13 +-
 drivers/gpu/drm/i915/intel_lrc.c                 | 156 ++++++++++++++++++++++-
 drivers/gpu/drm/i915/intel_ringbuffer.h          |  24 ++++
 drivers/gpu/drm/i915/intel_uc.h                  |   3 +
 drivers/gpu/drm/i915/intel_uncore.c              |  43 ++++++-
 drivers/gpu/drm/i915/selftests/intel_hangcheck.c | 147 +++++++++++++++++++++
 include/uapi/drm/i915_drm.h                      |   7 +-
 23 files changed, 972 insertions(+), 92 deletions(-)
    
Revision 4
      These patches add the reset-engine feature from Gen8. This is also
referred to as Timeout detection and recovery (TDR). This complements to
the full gpu reset feature available in i915 but it only allows to reset a
particular engine instead of all engines thus providing a light weight
engine reset and recovery mechanism.

Thanks to recent changes merged, this implementation is now not only for
execlists, but for GuC based submission too; it is still limited from
Gen8 onwards. I have also included the changes for watchdog timeout
detection. The GuC related patches are functional, but can be seen as RFC.

Timeout detection relies on the existing hangcheck, which remains the same;
main changes are to the recovery mechanism. Once we detect a hang on a
particular engine we identify the request that caused the hang, skip the
request and adjust head pointers to allow the execution to proceed
normally. After some cleanup, submissions are restarted to process
remaining work queued to that engine.

If engine reset fails to recover engine correctly then we fallback to full
gpu reset.

We can argue about the effectiveness of reset-engine vs full reset when
more than one ring is hung, but the benefits of just resetting one engine
are reduced when the driver has to do it multiple times.

v2: ELSP queue request tracking and reset path changes to handle incomplete
requests during reset. Thanks to Chris Wilson for providing these patches.

v3: Let the waiter keep handling the full gpu reset if it already has the
lock; point out that GuC submission needs a different method to restart
workloads after the engine reset completes.

v4: Handle reset as 2 level resets, by first going to engine only and fall
backing to full/chip reset as needed, i.e. reset_engine will need the
struct_mutex.

v5: Rebased after reset flag split in 2, add GuC support, include watchdog
detection patches, addressing comments from prev RFC.

v6: Mutex-less reset engine. Updates in watchdog abi and guc whitelist &
register-restore fixes (including an old patch from Daniele).

v7: Removed leftovers from v5; review comments; ability to cancel the reset
if there's no active request.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>

Arun Siluvery (7):
  drm/i915: Update i915.reset to handle engine resets
  drm/i915: Modify error handler for per engine hang recovery
  drm/i915: Add support for per engine reset recovery
  drm/i915: Add engine reset count to error state
  drm/i915: Export per-engine reset count info to debugfs
  drm/i915: Enable Engine reset and recovery support
  drm/i915/guc: Provide register list to be saved/restored during engine
    reset

Daniele Ceraolo Spurio (1):
  drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder

Michel Thierry (11):
  drm/i915: Cancel reset-engine if we couldn't find an active request
  drm/i915: Add engine reset count in get-reset-stats ioctl
  drm/i915/selftests: reset engine self tests
  drm/i915/guc: Rename the function that resets the GuC
  drm/i915/guc: Add support for reset engine using GuC commands
  drm/i915: Watchdog timeout: Pass GuC shared data structure during
    param load
  drm/i915: Watchdog timeout: IRQ handler for gen8+
  drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+
  drm/i915: Watchdog timeout: DRM kernel interface to set the timeout
  drm/i915: Watchdog timeout: Include threshold value in error state
  drm/i915: Watchdog timeout: Export media reset count from GuC to
    debugfs

Mika Kuoppala (1):
  drm/i915: Skip reset request if there is one already

 drivers/gpu/drm/i915/i915_debugfs.c              |  43 +++++++
 drivers/gpu/drm/i915/i915_drv.c                  | 109 +++++++++++++++-
 drivers/gpu/drm/i915/i915_drv.h                  |  67 +++++++++-
 drivers/gpu/drm/i915/i915_gem.c                  | 116 ++++++++++-------
 drivers/gpu/drm/i915/i915_gem_context.c          | 109 +++++++++++++++-
 drivers/gpu/drm/i915/i915_gem_context.h          |   4 +
 drivers/gpu/drm/i915/i915_gem_request.c          |   2 +-
 drivers/gpu/drm/i915/i915_gpu_error.c            |  14 +-
 drivers/gpu/drm/i915/i915_guc_submission.c       | 136 ++++++++++++++++++--
 drivers/gpu/drm/i915/i915_irq.c                  |  45 ++++++-
 drivers/gpu/drm/i915/i915_params.c               |   6 +-
 drivers/gpu/drm/i915/i915_params.h               |   2 +-
 drivers/gpu/drm/i915/i915_pci.c                  |   5 +-
 drivers/gpu/drm/i915/i915_reg.h                  |   6 +
 drivers/gpu/drm/i915/intel_engine_cs.c           |  65 +++++++---
 drivers/gpu/drm/i915/intel_guc_fwif.h            |  27 +++-
 drivers/gpu/drm/i915/intel_guc_loader.c          |  11 ++
 drivers/gpu/drm/i915/intel_hangcheck.c           |  13 +-
 drivers/gpu/drm/i915/intel_lrc.c                 | 155 ++++++++++++++++++++++-
 drivers/gpu/drm/i915/intel_ringbuffer.h          |   8 ++
 drivers/gpu/drm/i915/intel_uc.c                  |   4 +-
 drivers/gpu/drm/i915/intel_uc.h                  |   3 +
 drivers/gpu/drm/i915/intel_uncore.c              |  37 +++++-
 drivers/gpu/drm/i915/selftests/intel_hangcheck.c | 147 +++++++++++++++++++++
 include/uapi/drm/i915_drm.h                      |   7 +-
 25 files changed, 1023 insertions(+), 118 deletions(-)
    
Revision 11
      These patches add the reset-engine feature from Gen8. This is also
referred to as Timeout detection and recovery (TDR). This complements to
the full gpu reset feature available in i915 but it only allows to reset a
particular engine instead of all engines thus providing a light weight
engine reset and recovery mechanism.

Thanks to recent changes merged, this implementation is now not only for
execlists, but for GuC based submission too; it is still limited from
Gen8 onwards. I have also included the changes for watchdog timeout
detection. The GuC related patches are functional, but can be seen as RFC.

Timeout detection relies on the existing hangcheck, which remains the same;
main changes are to the recovery mechanism. Once we detect a hang on a
particular engine we identify the request that caused the hang, skip the
request and adjust head pointers to allow the execution to proceed
normally. After some cleanup, submissions are restarted to process
remaining work queued to that engine.

If engine reset fails to recover engine correctly then we fallback to full
gpu reset.

We can argue about the effectiveness of reset-engine vs full reset when
more than one ring is hung, but the benefits of just resetting one engine
are reduced when the driver has to do it multiple times.

v2: ELSP queue request tracking and reset path changes to handle incomplete
requests during reset. Thanks to Chris Wilson for providing these patches.

v3: Let the waiter keep handling the full gpu reset if it already has the
lock; point out that GuC submission needs a different method to restart
workloads after the engine reset completes.

v4: Handle reset as 2 level resets, by first going to engine only and fall
backing to full/chip reset as needed, i.e. reset_engine will need the
struct_mutex.

v5: Rebased after reset flag split in 2, add GuC support, include watchdog
detection patches, addressing comments from prev RFC.

v6: Mutex-less reset engine. Updates in watchdog abi and guc whitelist &
register-restore fixes (including an old patch from Daniele).

v7: Removed leftovers from v5; review comments; ability to cancel the reset
if there's no active request.

v8: Moved patch looking for active request at the beginning of these series;
drop patch to request the engine's reset readinnes earlier since this is
done during the reset flow too; warn if hw fails to acknowledge reset
_readiness_.

Daniele Ceraolo Spurio (1):
  drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder

Michel Thierry (19):
  drm/i915: Look for active requests earlier in the reset path
  drm/i915: Update i915.reset to handle engine resets
  drm/i915: Modify error handler for per engine hang recovery
  drm/i915: Add support for per engine reset recovery
  drm/i915: Add engine reset count to error state
  drm/i915: Export per-engine reset count info to debugfs
  drm/i915: Carry on with reset even if hw engine is not ready
  drm/i915: Enable Engine reset and recovery support
  drm/i915: Add engine reset count in get-reset-stats ioctl
  drm/i915/selftests: reset engine self tests
  drm/i915/guc: Provide register list to be saved/restored during engine
    reset
  drm/i915/guc: Rename the function that resets the GuC
  drm/i915/guc: Add support for reset engine using GuC commands
  drm/i915: Watchdog timeout: Pass GuC shared data structure during
    param load
  drm/i915: Watchdog timeout: IRQ handler for gen8+
  drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+
  drm/i915: Watchdog timeout: DRM kernel interface to set the timeout
  drm/i915: Watchdog timeout: Include threshold value in error state
  drm/i915: Watchdog timeout: Export media reset count from GuC to
    debugfs

 drivers/gpu/drm/i915/i915_debugfs.c              |  43 +++++++
 drivers/gpu/drm/i915/i915_drv.c                  |  74 +++++++++++
 drivers/gpu/drm/i915/i915_drv.h                  |  90 ++++++++++++-
 drivers/gpu/drm/i915/i915_gem.c                  | 104 +++++++++------
 drivers/gpu/drm/i915/i915_gem_context.c          | 109 +++++++++++++++-
 drivers/gpu/drm/i915/i915_gem_context.h          |   4 +
 drivers/gpu/drm/i915/i915_gpu_error.c            |  15 ++-
 drivers/gpu/drm/i915/i915_guc_submission.c       | 138 ++++++++++++++++++--
 drivers/gpu/drm/i915/i915_irq.c                  |  36 +++++-
 drivers/gpu/drm/i915/i915_params.c               |   6 +-
 drivers/gpu/drm/i915/i915_params.h               |   2 +-
 drivers/gpu/drm/i915/i915_pci.c                  |   5 +-
 drivers/gpu/drm/i915/i915_reg.h                  |   6 +
 drivers/gpu/drm/i915/intel_engine_cs.c           |  65 +++++++---
 drivers/gpu/drm/i915/intel_guc_fwif.h            |  27 +++-
 drivers/gpu/drm/i915/intel_guc_loader.c          |  11 ++
 drivers/gpu/drm/i915/intel_hangcheck.c           |  13 +-
 drivers/gpu/drm/i915/intel_lrc.c                 | 155 ++++++++++++++++++++++-
 drivers/gpu/drm/i915/intel_ringbuffer.h          |   9 ++
 drivers/gpu/drm/i915/intel_uc.c                  |   4 +-
 drivers/gpu/drm/i915/intel_uc.h                  |   3 +
 drivers/gpu/drm/i915/intel_uncore.c              |  16 ++-
 drivers/gpu/drm/i915/selftests/intel_hangcheck.c | 149 ++++++++++++++++++++++
 include/uapi/drm/i915_drm.h                      |   7 +-
 24 files changed, 986 insertions(+), 105 deletions(-)
    
Revision 13
      These patches add the reset-engine feature from Gen8. This is also
referred to as Timeout detection and recovery (TDR). This complements to
the full gpu reset feature available in i915 but it only allows to reset a
particular engine instead of all engines thus providing a light weight
engine reset and recovery mechanism.

Thanks to recent changes merged, this implementation is now not only for
execlists, but for GuC based submission too; it is still limited from
Gen8 onwards. I have also included the changes for watchdog timeout
detection. The GuC related patches are functional, but can be seen as RFC.

Timeout detection relies on the existing hangcheck, which remains the same;
main changes are to the recovery mechanism. Once we detect a hang on a
particular engine we identify the request that caused the hang, skip the
request and adjust head pointers to allow the execution to proceed
normally. After some cleanup, submissions are restarted to process
remaining work queued to that engine.

If engine reset fails to recover engine correctly then we fallback to full
gpu reset.

We can argue about the effectiveness of reset-engine vs full reset when
more than one ring is hung, but the benefits of just resetting one engine
are reduced when the driver has to do it multiple times.

v2: ELSP queue request tracking and reset path changes to handle incomplete
requests during reset. Thanks to Chris Wilson for providing these patches.

v3: Let the waiter keep handling the full gpu reset if it already has the
lock; point out that GuC submission needs a different method to restart
workloads after the engine reset completes.

v4: Handle reset as 2 level resets, by first going to engine only and fall
backing to full/chip reset as needed, i.e. reset_engine will need the
struct_mutex.

v5: Rebased after reset flag split in 2, add GuC support, include watchdog
detection patches, addressing comments from prev RFC.

v6: Mutex-less reset engine. Updates in watchdog abi and guc whitelist &
register-restore fixes (including an old patch from Daniele).

v7: Removed leftovers from v5; review comments; ability to cancel the reset
if there's no active request.

v8: Moved patch looking for active request at the beginning of these series;
drop patch to request the engine's reset readinnes earlier since this is
done during the reset flow too; warn if hw fails to acknowledge reset
_readiness_.

v9: Support parallel resets (in different engines). Return type of reset
available in get-param ioctl. Watchdog timeout won't capture the error state.

Daniele Ceraolo Spurio (1):
  drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder

Michel Thierry (20):
  drm/i915: Look for active requests earlier in the reset path
  drm/i915: Update i915.reset to handle engine resets
  drm/i915: Modify error handler for per engine hang recovery
  drm/i915: Include reset engine information in has_gpu_reset getparam
  drm/i915: Add support for per engine reset recovery
  drm/i915: Add engine reset count to error state
  drm/i915: Export per-engine reset count info to debugfs
  drm/i915: Carry on with reset even if hw engine is not ready
  drm/i915: Enable Engine reset and recovery support
  drm/i915: Add engine reset count in get-reset-stats ioctl
  drm/i915/selftests: reset engine self tests
  drm/i915/guc: Provide register list to be saved/restored during engine
    reset
  drm/i915/guc: Rename the function that resets the GuC
  drm/i915/guc: Add support for reset engine using GuC commands
  drm/i915: Watchdog timeout: Pass GuC shared data structure during
    param load
  drm/i915: Watchdog timeout: IRQ handler for gen8+
  drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+
  drm/i915: Watchdog timeout: DRM kernel interface to set the timeout
  drm/i915: Watchdog timeout: Include threshold value in error state
  drm/i915: Watchdog timeout: Export media reset count from GuC to
    debugfs

 drivers/gpu/drm/i915/i915_debugfs.c              |  43 +++++++
 drivers/gpu/drm/i915/i915_drv.c                  |  76 +++++++++++
 drivers/gpu/drm/i915/i915_drv.h                  |  92 +++++++++++++-
 drivers/gpu/drm/i915/i915_gem.c                  | 104 +++++++++------
 drivers/gpu/drm/i915/i915_gem_context.c          | 107 +++++++++++++++-
 drivers/gpu/drm/i915/i915_gem_context.h          |   4 +
 drivers/gpu/drm/i915/i915_gpu_error.c            |  15 ++-
 drivers/gpu/drm/i915/i915_guc_submission.c       | 138 ++++++++++++++++++--
 drivers/gpu/drm/i915/i915_irq.c                  |  62 ++++++++-
 drivers/gpu/drm/i915/i915_params.c               |   6 +-
 drivers/gpu/drm/i915/i915_params.h               |   2 +-
 drivers/gpu/drm/i915/i915_pci.c                  |   5 +-
 drivers/gpu/drm/i915/i915_reg.h                  |   6 +
 drivers/gpu/drm/i915/intel_engine_cs.c           |  65 +++++++---
 drivers/gpu/drm/i915/intel_guc_fwif.h            |  27 +++-
 drivers/gpu/drm/i915/intel_guc_loader.c          |  11 ++
 drivers/gpu/drm/i915/intel_hangcheck.c           |  13 +-
 drivers/gpu/drm/i915/intel_lrc.c                 | 155 ++++++++++++++++++++++-
 drivers/gpu/drm/i915/intel_ringbuffer.h          |   9 ++
 drivers/gpu/drm/i915/intel_uc.c                  |   4 +-
 drivers/gpu/drm/i915/intel_uc.h                  |   3 +
 drivers/gpu/drm/i915/intel_uncore.c              |  16 ++-
 drivers/gpu/drm/i915/selftests/intel_hangcheck.c | 150 ++++++++++++++++++++++
 include/uapi/drm/i915_drm.h                      |   7 +-
 24 files changed, 1015 insertions(+), 105 deletions(-)
    

Revisions

Patches download mbox

# Name Submitter State
[v5,01/18] drm/i915: Fix stale comment about I915_RESET_IN_PROGRESS flag Michel Thierry Accepted
[v5,02/18] drm/i915: Rename gen8_(un)request_engine_reset to gen8_(un)request_reset_engine Michel Thierry New
[v5,03/18] drm/i915: Update i915.reset to handle engine resets Michel Thierry Accepted
[v5,04/18] drm/i915/tdr: Modify error handler for per engine hang recovery Michel Thierry New
[v5,05/18] drm/i915/tdr: Add support for per engine reset recovery Michel Thierry New
[v5,06/18] drm/i915: Skip reset request if there is one already Michel Thierry New
[v5,07/18] drm/i915/tdr: Add engine reset count to error state Michel Thierry New
[v5,08/18] drm/i915/tdr: Export per-engine reset count info to debugfs Michel Thierry Accepted
[v5,09/18] drm/i915/tdr: Enable Engine reset and recovery support Michel Thierry New
[v5,10/18] drm/i915: Add engine reset count in get-reset-stats ioctl Michel Thierry New
[v5,11/18] drm/i915/selftests: reset engine self tests Michel Thierry New
[v5,12/18] drm/i915/guc: Provide register list to be saved/restored during engine reset Michel Thierry New
[v5,13/18] drm/i915/guc: Add support for reset engine using GuC commands Michel Thierry New
[v5,14/18] drm/i915: Watchdog timeout: Pass GuC shared data structure during param load Michel Thierry New
[v5,15/18] drm/i915: Watchdog timeout: IRQ handler for gen8+ Michel Thierry New
[v5,16/18] drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+ Michel Thierry New
[v5,17/18] drm/i915: Watchdog timeout: DRM kernel interface to set the timeout Michel Thierry New
[v5,18/18] drm/i915: Watchdog timeout: Export media reset count from GuC to debugfs Michel Thierry New

Tests

Series 21868v1 Gen8+ engine-reset
https://patchwork.freedesktop.org/api/1.0/series/21868/revisions/1/mbox/

Test pm_rpm:
        Subgroup basic-rte:
                pass       -> DMESG-WARN (fi-skl-6770hq)
Test pm_rps:
        Subgroup basic-api:
                pass       -> INCOMPLETE (fi-skl-6770hq)

fi-bdw-5557u     total:278  pass:267  dwarn:0   dfail:0   fail:0   skip:11  time: 471s
fi-bdw-gvtdvm    total:278  pass:256  dwarn:8   dfail:0   fail:0   skip:14  time: 469s
fi-bsw-n3050     total:278  pass:239  dwarn:0   dfail:0   fail:0   skip:39  time: 585s
fi-bxt-j4205     total:278  pass:259  dwarn:0   dfail:0   fail:0   skip:19  time: 537s
fi-bxt-t5700     total:278  pass:258  dwarn:0   dfail:0   fail:0   skip:20  time: 574s
fi-byt-j1900     total:278  pass:251  dwarn:0   dfail:0   fail:0   skip:27  time: 505s
fi-hsw-4770      total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time: 439s
fi-hsw-4770r     total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time: 437s
fi-ilk-650       total:278  pass:228  dwarn:0   dfail:0   fail:0   skip:50  time: 444s
fi-ivb-3520m     total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time: 513s
fi-ivb-3770      total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time: 491s
fi-kbl-7500u     total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time: 481s
fi-skl-6260u     total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time: 486s
fi-skl-6700hq    total:278  pass:261  dwarn:0   dfail:0   fail:0   skip:17  time: 600s
fi-skl-6700k     total:278  pass:256  dwarn:4   dfail:0   fail:0   skip:18  time: 494s
fi-skl-6770hq    total:243  pass:232  dwarn:1   dfail:0   fail:0   skip:9   time: 0s
fi-skl-gvtdvm    total:278  pass:265  dwarn:0   dfail:0   fail:0   skip:13  time: 469s
fi-snb-2520m     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time: 554s
fi-snb-2600      total:278  pass:249  dwarn:0   dfail:0   fail:0   skip:29  time: 424s
fi-byt-n2820 failed to collect. IGT log at Patchwork_4300/fi-byt-n2820/igt.log

102397b5dbb1f68504739adefde2c28a5aba95b9 drm-tip: 2017y-03m-25d-00h-24m-58s UTC integration manifest
6dda863 drm/i915: Watchdog timeout: Export media reset count from GuC to debugfs
a71c802 drm/i915: Watchdog timeout: DRM kernel interface to set the timeout
8e10876 drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+
a2167c8 drm/i915: Watchdog timeout: IRQ handler for gen8+
96e2ee6 drm/i915: Watchdog timeout: Pass GuC shared data structure during param load
5a60c42 drm/i915/guc: Add support for reset engine using GuC commands
6ed1757 drm/i915/guc: Provide register list to be saved/restored during engine reset
af217a8 drm/i915/selftests: reset engine self tests
d43b3eb drm/i915: Add engine reset count in get-reset-stats ioctl
dea8dca drm/i915/tdr: Enable Engine reset and recovery support
f872bd8 drm/i915/tdr: Export per-engine reset count info to debugfs
4d66882b1 drm/i915/tdr: Add engine reset count to error state
a3d1a331 drm/i915: Skip reset request if there is one already
42fdfd1 drm/i915/tdr: Add support for per engine reset recovery
1ce9821 drm/i915/tdr: Modify error handler for per engine hang recovery
15808ca drm/i915: Update i915.reset to handle engine resets
95bad53 drm/i915: Rename gen8_(un)request_engine_reset to gen8_(un)request_reset_engine
56350ec drm/i915: Fix stale comment about I915_RESET_IN_PROGRESS flag

Patches download mbox

# Name Submitter State
[v6,01/20] drm/i915: Fix stale comment about I915_RESET_IN_PROGRESS flag Michel Thierry New
[v6,02/20] drm/i915: Rename gen8_(un)request_engine_reset to gen8_reset_engine_start/cancel Michel Thierry Accepted
[v6,03/20] drm/i915: Update i915.reset to handle engine resets Michel Thierry New
[v6,04/20] drm/i915/tdr: Modify error handler for per engine hang recovery Michel Thierry New
[v6,05/20] drm/i915/tdr: Add support for per engine reset recovery Michel Thierry New
[v6,06/20] drm/i915: Skip reset request if there is one already Michel Thierry New
[v6,07/20] drm/i915/tdr: Add engine reset count to error state Michel Thierry New
[v6,08/20] drm/i915/tdr: Export per-engine reset count info to debugfs Michel Thierry New
[v6,09/20] drm/i915/tdr: Enable Engine reset and recovery support Michel Thierry New
[v6,10/20] drm/i915: Add engine reset count in get-reset-stats ioctl Michel Thierry New
[v6,11/20] drm/i915/selftests: reset engine self tests Michel Thierry New
[v6,12/20] drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder Michel Thierry New
[v6,13/20] drm/i915/guc: Provide register list to be saved/restored during engine reset Michel Thierry New
[v6,14/20] drm/i915/guc: Add support for reset engine using GuC commands Michel Thierry New
[v6,15/20] drm/i915: Watchdog timeout: Pass GuC shared data structure during param load Michel Thierry New
[v6,16/20] drm/i915: Watchdog timeout: IRQ handler for gen8+ Michel Thierry New
[v6,17/20] drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+ Michel Thierry New
[v6,18/20] drm/i915: Watchdog timeout: DRM kernel interface to set the timeout Michel Thierry New
[v6,19/20] drm/i915: Watchdog timeout: Include threshold value in error state Michel Thierry New
[v6,20/20] drm/i915: Watchdog timeout: Export media reset count from GuC to debugfs Michel Thierry New

Tests

Series 21868v2 Gen8+ engine-reset
https://patchwork.freedesktop.org/api/1.0/series/21868/revisions/2/mbox/

Test gem_exec_suspend:
        Subgroup basic-s4-devices:
                pass       -> DMESG-WARN (fi-kbl-7560u) fdo#100125

fdo#100125 https://bugs.freedesktop.org/show_bug.cgi?id=100125

fi-bdw-5557u     total:278  pass:267  dwarn:0   dfail:0   fail:0   skip:11  time:428s
fi-bdw-gvtdvm    total:278  pass:256  dwarn:8   dfail:0   fail:0   skip:14  time:420s
fi-bsw-n3050     total:278  pass:242  dwarn:0   dfail:0   fail:0   skip:36  time:570s
fi-bxt-j4205     total:278  pass:259  dwarn:0   dfail:0   fail:0   skip:19  time:506s
fi-bxt-t5700     total:278  pass:258  dwarn:0   dfail:0   fail:0   skip:20  time:535s
fi-byt-j1900     total:278  pass:254  dwarn:0   dfail:0   fail:0   skip:24  time:482s
fi-byt-n2820     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time:474s
fi-hsw-4770      total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time:408s
fi-hsw-4770r     total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time:401s
fi-ilk-650       total:278  pass:228  dwarn:0   dfail:0   fail:0   skip:50  time:419s
fi-ivb-3520m     total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time:482s
fi-ivb-3770      total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time:467s
fi-kbl-7500u     total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time:467s
fi-kbl-7560u     total:278  pass:267  dwarn:1   dfail:0   fail:0   skip:10  time:566s
fi-skl-6260u     total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time:449s
fi-skl-6700hq    total:278  pass:261  dwarn:0   dfail:0   fail:0   skip:17  time:572s
fi-skl-6700k     total:278  pass:256  dwarn:4   dfail:0   fail:0   skip:18  time:456s
fi-skl-6770hq    total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time:498s
fi-skl-gvtdvm    total:278  pass:265  dwarn:0   dfail:0   fail:0   skip:13  time:430s
fi-snb-2520m     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time:536s
fi-snb-2600      total:278  pass:249  dwarn:0   dfail:0   fail:0   skip:29  time:417s

7204beb80dcdfd1f8b1cff6a448301407f91a99c drm-tip: 2017y-04m-18d-16h-09m-11s UTC integration manifest
5fcdfc4 drm/i915: Watchdog timeout: Export media reset count from GuC to debugfs
785721e drm/i915: Watchdog timeout: Include threshold value in error state
a4f2785 drm/i915: Watchdog timeout: DRM kernel interface to set the timeout
afa9e30 drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+
c4bbdfb drm/i915: Watchdog timeout: IRQ handler for gen8+
3521c7c drm/i915: Watchdog timeout: Pass GuC shared data structure during param load
085d20b drm/i915/guc: Add support for reset engine using GuC commands
9d8ec0d drm/i915/guc: Provide register list to be saved/restored during engine reset
4f69f95 drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder
6bafaca7 drm/i915/selftests: reset engine self tests
f61701f drm/i915: Add engine reset count in get-reset-stats ioctl
49b446f drm/i915/tdr: Enable Engine reset and recovery support
b3d3f4d drm/i915/tdr: Export per-engine reset count info to debugfs
0e7cbfe drm/i915/tdr: Add engine reset count to error state
51d0a90 drm/i915: Skip reset request if there is one already
f5dacd2 drm/i915/tdr: Add support for per engine reset recovery
ea5a776 drm/i915/tdr: Modify error handler for per engine hang recovery
46ab0e7 drm/i915: Update i915.reset to handle engine resets
9cdf282 drm/i915: Rename gen8_(un)request_engine_reset to gen8_reset_engine_start/cancel
ac75580 drm/i915: Fix stale comment about I915_RESET_IN_PROGRESS flag
SERIES REVISION IS NOT COMPLETE. We've got 19 out of 20 expected patches.

Patches download mbox

# Name Submitter State
[v6,01/20] drm/i915: Fix stale comment about I915_RESET_IN_PROGRESS flag Michel Thierry New
[v6,02/20] drm/i915: Rename gen8_(un)request_engine_reset to gen8_reset_engine_start/cancel Michel Thierry Accepted
[v6,03/20] drm/i915: Update i915.reset to handle engine resets Michel Thierry New
[v6,04/20] drm/i915/tdr: Modify error handler for per engine hang recovery Michel Thierry New
[v6,05/20] drm/i915/tdr: Add support for per engine reset recovery Michel Thierry New
[v6,06/20] drm/i915: Skip reset request if there is one already Michel Thierry New
[v6,07/20] drm/i915/tdr: Add engine reset count to error state Michel Thierry New
[v6,08/20] drm/i915/tdr: Export per-engine reset count info to debugfs Michel Thierry New
[v6,09/20] drm/i915/tdr: Enable Engine reset and recovery support Michel Thierry New
[v6,10/20] drm/i915: Add engine reset count in get-reset-stats ioctl Michel Thierry New
[v6,11/20] drm/i915/selftests: reset engine self tests Michel Thierry New
[v6,12/20] drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder Michel Thierry New
[v6,13/20] drm/i915/guc: Provide register list to be saved/restored during engine reset Michel Thierry New
[v6,14/20] drm/i915/guc: Add support for reset engine using GuC commands Michel Thierry New
[v6,15/20] drm/i915: Watchdog timeout: Pass GuC shared data structure during param load Michel Thierry New
[v6,16/20] drm/i915: Watchdog timeout: IRQ handler for gen8+ Michel Thierry New
[v6,17/20] drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+ Michel Thierry New
[v6,19/20] drm/i915: Watchdog timeout: Include threshold value in error state Michel Thierry New
[v6,20/20] drm/i915: Watchdog timeout: Export media reset count from GuC to debugfs Michel Thierry New

Patches download mbox

# Name Submitter State
[v7,01/20] drm/i915: Update i915.reset to handle engine resets Michel Thierry New
[v7,02/20] drm/i915: Modify error handler for per engine hang recovery Michel Thierry New
[v7,03/20] drm/i915: Add support for per engine reset recovery Michel Thierry New
[v7,04/20] drm/i915: Skip reset request if there is one already Michel Thierry New
[v7,05/20] drm/i915: Cancel reset-engine if we couldn't find an active request Michel Thierry New
[v7,06/20] drm/i915: Add engine reset count to error state Michel Thierry New
[v7,07/20] drm/i915: Export per-engine reset count info to debugfs Michel Thierry New
[v7,08/20] drm/i915: Enable Engine reset and recovery support Michel Thierry New
[v7,09/20] drm/i915: Add engine reset count in get-reset-stats ioctl Michel Thierry New
[v7,10/20] drm/i915/selftests: reset engine self tests Michel Thierry New
[v7,11/20] drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder Michel Thierry New
[v7,12/20] drm/i915/guc: Provide register list to be saved/restored during engine reset Michel Thierry New
[v7,13/20] drm/i915/guc: Rename the function that resets the GuC Michel Thierry New
[v7,14/20] drm/i915/guc: Add support for reset engine using GuC commands Michel Thierry New
[v7,15/20] drm/i915: Watchdog timeout: Pass GuC shared data structure during param load Michel Thierry New
[v7,16/20] drm/i915: Watchdog timeout: IRQ handler for gen8+ Michel Thierry New
[v7,17/20] drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+ Michel Thierry New
[v7,18/20] drm/i915: Watchdog timeout: DRM kernel interface to set the timeout Michel Thierry New
[v7,19/20] drm/i915: Watchdog timeout: Include threshold value in error state Michel Thierry New
[v7,20/20] drm/i915: Watchdog timeout: Export media reset count from GuC to debugfs Michel Thierry New

Tests

Series 21868v4 Gen8+ engine-reset
https://patchwork.freedesktop.org/api/1.0/series/21868/revisions/4/mbox/

fi-bdw-5557u     total:278  pass:267  dwarn:0   dfail:0   fail:0   skip:11  time:431s
fi-bdw-gvtdvm    total:278  pass:256  dwarn:8   dfail:0   fail:0   skip:14  time:424s
fi-bsw-n3050     total:278  pass:242  dwarn:0   dfail:0   fail:0   skip:36  time:575s
fi-bxt-j4205     total:278  pass:259  dwarn:0   dfail:0   fail:0   skip:19  time:510s
fi-bxt-t5700     total:278  pass:258  dwarn:0   dfail:0   fail:0   skip:20  time:541s
fi-byt-j1900     total:278  pass:254  dwarn:0   dfail:0   fail:0   skip:24  time:485s
fi-byt-n2820     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time:485s
fi-hsw-4770      total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time:410s
fi-hsw-4770r     total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time:407s
fi-ilk-650       total:278  pass:228  dwarn:0   dfail:0   fail:0   skip:50  time:425s
fi-ivb-3520m     total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time:496s
fi-ivb-3770      total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time:460s
fi-kbl-7500u     total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time:457s
fi-kbl-7560u     total:278  pass:267  dwarn:1   dfail:0   fail:0   skip:10  time:566s
fi-skl-6260u     total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time:456s
fi-skl-6700hq    total:278  pass:261  dwarn:0   dfail:0   fail:0   skip:17  time:571s
fi-skl-6700k     total:278  pass:256  dwarn:4   dfail:0   fail:0   skip:18  time:463s
fi-skl-6770hq    total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time:490s
fi-skl-gvtdvm    total:278  pass:265  dwarn:0   dfail:0   fail:0   skip:13  time:434s
fi-snb-2520m     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time:533s
fi-snb-2600      total:278  pass:249  dwarn:0   dfail:0   fail:0   skip:29  time:401s

d73272105f5bcd79f25c57bd5b28b72d41153cdb drm-tip: 2017y-04m-27d-21h-26m-48s UTC integration manifest
966284c drm/i915: Watchdog timeout: Export media reset count from GuC to debugfs
5b29010 drm/i915: Watchdog timeout: Include threshold value in error state
06fad5f drm/i915: Watchdog timeout: DRM kernel interface to set the timeout
02813be drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+
9856155 drm/i915: Watchdog timeout: IRQ handler for gen8+
00b9bb5 drm/i915: Watchdog timeout: Pass GuC shared data structure during param load
5a9c8f85 drm/i915/guc: Add support for reset engine using GuC commands
27455f1 drm/i915/guc: Rename the function that resets the GuC
1baa734 drm/i915/guc: Provide register list to be saved/restored during engine reset
d4776dd drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder
2d8aef8 drm/i915/selftests: reset engine self tests
506713ad drm/i915: Add engine reset count in get-reset-stats ioctl
6da8513 drm/i915: Enable Engine reset and recovery support
929be53 drm/i915: Export per-engine reset count info to debugfs
7e340b7 drm/i915: Add engine reset count to error state
e08d4b6 drm/i915: Cancel reset-engine if we couldn't find an active request
ed3259b drm/i915: Skip reset request if there is one already
4a68c8b drm/i915: Add support for per engine reset recovery
4c53f6a drm/i915: Modify error handler for per engine hang recovery
d30dbab drm/i915: Update i915.reset to handle engine resets

Patches download mbox

# Name Submitter State
[v7,01/20] drm/i915: Update i915.reset to handle engine resets Michel Thierry New
[02/20] drm/i915: Modify error handler for per engine hang recovery Michel Thierry New
[v7,03/20] drm/i915: Add support for per engine reset recovery Michel Thierry New
[v7,04/20] drm/i915: Skip reset request if there is one already Michel Thierry New
[v7,05/20] drm/i915: Cancel reset-engine if we couldn't find an active request Michel Thierry New
[v7,06/20] drm/i915: Add engine reset count to error state Michel Thierry New
[v7,07/20] drm/i915: Export per-engine reset count info to debugfs Michel Thierry New
[v7,08/20] drm/i915: Enable Engine reset and recovery support Michel Thierry New
[v7,09/20] drm/i915: Add engine reset count in get-reset-stats ioctl Michel Thierry New
[v7,10/20] drm/i915/selftests: reset engine self tests Michel Thierry New
[v7,11/20] drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder Michel Thierry New
[v7,12/20] drm/i915/guc: Provide register list to be saved/restored during engine reset Michel Thierry New
[v7,13/20] drm/i915/guc: Rename the function that resets the GuC Michel Thierry New
[v7,14/20] drm/i915/guc: Add support for reset engine using GuC commands Michel Thierry New
[v7,15/20] drm/i915: Watchdog timeout: Pass GuC shared data structure during param load Michel Thierry New
[v7,16/20] drm/i915: Watchdog timeout: IRQ handler for gen8+ Michel Thierry New
[v7,17/20] drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+ Michel Thierry New
[v7,18/20] drm/i915: Watchdog timeout: DRM kernel interface to set the timeout Michel Thierry New
[v7,19/20] drm/i915: Watchdog timeout: Include threshold value in error state Michel Thierry New
[v7,20/20] drm/i915: Watchdog timeout: Export media reset count from GuC to debugfs Michel Thierry New

Tests

Series 21868v5 Gen8+ engine-reset
https://patchwork.freedesktop.org/api/1.0/series/21868/revisions/5/mbox/

Test gem_exec_flush:
        Subgroup basic-batch-kernel-default-uc:
                pass       -> FAIL       (fi-snb-2600) fdo#100007

fdo#100007 https://bugs.freedesktop.org/show_bug.cgi?id=100007

fi-bdw-5557u     total:278  pass:267  dwarn:0   dfail:0   fail:0   skip:11  time:446s
fi-bdw-gvtdvm    total:278  pass:256  dwarn:8   dfail:0   fail:0   skip:14  time:430s
fi-bsw-n3050     total:278  pass:242  dwarn:0   dfail:0   fail:0   skip:36  time:595s
fi-bxt-j4205     total:278  pass:259  dwarn:0   dfail:0   fail:0   skip:19  time:513s
fi-byt-j1900     total:278  pass:254  dwarn:0   dfail:0   fail:0   skip:24  time:496s
fi-byt-n2820     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time:491s
fi-hsw-4770      total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time:420s
fi-hsw-4770r     total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time:410s
fi-ilk-650       total:278  pass:228  dwarn:0   dfail:0   fail:0   skip:50  time:423s
fi-ivb-3520m     total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time:489s
fi-ivb-3770      total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time:470s
fi-kbl-7500u     total:278  pass:255  dwarn:5   dfail:0   fail:0   skip:18  time:473s
fi-kbl-7560u     total:278  pass:263  dwarn:5   dfail:0   fail:0   skip:10  time:578s
fi-skl-6260u     total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time:468s
fi-skl-6700hq    total:278  pass:261  dwarn:0   dfail:0   fail:0   skip:17  time:588s
fi-skl-6700k     total:278  pass:256  dwarn:4   dfail:0   fail:0   skip:18  time:461s
fi-skl-6770hq    total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time:498s
fi-skl-gvtdvm    total:278  pass:265  dwarn:0   dfail:0   fail:0   skip:13  time:439s
fi-snb-2520m     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time:545s
fi-snb-2600      total:278  pass:248  dwarn:0   dfail:0   fail:1   skip:29  time:417s

9b25870f9fa4548ec2bb40e42fa28f35db2189e1 drm-tip: 2017y-05m-15d-15h-47m-31s UTC integration manifest
8001816 drm/i915: Cancel reset-engine if we couldn't find an active request
7430985 drm/i915: Skip reset request if there is one already
3297c86 drm/i915: Add support for per engine reset recovery
47d3cf1 drm/i915: Modify error handler for per engine hang recovery
3a9b15f drm/i915: Update i915.reset to handle engine resets

Patches download mbox

# Name Submitter State
[v7,01/20] drm/i915: Update i915.reset to handle engine resets Michel Thierry New
[02/20] drm/i915: Modify error handler for per engine hang recovery Michel Thierry New
[03/20] drm/i915: Add support for per engine reset recovery Michel Thierry New
[v7,04/20] drm/i915: Skip reset request if there is one already Michel Thierry New
[v7,05/20] drm/i915: Cancel reset-engine if we couldn't find an active request Michel Thierry New
[v7,06/20] drm/i915: Add engine reset count to error state Michel Thierry New
[v7,07/20] drm/i915: Export per-engine reset count info to debugfs Michel Thierry New
[v7,08/20] drm/i915: Enable Engine reset and recovery support Michel Thierry New
[v7,09/20] drm/i915: Add engine reset count in get-reset-stats ioctl Michel Thierry New
[v7,10/20] drm/i915/selftests: reset engine self tests Michel Thierry New
[v7,11/20] drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder Michel Thierry New
[v7,12/20] drm/i915/guc: Provide register list to be saved/restored during engine reset Michel Thierry New
[v7,13/20] drm/i915/guc: Rename the function that resets the GuC Michel Thierry New
[v7,14/20] drm/i915/guc: Add support for reset engine using GuC commands Michel Thierry New
[v7,15/20] drm/i915: Watchdog timeout: Pass GuC shared data structure during param load Michel Thierry New
[v7,16/20] drm/i915: Watchdog timeout: IRQ handler for gen8+ Michel Thierry New
[v7,17/20] drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+ Michel Thierry New
[v7,18/20] drm/i915: Watchdog timeout: DRM kernel interface to set the timeout Michel Thierry New
[v7,19/20] drm/i915: Watchdog timeout: Include threshold value in error state Michel Thierry New
[v7,20/20] drm/i915: Watchdog timeout: Export media reset count from GuC to debugfs Michel Thierry New

Patches download mbox

# Name Submitter State
[v7,01/20] drm/i915: Update i915.reset to handle engine resets Michel Thierry New
[02/20] drm/i915: Modify error handler for per engine hang recovery Michel Thierry New
[03/20] drm/i915: Add support for per engine reset recovery Michel Thierry New
[v7,04/20] drm/i915: Skip reset request if there is one already Michel Thierry New
[05/20] drm/i915: Cancel reset-engine if we couldn't find an active request Michel Thierry New
[v7,06/20] drm/i915: Add engine reset count to error state Michel Thierry New
[v7,07/20] drm/i915: Export per-engine reset count info to debugfs Michel Thierry New
[v7,08/20] drm/i915: Enable Engine reset and recovery support Michel Thierry New
[v7,09/20] drm/i915: Add engine reset count in get-reset-stats ioctl Michel Thierry New
[v7,10/20] drm/i915/selftests: reset engine self tests Michel Thierry New
[v7,11/20] drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder Michel Thierry New
[v7,12/20] drm/i915/guc: Provide register list to be saved/restored during engine reset Michel Thierry New
[v7,13/20] drm/i915/guc: Rename the function that resets the GuC Michel Thierry New
[v7,14/20] drm/i915/guc: Add support for reset engine using GuC commands Michel Thierry New
[v7,15/20] drm/i915: Watchdog timeout: Pass GuC shared data structure during param load Michel Thierry New
[v7,16/20] drm/i915: Watchdog timeout: IRQ handler for gen8+ Michel Thierry New
[v7,17/20] drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+ Michel Thierry New
[v7,18/20] drm/i915: Watchdog timeout: DRM kernel interface to set the timeout Michel Thierry New
[v7,19/20] drm/i915: Watchdog timeout: Include threshold value in error state Michel Thierry New
[v7,20/20] drm/i915: Watchdog timeout: Export media reset count from GuC to debugfs Michel Thierry New

Tests

Series 21868v7 Gen8+ engine-reset
https://patchwork.freedesktop.org/api/1.0/series/21868/revisions/7/mbox/

fi-bdw-5557u     total:278  pass:267  dwarn:0   dfail:0   fail:0   skip:11  time:448s
fi-bdw-gvtdvm    total:278  pass:256  dwarn:8   dfail:0   fail:0   skip:14  time:432s
fi-bsw-n3050     total:278  pass:242  dwarn:0   dfail:0   fail:0   skip:36  time:587s
fi-bxt-j4205     total:278  pass:259  dwarn:0   dfail:0   fail:0   skip:19  time:510s
fi-byt-j1900     total:278  pass:254  dwarn:0   dfail:0   fail:0   skip:24  time:498s
fi-byt-n2820     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time:486s
fi-hsw-4770      total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time:423s
fi-hsw-4770r     total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time:418s
fi-ilk-650       total:278  pass:228  dwarn:0   dfail:0   fail:0   skip:50  time:420s
fi-ivb-3520m     total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time:502s
fi-ivb-3770      total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time:465s
fi-kbl-7500u     total:278  pass:255  dwarn:5   dfail:0   fail:0   skip:18  time:460s
fi-kbl-7560u     total:278  pass:263  dwarn:5   dfail:0   fail:0   skip:10  time:573s
fi-skl-6260u     total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time:457s
fi-skl-6700hq    total:278  pass:261  dwarn:0   dfail:0   fail:0   skip:17  time:584s
fi-skl-6700k     total:278  pass:256  dwarn:4   dfail:0   fail:0   skip:18  time:464s
fi-skl-6770hq    total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time:499s
fi-skl-gvtdvm    total:278  pass:265  dwarn:0   dfail:0   fail:0   skip:13  time:439s
fi-snb-2520m     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time:539s
fi-snb-2600      total:278  pass:249  dwarn:0   dfail:0   fail:0   skip:29  time:405s

9b25870f9fa4548ec2bb40e42fa28f35db2189e1 drm-tip: 2017y-05m-15d-15h-47m-31s UTC integration manifest
568b6eb drm/i915: Cancel reset-engine if we couldn't find an active request
a581675 drm/i915: Skip reset request if there is one already
ce0b6a2 drm/i915: Add support for per engine reset recovery
dbc521d drm/i915: Modify error handler for per engine hang recovery
a421731 drm/i915: Update i915.reset to handle engine resets
SERIES REVISION LOOKS STRANGE. Please double-check patch list and the ordering before proceeding.

Patches download mbox

# Name Submitter State
[v7,01/20] drm/i915: Update i915.reset to handle engine resets Michel Thierry New
[02/20] drm/i915: Modify error handler for per engine hang recovery Michel Thierry New
[03/20] drm/i915: Add support for per engine reset recovery Michel Thierry New
[v7,04/20] drm/i915: Skip reset request if there is one already Michel Thierry New
drm/i915: Cancel reset-engine if we couldn't find an active request Michel Thierry New
[v7,06/20] drm/i915: Add engine reset count to error state Michel Thierry New
[v7,07/20] drm/i915: Export per-engine reset count info to debugfs Michel Thierry New
[v7,08/20] drm/i915: Enable Engine reset and recovery support Michel Thierry New
[v7,09/20] drm/i915: Add engine reset count in get-reset-stats ioctl Michel Thierry New
[v7,10/20] drm/i915/selftests: reset engine self tests Michel Thierry New
[v7,11/20] drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder Michel Thierry New
[v7,12/20] drm/i915/guc: Provide register list to be saved/restored during engine reset Michel Thierry New
[v7,13/20] drm/i915/guc: Rename the function that resets the GuC Michel Thierry New
[v7,14/20] drm/i915/guc: Add support for reset engine using GuC commands Michel Thierry New
[v7,15/20] drm/i915: Watchdog timeout: Pass GuC shared data structure during param load Michel Thierry New
[v7,16/20] drm/i915: Watchdog timeout: IRQ handler for gen8+ Michel Thierry New
[v7,17/20] drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+ Michel Thierry New
[v7,18/20] drm/i915: Watchdog timeout: DRM kernel interface to set the timeout Michel Thierry New
[v7,19/20] drm/i915: Watchdog timeout: Include threshold value in error state Michel Thierry New
[v7,20/20] drm/i915: Watchdog timeout: Export media reset count from GuC to debugfs Michel Thierry New

Tests

Series 21868v8 Gen8+ engine-reset
https://patchwork.freedesktop.org/api/1.0/series/21868/revisions/8/mbox/

Test gem_exec_flush:
        Subgroup basic-batch-kernel-default-uc:
                pass       -> FAIL       (fi-snb-2600) fdo#100007

fdo#100007 https://bugs.freedesktop.org/show_bug.cgi?id=100007

fi-bdw-5557u     total:278  pass:267  dwarn:0   dfail:0   fail:0   skip:11  time:444s
fi-bsw-n3050     total:278  pass:242  dwarn:0   dfail:0   fail:0   skip:36  time:585s
fi-bxt-j4205     total:278  pass:259  dwarn:0   dfail:0   fail:0   skip:19  time:516s
fi-byt-j1900     total:278  pass:254  dwarn:0   dfail:0   fail:0   skip:24  time:493s
fi-byt-n2820     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time:483s
fi-hsw-4770      total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time:418s
fi-hsw-4770r     total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time:408s
fi-ilk-650       total:278  pass:228  dwarn:0   dfail:0   fail:0   skip:50  time:416s
fi-ivb-3520m     total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time:498s
fi-ivb-3770      total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time:464s
fi-kbl-7500u     total:278  pass:255  dwarn:5   dfail:0   fail:0   skip:18  time:467s
fi-skl-6260u     total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time:460s
fi-skl-6700hq    total:278  pass:261  dwarn:0   dfail:0   fail:0   skip:17  time:578s
fi-skl-6700k     total:278  pass:256  dwarn:4   dfail:0   fail:0   skip:18  time:468s
fi-skl-6770hq    total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time:510s
fi-snb-2520m     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time:529s
fi-snb-2600      total:278  pass:248  dwarn:0   dfail:0   fail:1   skip:29  time:397s

eb3549d312620118dec3a69200894ac8a8fff358 drm-tip: 2017y-05m-17d-13h-53m-40s UTC integration manifest
efa35f9 drm/i915: Cancel reset-engine if we couldn't find an active request
67b883b drm/i915: Skip reset request if there is one already
2fe8d13 drm/i915: Add support for per engine reset recovery
a60dcd2 drm/i915: Modify error handler for per engine hang recovery
eb1aebb drm/i915: Update i915.reset to handle engine resets
SERIES REVISION LOOKS STRANGE. Please double-check patch list and the ordering before proceeding.

Patches download mbox

# Name Submitter State
[v7,01/20] drm/i915: Update i915.reset to handle engine resets Michel Thierry New
[02/20] drm/i915: Modify error handler for per engine hang recovery Michel Thierry New
[03/20] drm/i915: Add support for per engine reset recovery Michel Thierry New
[v7,04/20] drm/i915: Skip reset request if there is one already Michel Thierry New
drm/i915: Look for active requests earlier in the reset path Michel Thierry New
[v7,06/20] drm/i915: Add engine reset count to error state Michel Thierry New
[v7,07/20] drm/i915: Export per-engine reset count info to debugfs Michel Thierry New
[v7,08/20] drm/i915: Enable Engine reset and recovery support Michel Thierry New
[v7,09/20] drm/i915: Add engine reset count in get-reset-stats ioctl Michel Thierry New
[v7,10/20] drm/i915/selftests: reset engine self tests Michel Thierry New
[v7,11/20] drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder Michel Thierry New
[v7,12/20] drm/i915/guc: Provide register list to be saved/restored during engine reset Michel Thierry New
[v7,13/20] drm/i915/guc: Rename the function that resets the GuC Michel Thierry New
[v7,14/20] drm/i915/guc: Add support for reset engine using GuC commands Michel Thierry New
[v7,15/20] drm/i915: Watchdog timeout: Pass GuC shared data structure during param load Michel Thierry New
[v7,16/20] drm/i915: Watchdog timeout: IRQ handler for gen8+ Michel Thierry New
[v7,17/20] drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+ Michel Thierry New
[v7,18/20] drm/i915: Watchdog timeout: DRM kernel interface to set the timeout Michel Thierry New
[v7,19/20] drm/i915: Watchdog timeout: Include threshold value in error state Michel Thierry New
[v7,20/20] drm/i915: Watchdog timeout: Export media reset count from GuC to debugfs Michel Thierry New

Tests

Series 21868v9 Gen8+ engine-reset
https://patchwork.freedesktop.org/api/1.0/series/21868/revisions/9/mbox/

Test gem_exec_flush:
        Subgroup basic-batch-kernel-default-uc:
                fail       -> PASS       (fi-snb-2600) fdo#100007

fdo#100007 https://bugs.freedesktop.org/show_bug.cgi?id=100007

fi-bdw-5557u     total:278  pass:267  dwarn:0   dfail:0   fail:0   skip:11  time:443s
fi-bdw-gvtdvm    total:278  pass:256  dwarn:8   dfail:0   fail:0   skip:14  time:437s
fi-bsw-n3050     total:278  pass:242  dwarn:0   dfail:0   fail:0   skip:36  time:583s
fi-bxt-j4205     total:278  pass:259  dwarn:0   dfail:0   fail:0   skip:19  time:516s
fi-byt-j1900     total:278  pass:254  dwarn:0   dfail:0   fail:0   skip:24  time:495s
fi-byt-n2820     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time:490s
fi-hsw-4770      total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time:425s
fi-hsw-4770r     total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time:409s
fi-ilk-650       total:278  pass:228  dwarn:0   dfail:0   fail:0   skip:50  time:418s
fi-ivb-3520m     total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time:500s
fi-ivb-3770      total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time:470s
fi-kbl-7500u     total:278  pass:255  dwarn:5   dfail:0   fail:0   skip:18  time:461s
fi-skl-6260u     total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time:459s
fi-skl-6700hq    total:278  pass:261  dwarn:0   dfail:0   fail:0   skip:17  time:578s
fi-skl-6700k     total:278  pass:256  dwarn:4   dfail:0   fail:0   skip:18  time:460s
fi-skl-6770hq    total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time:500s
fi-skl-gvtdvm    total:278  pass:265  dwarn:0   dfail:0   fail:0   skip:13  time:442s
fi-snb-2520m     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time:532s
fi-snb-2600      total:278  pass:249  dwarn:0   dfail:0   fail:0   skip:29  time:405s

ab08cb2750e769d074b2f147c8298ccd0cd08340 drm-tip: 2017y-05m-18d-15h-36m-17s UTC integration manifest
e1b2c9d drm/i915: Look for active requests earlier in the reset path
6a89f35 drm/i915: Skip reset request if there is one already
7b53b92 drm/i915: Add support for per engine reset recovery
16115e1 drm/i915: Modify error handler for per engine hang recovery
aef6c1a drm/i915: Update i915.reset to handle engine resets
SERIES REVISION LOOKS STRANGE. Please double-check patch list and the ordering before proceeding.

Patches download mbox

# Name Submitter State
[v7,01/20] drm/i915: Update i915.reset to handle engine resets Michel Thierry New
[02/20] drm/i915: Modify error handler for per engine hang recovery Michel Thierry New
[03/20] drm/i915: Add support for per engine reset recovery Michel Thierry New
[v7,04/20] drm/i915: Skip reset request if there is one already Michel Thierry New
drm/i915: Look for active requests earlier in the reset path Michel Thierry New
[v7,06/20] drm/i915: Add engine reset count to error state Michel Thierry New
[v7,07/20] drm/i915: Export per-engine reset count info to debugfs Michel Thierry New
[v7,08/20] drm/i915: Enable Engine reset and recovery support Michel Thierry New
[v7,09/20] drm/i915: Add engine reset count in get-reset-stats ioctl Michel Thierry New
[v7,10/20] drm/i915/selftests: reset engine self tests Michel Thierry New
[v7,11/20] drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder Michel Thierry New
[v7,12/20] drm/i915/guc: Provide register list to be saved/restored during engine reset Michel Thierry New
[v7,13/20] drm/i915/guc: Rename the function that resets the GuC Michel Thierry New
[v7,14/20] drm/i915/guc: Add support for reset engine using GuC commands Michel Thierry New
[v7,15/20] drm/i915: Watchdog timeout: Pass GuC shared data structure during param load Michel Thierry New
[v7,16/20] drm/i915: Watchdog timeout: IRQ handler for gen8+ Michel Thierry New
[v7,17/20] drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+ Michel Thierry New
[v7,18/20] drm/i915: Watchdog timeout: DRM kernel interface to set the timeout Michel Thierry New
[v7,19/20] drm/i915: Watchdog timeout: Include threshold value in error state Michel Thierry New
[v7,20/20] drm/i915: Watchdog timeout: Export media reset count from GuC to debugfs Michel Thierry New

Tests

Series 21868v10 Gen8+ engine-reset
https://patchwork.freedesktop.org/api/1.0/series/21868/revisions/10/mbox/

Test gem_exec_flush:
        Subgroup basic-batch-kernel-default-uc:
                fail       -> PASS       (fi-snb-2600) fdo#100007

fdo#100007 https://bugs.freedesktop.org/show_bug.cgi?id=100007

fi-bdw-5557u     total:278  pass:267  dwarn:0   dfail:0   fail:0   skip:11  time:450s
fi-bdw-gvtdvm    total:278  pass:256  dwarn:8   dfail:0   fail:0   skip:14  time:443s
fi-bsw-n3050     total:278  pass:242  dwarn:0   dfail:0   fail:0   skip:36  time:601s
fi-bxt-j4205     total:278  pass:259  dwarn:0   dfail:0   fail:0   skip:19  time:514s
fi-byt-j1900     total:278  pass:254  dwarn:0   dfail:0   fail:0   skip:24  time:496s
fi-byt-n2820     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time:488s
fi-hsw-4770      total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time:420s
fi-hsw-4770r     total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time:415s
fi-ilk-650       total:278  pass:228  dwarn:0   dfail:0   fail:0   skip:50  time:416s
fi-ivb-3520m     total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time:500s
fi-ivb-3770      total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time:465s
fi-kbl-7500u     total:278  pass:255  dwarn:5   dfail:0   fail:0   skip:18  time:459s
fi-skl-6260u     total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time:473s
fi-skl-6700hq    total:278  pass:261  dwarn:0   dfail:0   fail:0   skip:17  time:580s
fi-skl-6700k     total:278  pass:256  dwarn:4   dfail:0   fail:0   skip:18  time:461s
fi-skl-6770hq    total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time:500s
fi-skl-gvtdvm    total:278  pass:265  dwarn:0   dfail:0   fail:0   skip:13  time:439s
fi-snb-2520m     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time:539s
fi-snb-2600      total:278  pass:249  dwarn:0   dfail:0   fail:0   skip:29  time:408s

ab08cb2750e769d074b2f147c8298ccd0cd08340 drm-tip: 2017y-05m-18d-15h-36m-17s UTC integration manifest
8a637b4 drm/i915: Look for active requests earlier in the reset path
3fddaa3 drm/i915: Skip reset request if there is one already
b2ce28a drm/i915: Add support for per engine reset recovery
093b0d1 drm/i915: Modify error handler for per engine hang recovery
a3a49b9 drm/i915: Update i915.reset to handle engine resets

Patches download mbox

# Name Submitter State
[v8,01/20] drm/i915: Look for active requests earlier in the reset path Michel Thierry New
[v8,02/20] drm/i915: Update i915.reset to handle engine resets Michel Thierry New
[v8,03/20] drm/i915: Modify error handler for per engine hang recovery Michel Thierry New
[v8,04/20] drm/i915: Add support for per engine reset recovery Michel Thierry New
[v8,05/20] drm/i915: Add engine reset count to error state Michel Thierry New
[v8,06/20] drm/i915: Export per-engine reset count info to debugfs Michel Thierry New
[v8,07/20] drm/i915: Carry on with reset even if hw engine is not ready Michel Thierry New
[v8,08/20] drm/i915: Enable Engine reset and recovery support Michel Thierry New
[v8,09/20] drm/i915: Add engine reset count in get-reset-stats ioctl Michel Thierry New
[v8,10/20] drm/i915/selftests: reset engine self tests Michel Thierry New
[v8,11/20] drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder Michel Thierry New
[v8,12/20] drm/i915/guc: Provide register list to be saved/restored during engine reset Michel Thierry New
[v8,13/20] drm/i915/guc: Rename the function that resets the GuC Michel Thierry New
[v8,14/20] drm/i915/guc: Add support for reset engine using GuC commands Michel Thierry New
[v8,15/20] drm/i915: Watchdog timeout: Pass GuC shared data structure during param load Michel Thierry New
[v8,16/20] drm/i915: Watchdog timeout: IRQ handler for gen8+ Michel Thierry New
[v8,17/20] drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+ Michel Thierry New
[v8,18/20] drm/i915: Watchdog timeout: DRM kernel interface to set the timeout Michel Thierry New
[v8,19/20] drm/i915: Watchdog timeout: Include threshold value in error state Michel Thierry New
[v8,20/20] drm/i915: Watchdog timeout: Export media reset count from GuC to debugfs Michel Thierry New

Tests

Series 21868v11 Gen8+ engine-reset
https://patchwork.freedesktop.org/api/1.0/series/21868/revisions/11/mbox/

Test kms_flip:
        Subgroup basic-flip-vs-dpms:
                pass       -> DMESG-WARN (fi-skl-6700hq) fdo#101144
        Subgroup basic-flip-vs-wf_vblank:
                fail       -> PASS       (fi-skl-6770hq) fdo#99739

fdo#101144 https://bugs.freedesktop.org/show_bug.cgi?id=101144
fdo#99739 https://bugs.freedesktop.org/show_bug.cgi?id=99739

fi-bdw-5557u     total:278  pass:267  dwarn:0   dfail:0   fail:0   skip:11  time:441s
fi-bdw-gvtdvm    total:278  pass:256  dwarn:8   dfail:0   fail:0   skip:14  time:438s
fi-bsw-n3050     total:278  pass:242  dwarn:0   dfail:0   fail:0   skip:36  time:590s
fi-bxt-j4205     total:278  pass:259  dwarn:0   dfail:0   fail:0   skip:19  time:516s
fi-byt-j1900     total:278  pass:254  dwarn:0   dfail:0   fail:0   skip:24  time:493s
fi-byt-n2820     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time:485s
fi-hsw-4770      total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time:417s
fi-hsw-4770r     total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time:413s
fi-ilk-650       total:278  pass:228  dwarn:0   dfail:0   fail:0   skip:50  time:420s
fi-ivb-3520m     total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time:495s
fi-ivb-3770      total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time:472s
fi-kbl-7500u     total:278  pass:255  dwarn:5   dfail:0   fail:0   skip:18  time:462s
fi-kbl-7560u     total:278  pass:263  dwarn:5   dfail:0   fail:0   skip:10  time:566s
fi-skl-6260u     total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time:475s
fi-skl-6700hq    total:278  pass:260  dwarn:1   dfail:0   fail:0   skip:17  time:574s
fi-skl-6700k     total:278  pass:256  dwarn:4   dfail:0   fail:0   skip:18  time:464s
fi-skl-6770hq    total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time:497s
fi-skl-gvtdvm    total:278  pass:265  dwarn:0   dfail:0   fail:0   skip:13  time:436s
fi-snb-2520m     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time:533s
fi-snb-2600      total:278  pass:249  dwarn:0   dfail:0   fail:0   skip:29  time:407s

5c5ce2ab8183e4bd85a603169e260cc938837e2c drm-tip: 2017y-05m-22d-13h-42m-03s UTC integration manifest
1b35e7e drm/i915: Watchdog timeout: Export media reset count from GuC to debugfs
55b2a8a drm/i915: Watchdog timeout: Include threshold value in error state
6b3b3a9 drm/i915: Watchdog timeout: DRM kernel interface to set the timeout
7c8e3b2 drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+
2d0df1b drm/i915: Watchdog timeout: IRQ handler for gen8+
057fcc9 drm/i915: Watchdog timeout: Pass GuC shared data structure during param load
c992439 drm/i915/guc: Add support for reset engine using GuC commands
dd0958f drm/i915/guc: Rename the function that resets the GuC
d6fee33 drm/i915/guc: Provide register list to be saved/restored during engine reset
072b5a0 drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder
be5c46e drm/i915/selftests: reset engine self tests
6b31b7c drm/i915: Add engine reset count in get-reset-stats ioctl
8d68656 drm/i915: Enable Engine reset and recovery support
d2e1dcc drm/i915: Carry on with reset even if hw engine is not ready
6b5864d drm/i915: Export per-engine reset count info to debugfs
b7021f1 drm/i915: Add engine reset count to error state
4edfcaf drm/i915: Add support for per engine reset recovery
1317a93 drm/i915: Modify error handler for per engine hang recovery
7ac0078 drm/i915: Update i915.reset to handle engine resets
88e47d5 drm/i915: Look for active requests earlier in the reset path
SERIES REVISION LOOKS STRANGE. Please double-check patch list and the ordering before proceeding.

Patches download mbox

# Name Submitter State
[v8,01/20] drm/i915: Look for active requests earlier in the reset path Michel Thierry New
[v8,02/20] drm/i915: Update i915.reset to handle engine resets Michel Thierry New
[v9] drm/i915: Modify error handler for per engine hang recovery Michel Thierry New
[v8,04/20] drm/i915: Add support for per engine reset recovery Michel Thierry New
[v8,05/20] drm/i915: Add engine reset count to error state Michel Thierry New
[v8,06/20] drm/i915: Export per-engine reset count info to debugfs Michel Thierry New
[v8,07/20] drm/i915: Carry on with reset even if hw engine is not ready Michel Thierry New
[v8,08/20] drm/i915: Enable Engine reset and recovery support Michel Thierry New
[v8,09/20] drm/i915: Add engine reset count in get-reset-stats ioctl Michel Thierry New
[v8,10/20] drm/i915/selftests: reset engine self tests Michel Thierry New
[v8,11/20] drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder Michel Thierry New
[v8,12/20] drm/i915/guc: Provide register list to be saved/restored during engine reset Michel Thierry New
[v8,13/20] drm/i915/guc: Rename the function that resets the GuC Michel Thierry New
[v8,14/20] drm/i915/guc: Add support for reset engine using GuC commands Michel Thierry New
[v8,15/20] drm/i915: Watchdog timeout: Pass GuC shared data structure during param load Michel Thierry New
[v8,16/20] drm/i915: Watchdog timeout: IRQ handler for gen8+ Michel Thierry New
[v8,17/20] drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+ Michel Thierry New
[v8,18/20] drm/i915: Watchdog timeout: DRM kernel interface to set the timeout Michel Thierry New
[v8,19/20] drm/i915: Watchdog timeout: Include threshold value in error state Michel Thierry New
[v8,20/20] drm/i915: Watchdog timeout: Export media reset count from GuC to debugfs Michel Thierry New

Tests

  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
  CHK     include/generated/bounds.h
  CHK     include/generated/timeconst.h
  CHK     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  CHK     scripts/mod/devicetable-offsets.h
  CHK     include/generated/compile.h
  CHK     kernel/config_data.h
  CC [M]  drivers/gpu/drm/i915/i915_drv.o
In file included from ./include/linux/ioport.h:12:0,
                 from ./include/linux/acpi.h:25,
                 from drivers/gpu/drm/i915/i915_drv.c:30:
drivers/gpu/drm/i915/i915_drv.c: In function ‘i915_reset_engine’:
drivers/gpu/drm/i915/i915_drv.c:1906:23: error: ‘I915_RESET_ENGINE_IN_PROGRESS’ undeclared (first use in this function)
  GEM_BUG_ON(!test_bit(I915_RESET_ENGINE_IN_PROGRESS, &error->flags));
                       ^
./include/linux/compiler.h:179:42: note: in definition of macro ‘unlikely’
 # define unlikely(x) __builtin_expect(!!(x), 0)
                                          ^
drivers/gpu/drm/i915/i915_gem.h:31:26: note: in expansion of macro ‘BUG_ON’
 #define GEM_BUG_ON(expr) BUG_ON(expr)
                          ^
drivers/gpu/drm/i915/i915_drv.c:1906:2: note: in expansion of macro ‘GEM_BUG_ON’
  GEM_BUG_ON(!test_bit(I915_RESET_ENGINE_IN_PROGRESS, &error->flags));
  ^
drivers/gpu/drm/i915/i915_drv.c:1906:14: note: in expansion of macro ‘test_bit’
  GEM_BUG_ON(!test_bit(I915_RESET_ENGINE_IN_PROGRESS, &error->flags));
              ^
drivers/gpu/drm/i915/i915_drv.c:1906:23: note: each undeclared identifier is reported only once for each function it appears in
  GEM_BUG_ON(!test_bit(I915_RESET_ENGINE_IN_PROGRESS, &error->flags));
                       ^
./include/linux/compiler.h:179:42: note: in definition of macro ‘unlikely’
 # define unlikely(x) __builtin_expect(!!(x), 0)
                                          ^
drivers/gpu/drm/i915/i915_gem.h:31:26: note: in expansion of macro ‘BUG_ON’
 #define GEM_BUG_ON(expr) BUG_ON(expr)
                          ^
drivers/gpu/drm/i915/i915_drv.c:1906:2: note: in expansion of macro ‘GEM_BUG_ON’
  GEM_BUG_ON(!test_bit(I915_RESET_ENGINE_IN_PROGRESS, &error->flags));
  ^
drivers/gpu/drm/i915/i915_drv.c:1906:14: note: in expansion of macro ‘test_bit’
  GEM_BUG_ON(!test_bit(I915_RESET_ENGINE_IN_PROGRESS, &error->flags));
              ^
scripts/Makefile.build:302: recipe for target 'drivers/gpu/drm/i915/i915_drv.o' failed
make[4]: *** [drivers/gpu/drm/i915/i915_drv.o] Error 1
scripts/Makefile.build:561: recipe for target 'drivers/gpu/drm/i915' failed
make[3]: *** [drivers/gpu/drm/i915] Error 2
scripts/Makefile.build:561: recipe for target 'drivers/gpu/drm' failed
make[2]: *** [drivers/gpu/drm] Error 2
scripts/Makefile.build:561: recipe for target 'drivers/gpu' failed
make[1]: *** [drivers/gpu] Error 2
Makefile:1016: recipe for target 'drivers' failed
make: *** [drivers] Error 2

Patches download mbox

# Name Submitter State
[v9,01/21] drm/i915: Look for active requests earlier in the reset path Michel Thierry New
[v9,02/21] drm/i915: Update i915.reset to handle engine resets Michel Thierry New
[v9,03/21] drm/i915: Modify error handler for per engine hang recovery Michel Thierry New
[v9,04/21] drm/i915: Include reset engine information in has_gpu_reset getparam Michel Thierry New
[v9,05/21] drm/i915: Add support for per engine reset recovery Michel Thierry New
[v9,06/21] drm/i915: Add engine reset count to error state Michel Thierry Accepted
[v9,07/21] drm/i915: Export per-engine reset count info to debugfs Michel Thierry New
[v9,RFC,08/21] drm/i915: Carry on with reset even if hw engine is not ready Michel Thierry New
[v9,09/21] drm/i915: Enable Engine reset and recovery support Michel Thierry New
[v9,10/21] drm/i915: Add engine reset count in get-reset-stats ioctl Michel Thierry New
[v9,11/21] drm/i915/selftests: reset engine self tests Michel Thierry New
[v9,12/21] drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder Michel Thierry New
[v9,13/21] drm/i915/guc: Provide register list to be saved/restored during engine reset Michel Thierry New
[v9,14/21] drm/i915/guc: Rename the function that resets the GuC Michel Thierry New
[v9,15/21] drm/i915/guc: Add support for reset engine using GuC commands Michel Thierry New
[v9,16/21] drm/i915: Watchdog timeout: Pass GuC shared data structure during param load Michel Thierry New
[v9,17/21] drm/i915: Watchdog timeout: IRQ handler for gen8+ Michel Thierry New
[v9,18/21] drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+ Michel Thierry New
[v9,19/21] drm/i915: Watchdog timeout: DRM kernel interface to set the timeout Michel Thierry New
[v9,20/21] drm/i915: Watchdog timeout: Include threshold value in error state Michel Thierry New
[v9,21/21] drm/i915: Watchdog timeout: Export media reset count from GuC to debugfs Michel Thierry New

Tests

Series 21868v13 Gen8+ engine-reset
https://patchwork.freedesktop.org/api/1.0/series/21868/revisions/13/mbox/

Test kms_cursor_legacy:
        Subgroup basic-busy-flip-before-cursor-atomic:
                fail       -> PASS       (fi-snb-2600) fdo#100215

fdo#100215 https://bugs.freedesktop.org/show_bug.cgi?id=100215

fi-bdw-5557u     total:278  pass:267  dwarn:0   dfail:0   fail:0   skip:11  time:469s
fi-bdw-gvtdvm    total:278  pass:256  dwarn:8   dfail:0   fail:0   skip:14  time:485s
fi-bsw-n3050     total:278  pass:242  dwarn:0   dfail:0   fail:0   skip:36  time:584s
fi-bxt-j4205     total:278  pass:259  dwarn:0   dfail:0   fail:0   skip:19  time:553s
fi-byt-j1900     total:278  pass:254  dwarn:0   dfail:0   fail:0   skip:24  time:494s
fi-byt-n2820     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time:498s
fi-glk-2a        total:278  pass:259  dwarn:0   dfail:0   fail:0   skip:19  time:588s
fi-hsw-4770      total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time:435s
fi-hsw-4770r     total:278  pass:261  dwarn:0   dfail:0   fail:0   skip:16  time:420s
fi-ilk-650       total:278  pass:227  dwarn:0   dfail:0   fail:0   skip:50  time:466s
fi-ivb-3520m     total:278  pass:259  dwarn:0   dfail:0   fail:0   skip:18  time:498s
fi-ivb-3770      total:278  pass:259  dwarn:0   dfail:0   fail:0   skip:18  time:514s
fi-kbl-7500u     total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time:474s
fi-kbl-7560u     total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time:569s
fi-kbl-r         total:278  pass:259  dwarn:1   dfail:0   fail:0   skip:18  time:584s
fi-skl-6260u     total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time:488s
fi-skl-6700hq    total:278  pass:228  dwarn:1   dfail:0   fail:27  skip:22  time:452s
fi-skl-6700k     total:278  pass:256  dwarn:4   dfail:0   fail:0   skip:18  time:516s
fi-skl-6770hq    total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time:501s
fi-skl-gvtdvm    total:278  pass:265  dwarn:0   dfail:0   fail:0   skip:13  time:511s
fi-snb-2520m     total:278  pass:249  dwarn:0   dfail:0   fail:0   skip:28  time:628s
fi-snb-2600      total:278  pass:247  dwarn:0   dfail:0   fail:1   skip:29  time:403s

467eb330a8121f66d7a8aa7a37991ab24f11aedc drm-tip: 2017y-06m-15d-20h-00m-09s UTC integration manifest
e4f78c7 drm/i915: Watchdog timeout: Export media reset count from GuC to debugfs
f3f25d0 drm/i915: Watchdog timeout: Include threshold value in error state
3a8730e drm/i915: Watchdog timeout: DRM kernel interface to set the timeout
678d01b drm/i915: Watchdog timeout: Ringbuffer command emission for gen8+
69362be drm/i915: Watchdog timeout: IRQ handler for gen8+
c3d23a4 drm/i915: Watchdog timeout: Pass GuC shared data structure during param load
67b9619 drm/i915/guc: Add support for reset engine using GuC commands
7dbc199 drm/i915/guc: Rename the function that resets the GuC
a24f86f drm/i915/guc: Provide register list to be saved/restored during engine reset
c089e05 drm/i915/guc: fix mmio whitelist mmio_start offset and add reminder
206cc32 drm/i915/selftests: reset engine self tests
8697b3e drm/i915: Add engine reset count in get-reset-stats ioctl
95eb905 drm/i915: Enable Engine reset and recovery support
f8bcd30 drm/i915: Carry on with reset even if hw engine is not ready
7f5adfe drm/i915: Export per-engine reset count info to debugfs
975f351 drm/i915: Add engine reset count to error state
7019293 drm/i915: Add support for per engine reset recovery
23f6937 drm/i915: Include reset engine information in has_gpu_reset getparam
fce2787 drm/i915: Modify error handler for per engine hang recovery
fb6a802 drm/i915: Update i915.reset to handle engine resets
b0feb0ba drm/i915: Look for active requests earlier in the reset path