[Intel-gfx] [PATCH v7 09/12] drm/i915: add a new perf configuration execbuf parameter

Chris Wilson chris at chris-wilson.co.uk
Tue Jul 9 09:58:25 UTC 2019


Quoting Lionel Landwerlin (2019-07-09 10:32:05)
> +static int eb_oa_config(struct i915_execbuffer *eb)
> +{
> +       int err;
> +
> +       if (!eb->oa_config)
> +               return 0;
> +
> +       err = i915_active_request_set(&eb->engine->last_oa_config,
> +                                     eb->request);

This is outside of the eb->request->timeline->mutex and needs a mutex.

> +       if (err)
> +               return err;
> +
> +       /*
> +        * If the config hasn't changed, skip reconfiguring the HW (this is
> +        * subject to a delay we want to avoid has much as possible).
> +        */
> +       if (eb->oa_config == eb->i915->perf.oa.exclusive_stream->oa_config)
> +               return 0;
> +
> +       err = i915_vma_move_to_active(eb->oa_vma, eb->request, 0);
> +       if (err)
> +               return err;
> +
> +       err = eb->engine->emit_bb_start(eb->request,
> +                                       eb->oa_vma->node.start,
> +                                       0, I915_DISPATCH_SECURE);
> +       if (err)
> +               return err;
> +
> +       swap(eb->oa_config, eb->i915->perf.oa.exclusive_stream->oa_config);

As does this this. So which mutex is to guard
i915->perf.oa.exclusive_stream->oa_config ?

Is i915->perf.metrics_locks sensible to guard [data within] this function?
-Chris


More information about the Intel-gfx mailing list