[Intel-gfx] [PATCH] drm/i915/execlists: Select arb on/off around batches based on preemption
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Fri Dec 20 11:26:45 UTC 2019
On 13/12/2019 15:13, Chris Wilson wrote:
> Decide whether or not we need to disable arbitration within user batches
> based on our intel_engine_has_preemption() flag.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> Cc: Mika Kuoppala <mika.kuoppala at linux.intel.com>
> ---
> drivers/gpu/drm/i915/gt/intel_lrc.c | 17 +++++++++--------
> 1 file changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c
> index 929f6bae4eba..983e0e6e909b 100644
> --- a/drivers/gpu/drm/i915/gt/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
> @@ -3263,9 +3263,9 @@ static void execlists_reset_finish(struct intel_engine_cs *engine)
> atomic_read(&execlists->tasklet.count));
> }
>
> -static int gen8_emit_bb_start(struct i915_request *rq,
> - u64 offset, u32 len,
> - const unsigned int flags)
> +static int gen8_emit_bb_start_noarb(struct i915_request *rq,
> + u64 offset, u32 len,
> + const unsigned int flags)
> {
> u32 *cs;
>
> @@ -3299,7 +3299,7 @@ static int gen8_emit_bb_start(struct i915_request *rq,
> return 0;
> }
>
> -static int gen9_emit_bb_start(struct i915_request *rq,
> +static int gen8_emit_bb_start(struct i915_request *rq,
> u64 offset, u32 len,
> const unsigned int flags)
> {
> @@ -3774,6 +3774,11 @@ void intel_execlists_set_default_submission(struct intel_engine_cs *engine)
>
> if (INTEL_GEN(engine->i915) >= 12)
> engine->flags |= I915_ENGINE_HAS_RELATIVE_MMIO;
> +
> + if (intel_engine_has_preemption(engine))
> + engine->emit_bb_start = gen8_emit_bb_start;
> + else
> + engine->emit_bb_start = gen8_emit_bb_start_noarb;
> }
>
> static void execlists_shutdown(struct intel_engine_cs *engine)
> @@ -3827,10 +3832,6 @@ logical_ring_default_vfuncs(struct intel_engine_cs *engine)
> * until a more refined solution exists.
> */
> }
> - if (IS_GEN(engine->i915, 8))
> - engine->emit_bb_start = gen8_emit_bb_start;
> - else
> - engine->emit_bb_start = gen9_emit_bb_start;
> }
>
> static inline void
>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Regards,
Tvrtko
More information about the Intel-gfx
mailing list