[Intel-gfx] [PATCH] drm/i915/perf: Add preemption check while waiting for OA

Chris Wilson chris at chris-wilson.co.uk
Thu Nov 14 14:42:02 UTC 2019


Quoting Lionel Landwerlin (2019-11-14 14:02:24)
> While we're waiting for the OA configuration to apply, let's give a
> chance to other contexts that might need to run other workloads.
> 
> Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
> Suggested-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
>  drivers/gpu/drm/i915/i915_perf.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
> index 31e47ee23357..608e6c3f3c1a 100644
> --- a/drivers/gpu/drm/i915/i915_perf.c
> +++ b/drivers/gpu/drm/i915/i915_perf.c
> @@ -1777,6 +1777,8 @@ static int alloc_noa_wait(struct i915_perf_stream *stream)
>         *cs++ = MI_MATH_ADD;
>         *cs++ = MI_MATH_STOREINV(MI_MATH_REG(JUMP_PREDICATE), MI_MATH_REG_CF);
>  
> +       *cs++ = MI_ARB_CHECK;
> +

That's as reasonable a time to check. If we get preempted just before
the end of the wait we do one more loop before exciting. And the loop is
quick enough that it doesn't matter.

So placement of MI_ARB_CHECK is at your convenience (just so long as it
is inside the loop!)

Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Chris


More information about the Intel-gfx mailing list