[Intel-gfx] [PATCH 7/7] drm/i915/uc: Don't forget to prepare GuC for the reset

Michal Wajdeczko michal.wajdeczko at intel.com
Fri May 17 16:54:53 UTC 2019


On Fri, 17 May 2019 18:27:44 +0200, Chris Wilson  
<chris at chris-wilson.co.uk> wrote:

> Quoting Michal Wajdeczko (2019-05-17 17:22:27)
>> When we reset engines using ALL_ENGINES mask, we will do
>> full GPU reset and GuC will be also affected. Let GuC be
>> prepared for upcoming reset.
>>
>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
>> Cc: Chris Wilson <chris at chris-wilson.co.uk>
>> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
>> ---
>>  drivers/gpu/drm/i915/gt/intel_reset.c | 4 ++++
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/gt/intel_reset.c  
>> b/drivers/gpu/drm/i915/gt/intel_reset.c
>> index 464369bc55ad..ca6e40b6b4e2 100644
>> --- a/drivers/gpu/drm/i915/gt/intel_reset.c
>> +++ b/drivers/gpu/drm/i915/gt/intel_reset.c
>> @@ -564,6 +564,10 @@ static int gen8_reset_engines(struct  
>> drm_i915_private *i915,
>>                  */
>>         }
>>
>> +       /* We are about to do full GPU reset, don't forget about GuC */
>> +       if (engine_mask == ALL_ENGINES)
>> +               intel_uc_reset_prepare(i915);
>
> Eh, this is done in reset_prepare already. The only other path to call
> intel_gpu_reset() directly is along sanitization, which should also have
> already sanitized the guc as well. No?

There is igt_atomic_reset selftest which does not call reset_prepare.
And since we lost GuC in gen6_reset_engines due to GEN6_GRDOM_FULL,
our later graceful goodbye with GuC was not working.

This is hidden with current GuC fw, but with new ICL fw with CT is was  
visible as:

<3> [508.613024] [drm:intel_guc_send_mmio [i915]] *ERROR* MMIO: GuC action  
0x4506 failed with error -110 0x4506
<3> [508.613142] [drm:guc_action_deregister_ct_buffer [i915]] *ERROR* CT:  
deregister SEND buffer failed; owner=0 err=-110
<3> [508.623521] [drm:intel_guc_send_mmio [i915]] *ERROR* MMIO: GuC action  
0x4506 failed with error -110 0x4506
<3> [508.623573] [drm:guc_action_deregister_ct_buffer [i915]] *ERROR* CT:  
deregister RECV buffer failed; owner=0 err=-110

Michal


More information about the Intel-gfx mailing list