Re: [RFC 0/8] Force preemption

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 21/03/2018 17:26, jeff.mcgee@xxxxxxxxx wrote:
From: Jeff McGee <jeff.mcgee@xxxxxxxxx>

Force preemption uses engine reset to enforce a limit on the time
that a request targeted for preemption can block. This feature is
a requirement in automotive systems where the GPU may be shared by
clients of critically high priority and clients of low priority that
may not have been curated to be preemption friendly. There may be
more general applications of this feature. I'm sharing as an RFC to
stimulate that discussion and also to get any technical feedback
that I can before submitting to the product kernel that needs this.
I have developed the patches for ease of rebase, given that this is
for the moment considered a non-upstreamable feature. It would be
possible to refactor hangcheck to fully incorporate force preemption
as another tier of patience (or impatience) with the running request.

Sorry if it was mentioned elsewhere and I missed it - but does this work only with stateless clients - or in other words, what would happen to stateful clients which would be force preempted? Or the answer is we don't care since they are misbehaving?

Maybe ban such contexts on first force preemption would make sense for this specific target environment?

Regards,

Tvrtko


Chris Wilson (5):
   drm/i915/execlists: Refactor out complete_preempt_context()
   drm/i915: Add control flags to i915_handle_error()
   drm/i915: Move engine reset prepare/finish to backends
   drm/i915: Split execlists/guc reset prepartions
   drm/i915/execlists: Flush pending preemption events during reset

Jeff McGee (3):
   drm/i915: Fix loop on CSB processing
   drm/i915: Skip CSB processing on invalid CSB tail
   drm/i915: Force preemption to complete via engine reset

  drivers/gpu/drm/i915/i915_debugfs.c              |   4 +-
  drivers/gpu/drm/i915/i915_drv.c                  |  17 +-
  drivers/gpu/drm/i915/i915_drv.h                  |  10 +-
  drivers/gpu/drm/i915/i915_gem.c                  |  69 ++--
  drivers/gpu/drm/i915/i915_gpu_error.h            |   3 +
  drivers/gpu/drm/i915/i915_irq.c                  |  55 +--
  drivers/gpu/drm/i915/i915_params.c               |   3 +
  drivers/gpu/drm/i915/i915_params.h               |   1 +
  drivers/gpu/drm/i915/i915_request.c              |   2 +-
  drivers/gpu/drm/i915/intel_engine_cs.c           |  40 +++
  drivers/gpu/drm/i915/intel_guc_submission.c      |  39 ++
  drivers/gpu/drm/i915/intel_hangcheck.c           |   8 +-
  drivers/gpu/drm/i915/intel_lrc.c                 | 436 ++++++++++++++---------
  drivers/gpu/drm/i915/intel_ringbuffer.c          |  20 +-
  drivers/gpu/drm/i915/intel_ringbuffer.h          |  13 +-
  drivers/gpu/drm/i915/selftests/intel_hangcheck.c |  13 +-
  16 files changed, 469 insertions(+), 264 deletions(-)

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux