[Intel-gfx] [PATCH 04/13] drm/i915: track ring progression using seqnos

Mika Kuoppala mika.kuoppala at linux.intel.com
Tue Feb 26 16:09:03 CET 2013


Chris Wilson <chris at chris-wilson.co.uk> writes:

> On Tue, Feb 26, 2013 at 01:05:07PM +0200, Mika Kuoppala wrote:
>> Instead of relying in acthd, track ring seqno progression
>> to detect if ring has hung.
>
> This needs a comment that it has a user visible side-effect of limiting
> batches to a maximum of 1.5s runtime. Before, that limit was softer in
> that we had a chance to spot that the GPU was busy - even if we could be
> fooled by an infinite loop.

As the current code has:

> if (dev_priv->gpu_error.hangcheck_count++ > 1)

to trigger the hang, so it will trigger at 3rd timer call (4.5seconds)

With my patch it will be 4.5 seconds if rings are waiting 
and 3 seconds if there is non waiting ring involved.

As i can't explain what is the added benefit to declare hang earlier
if there is a non waiting ring, do you want me to simplify this
to just declare hang if there is no progress in 4.5 seconds in both cases?
To match the old trigger timing.

> Did you write an i-g-t for detecting a ring of chained batchbuffers?
> -Chris

Yes, you can find it in here:

https://github.com/mkuoppal/intel-gpu-tools/commit/1df7d49ff9ecedf9c55933a9e36b1eb41f07abc6

If you wan't to compile/run, you need also:
https://github.com/mkuoppal/linux/commit/f24c1d64f89b070c74afa38ab5ac148f56c84aaf

The interface will change but currently the test is based on old ioctl.

Thanks,
-Mika




More information about the Intel-gfx mailing list