[Intel-gfx] [PATCH 1/2] drm/i915: Add GuC support for engine busy stats

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Fri Dec 22 11:37:27 UTC 2017


On 22/12/2017 10:50, Sagar Arun Kamble wrote:
> On 11/29/2017 6:03 PM, Tvrtko Ursulin wrote:
>> From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>>
>> Wire up the engine busy stats accounting to the GuC submission backend.
>>
>> Since there is not
> no

Yeah. :)

>>   context out interrupt we need to place the accounting
>> callbacks per-request in order to correctly pair with user interrupts.
>>
>> v2: Rebase.
>> v3: Commit update.
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>> ---
>>   drivers/gpu/drm/i915/intel_guc_submission.c | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c 
>> b/drivers/gpu/drm/i915/intel_guc_submission.c
>> index 912ff143d531..d80d2a3214da 100644
>> --- a/drivers/gpu/drm/i915/intel_guc_submission.c
>> +++ b/drivers/gpu/drm/i915/intel_guc_submission.c
>> @@ -781,6 +781,7 @@ static void guc_dequeue(struct intel_engine_cs 
>> *engine)
>>               INIT_LIST_HEAD(&rq->priotree.link);
>>               __i915_gem_request_submit(rq);
>> +            intel_engine_context_in(rq->engine);
> Shouldn't we also invoke execlists_context_status_change for GVT-g.

Not currently in GuC paths so I think not, or if yes, then it should be 
added separately.

>>               trace_i915_gem_request_in(rq,
>>                             port_index(port, execlists));
>>               last = rq;
>> @@ -813,6 +814,7 @@ static void guc_submission_tasklet(unsigned long 
>> data)
>>       rq = port_request(&port[0]);
>>       while (rq && i915_gem_request_completed(rq)) {
>> +        intel_engine_context_out(rq->engine);
>>           trace_i915_gem_request_out(rq);
>>           i915_gem_request_put(rq);
>> @@ -1453,8 +1455,6 @@ int intel_guc_submission_enable(struct intel_guc 
>> *guc)
>>           execlists->tasklet.func = guc_submission_tasklet;
>>           engine->park = guc_submission_park;
>>           engine->unpark = guc_submission_unpark;
>> -
>> -        engine->flags &= ~I915_ENGINE_SUPPORTS_STATS;
> Should we explicitly set this flag even though execlists is setting it.

AFAIR we settled on this approach while discussing the parent patch. 
Parent = the patch which added the I915_ENGINE_SUPPORTS_STATS.

>>       }
>>       return 0;
> Overall change looks good to me.
> GuC publishing engine data will make it more precise as we understand.

Hopefully yes.

Regards,

Tvrtko


More information about the Intel-gfx mailing list