[Intel-gfx] [PATCH 1/2] lib/gt: Omit illegal instruction on hang injection with gen 8+

Chris Wilson chris at chris-wilson.co.uk
Wed Jun 8 13:54:53 UTC 2016


On Wed, Jun 08, 2016 at 04:07:17PM +0300, Mika Kuoppala wrote:
> 0xffffffff as an illegal command confuses the command execution
> on gen9 so that the next BB start will get ignored, causing a runaway
> head past the bb end. This delays the hang detection substantially
> as hangcheck then observes only a non progressing seqno.
> 
> Omit the bad instruction on gen8+ and rely on the chained batch
> loop to cause a deterministic hang. Make the chained bb start
> to jump straight into bb start, omitting the MI_NOOP or the bad
> instruction on subsequent passes. This makes the acthd sampling
> to hit more reliably to the same value, as the loop is smaller,
> making the head appear to be 'more stuck'.

You could note that BB(addr | 4) is also illegal. gen2+ requires 8 byte
alignment, ilk requires 64 byte.
 
> References: https://bugs.freedesktop.org/show_bug.cgi?id=92715
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Signed-off-by: Mika Kuoppala <mika.kuoppala at intel.com>
Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list