[Intel-gfx] [PATCH v2 1/9] drm/i915/perf: store the associated engine of a stream

Lionel Landwerlin lionel.g.landwerlin at intel.com
Wed Oct 9 13:48:42 UTC 2019


On 09/10/2019 16:40, Chris Wilson wrote:
> Quoting Lionel Landwerlin (2019-10-09 14:34:49)
>> On 09/10/2019 15:45, Chris Wilson wrote:
>>> Quoting Lionel Landwerlin (2019-10-09 13:43:32)
>>>> Do you have branch somewhere with this series?
>>> https://cgit.freedesktop.org/~ickle/linux-2.6/log/?h=wip-perf
>>> -Chris
>>>
>> Cheers,
>>
>>
>> I've modified the top patch to set the nopreempt flag for as long as the
>> context has been flagged (as long at the perf stream is opened) :
>> https://github.com/djdeath/linux/commit/d3327b30c6141fac98a3d46f3398c87fe70976aa
> That means you are not passing in the ext_perf_config to every batch that
> is using it, right? The oa_config tracking also hinges on that you do.
> -Chris
>
Like I mentioned, there are empty batch to drain the context that we 
emit without OA reconfiguration.

There could also be a sequence such as :

     - batch0 (includes perf query config=42)

     - batch1 (no perf query, includes timestamp or pipeline query)

     - batch2 (includes perf query config=42)

     - batch3 (includes perf query config=43)


It sounds reasonable to ensure that all the requests are flagged with 
nopreempt to ensure we don't preempt one because we don't have 
visibility on what's completed when reloading the execlists ports.

This entire sequence above would be surrounded by open/close of the perf 
stream. Once close() returns, then any new request won't be flagged with 
nopreempt but it's the application's responsability to have collected 
all the queries' results before closing the stream.


-Lionel



More information about the Intel-gfx mailing list