[Intel-gfx] [PATCH v7 09/12] drm/i915: add a new perf configuration execbuf parameter
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Tue Jul 9 10:59:31 UTC 2019
On 09/07/2019 12:58, Chris Wilson wrote:
> 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.
Can I do this inside i915_request_add() when rq->flags &
I915_REQUEST_FLAGS_PERF ?
>
>> + 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
>
Oh sorry, I missed that again...
At the moment it would be i915->drm.struct_mutex but this could be a bit
finer on the engine.
-Lionel
More information about the Intel-gfx
mailing list