[PATCH 2/2] drm/i915: Don't treat FLR resets as errors

Nirmoy Das nirmoy.das at linux.intel.com
Fri May 17 14:00:02 UTC 2024


Hi Andi,

On 5/17/2024 1:25 PM, Andi Shyti wrote:
> If we timeout while waiting for an FLR reset, there is nothing we
> can do and i915 doesn't have any control on it. In any case the
> system is still perfectly usable

If a FLR reset fails then we will have a dead GPU, I don't think the GPU 
is usable without a cold reboot.

This is a serious issue and should be report as an error.  I think we 
need to create a HW ticket to understand

why is FLR reset fails.


Regards,

Nirmoy



>   and the function returns void.
>
> We don't need to be alarmed, therefore, print the timeout
> expiration as a debug message instead of an error.
>
> Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10955
> Signed-off-by: Andi Shyti <andi.shyti at linux.intel.com>
> ---
>   drivers/gpu/drm/i915/intel_uncore.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
> index 2eba289d88ad..a3fa2ed91aae 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.c
> +++ b/drivers/gpu/drm/i915/intel_uncore.c
> @@ -2637,7 +2637,7 @@ static void driver_initiated_flr(struct intel_uncore *uncore)
>   	 */
>   	ret = intel_wait_for_register_fw(uncore, GU_CNTL, DRIVERFLR, 0, flr_timeout_ms);
>   	if (ret) {
> -		drm_err(&i915->drm,
> +		drm_dbg(&i915->drm,
>   			"Failed to wait for Driver-FLR bit to clear! %d\n",
>   			ret);
>   		return;
> @@ -2652,7 +2652,7 @@ static void driver_initiated_flr(struct intel_uncore *uncore)
>   					 DRIVERFLR, 0,
>   					 flr_timeout_ms);
>   	if (ret) {
> -		drm_err(&i915->drm, "Driver-FLR-teardown wait completion failed! %d\n", ret);
> +		drm_dbg(&i915->drm, "Driver-FLR-teardown wait completion failed! %d\n", ret);
>   		return;
>   	}
>   
> @@ -2661,7 +2661,7 @@ static void driver_initiated_flr(struct intel_uncore *uncore)
>   					 DRIVERFLR_STATUS, DRIVERFLR_STATUS,
>   					 flr_timeout_ms);
>   	if (ret) {
> -		drm_err(&i915->drm, "Driver-FLR-reinit wait completion failed! %d\n", ret);
> +		drm_dbg(&i915->drm, "Driver-FLR-reinit wait completion failed! %d\n", ret);
>   		return;
>   	}
>   


More information about the dri-devel mailing list