Re: [PATCH 7/8] drm/i915/pmu: Wire up engine busy stats to PMU

Tvrtko Ursulin
2017-09-27T07:59:10Z

On 26/09/2017 19:46, Rogozhkin, Dmitry V wrote:
> On Tue, 2017-09-26 at 13:32 +0100, Tvrtko Ursulin wrote:
>> On 25/09/2017 18:48, Chris Wilson wrote:
>>> Quoting Tvrtko Ursulin (2017-09-25 16:15:42)
>>>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>>>
>>>> We can use engine busy stats instead of the MMIO sampling timer
>>>> for better efficiency.
>>>>
>>>> As minimum this saves period * num_engines / sec mmio reads,
>>>> and in a better case, when only engine busy samplers are active,
>>>> it enables us to not kick off the sampling timer at all.
>>>
>>> Or you could inspect port_isset(execlists.port).
>>> You can avoid the mmio for this case also by just using HWSP. It's just
>>> that I never enabled busy tracking in isolation, so I always ended up
>>> using the mmio.
>>
>> This would be for execlists only. I could change the main patch to do
>> this, you think it is worth it?
>
> You know, I wonder why we limit this by execlists? Is that because

I am not sure there wasn't a slight misunderstanding here. By "execlists
only" I simply meant the _optimisation_ of getting engine busyness via
port_isset instead of MMIO reads would be for execlists only (and guc).

So we'd have:

1. legacy - mmio sampling
2. execlists - software sampling in the first pmu batch, then precise
engine busyness in patches that follow
3. guc - like execlists in the first pmu patch, and the for precise
busyness perhaps we just use the same context_in/out approach

Regards,

Tvrtko