[PATCH 1/2] drm/radeon/kms: increase lockup detection interval to 10 sec for r100-r500

Marek Olšák maraeo at gmail.com
Sat Sep 11 21:53:52 PDT 2010


Oh I almost forgot. I removed the funky "(elapsed >= 3000)" conditional
which funnily did not mean a hardlock. I don't understand what it was meant
to be and what it was for. Any idea?

Marek

On Sun, Sep 12, 2010 at 5:09 AM, Marek Olšák <maraeo at gmail.com> wrote:

> One subtest of mesa/demos/gltestperf takes 9 seconds to complete,
> so to prevent an unnecessary gpu reset followed by a hardlock, I am
> increasing the interval to 10 seconds after which a GPU is considered
> in a locked-up state. This is on RV530. However, with a little slower GPU,
> we would surpass the interval easily, so this is not a good fix
> for gltestperf.
>
> Nevertheless, this commit also fixes hardlocks in the applications which
> render at speed of less than 1 frame per second, where the whole frame
> consists of only one command stream. The game Tiny & Big is an example.
> This bar is now lowered to 0.1 fps.
>
> Now the question comes down to whether we should (often unsuccessfully)
> reset the GPU at all? Once we have stable enough drivers, we won't have to.
> Has the time come already?
>
> If possible, this commit should go to stable as well.
>
> Signed-off-by: Marek Olšák <maraeo at gmail.com>
> ---
>  drivers/gpu/drm/radeon/r100.c |   13 +------------
>  1 files changed, 1 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
> index e817a0b..ec64b36 100644
> --- a/drivers/gpu/drm/radeon/r100.c
> +++ b/drivers/gpu/drm/radeon/r100.c
> @@ -2020,18 +2020,7 @@ bool r100_gpu_cp_is_lockup(struct radeon_device
> *rdev, struct r100_gpu_lockup *l
>                return false;
>        }
>        elapsed = jiffies_to_msecs(cjiffies - lockup->last_jiffies);
> -       if (elapsed >= 3000) {
> -               /* very likely the improbable case where current
> -                * rptr is equal to last recorded, a while ago, rptr
> -                * this is more likely a false positive update tracking
> -                * information which should force us to be recall at
> -                * latter point
> -                */
> -               lockup->last_cp_rptr = cp->rptr;
> -               lockup->last_jiffies = jiffies;
> -               return false;
> -       }
> -       if (elapsed >= 1000) {
> +       if (elapsed >= 10000) {
>                dev_err(rdev->dev, "GPU lockup CP stall for more than
> %lumsec\n", elapsed);
>                return true;
>        }
> --
> 1.7.0.4
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20100912/4feb077c/attachment.html>


More information about the dri-devel mailing list