Re: [PATCH v2 2/2] drm/msm: Hangcheck progress detection

From: Rob Clark
Date: Thu Nov 03 2022 - 10:24:54 EST


On Wed, Nov 2, 2022 at 4:26 PM Dmitry Baryshkov
<dmitry.baryshkov@xxxxxxxxxx> wrote:
>
> On 02/11/2022 01:33, Rob Clark wrote:
> > From: Rob Clark <robdclark@xxxxxxxxxxxx>
> >
> > If the hangcheck timer expires, check if the fw's position in the
> > cmdstream has advanced (changed) since last timer expiration, and
> > allow it up to three additional "extensions" to it's alotted time.
> > The intention is to continue to catch "shader stuck in a loop" type
> > hangs quickly, but allow more time for things that are actually
> > making forward progress.
>
> Just out of curiosity: wouldn't position also change for a 'shader stuck
> in a loop'?

There is some pipelining, in that there can be a couple draws in
flight at the same time, and SQE is running ahead of that, but with a
shader stuck in a loop the associated draw will not complete, and that
will halt forward progress through the cmdstream. Basically what this
is doing is detecting that forward progress through the cmdstream has
stopped.

BR,
-R

>
> > Because we need to sample the CP state twice to detect if there has
> > not been progress, this also cuts the the timer's duration in half.
> >
> > v2: Fix typo (REG_A6XX_CP_CSQ_IB2_STAT), add comment
> >
> > Signed-off-by: Rob Clark <robdclark@xxxxxxxxxxxx>
> > Reviewed-by: Akhil P Oommen <quic_akhilpo@xxxxxxxxxxx>
>
>
>
> --
> With best wishes
> Dmitry
>