[Intel-gfx] [RFC 0/8] Force preemption

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Thu Mar 22 09:22:55 UTC 2018


On 21/03/2018 17:26, jeff.mcgee at intel.com wrote:
> From: Jeff McGee <jeff.mcgee at intel.com>
> 
> 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(-)
> 


More information about the Intel-gfx mailing list