[Intel-gfx] [PATCH 14/19] drm/i915: Forcefully flush GuC log buffer on reset

Goel, Akash akash.goel at intel.com
Sat Aug 20 06:49:36 UTC 2016



On 8/19/2016 11:40 PM, Chris Wilson wrote:
> On Fri, Aug 19, 2016 at 02:13:13PM +0530, akash.goel at intel.com wrote:
>> From: Sagar Arun Kamble <sagar.a.kamble at intel.com>
>>
>> Before capturing the GuC logs as a part of error state, there should be a
>> force log buffer flush action sent to GuC before proceeding with GPU reset
>> and re-initializing GUC. There could be some data in the log buffer which
>> is yet to be captured and those logs would be particularly useful to
>> understand that why the GPU reset was initiated.
>
> There's no point if we can't wait for any writes to complete, so just take
> the snapshot of the log at the time of the hang.
>


>> +void i915_guc_flush_logs(struct drm_i915_private *dev_priv, bool can_wait)
>> +{
>> +	if (!i915.enable_guc_submission || (i915.guc_log_level < 0))
>> +		return;
>> +
>> +	/* First disable the interrupts, will be renabled afterwards */
>> +	gen9_disable_guc_interrupts(dev_priv);
>
> calls synchronize_irq() which is also illegal from the atomic context of
> error capture.

Fine, will not call gen9_disable_guc_interrupts, just like flush_work, 
from the error state capture path.

But I feel it could still be useful to invoke 
host2guc_force_logbuffer_flush().

Best regards
Akash
> -Chris
>


More information about the Intel-gfx mailing list