[Intel-gfx] [PATCH v2 15/38] drm/i915: Test simultaneously submitting requests to all engines

Chris Wilson chris at chris-wilson.co.uk
Wed Feb 1 10:15:58 UTC 2017


On Wed, Feb 01, 2017 at 10:03:07AM +0200, Joonas Lahtinen wrote:
> On to, 2017-01-19 at 11:41 +0000, Chris Wilson wrote:
> > +	if (gen >= 8) {
> > +		*cmd++ = MI_BATCH_BUFFER_START | 1 << 8 | 1;
> > +		*cmd++ = lower_32_bits(vma->node.start);
> > +		*cmd++ = upper_32_bits(vma->node.start);
> > +	} else if (gen >= 6) {
> > +		*cmd++ = MI_BATCH_BUFFER_START | 1 << 8;
> > +		*cmd++ = lower_32_bits(vma->node.start);
> > +	} else if (gen >= 4) {
> > +		*cmd++ = MI_BATCH_BUFFER_START | MI_BATCH_GTT;
> > +		*cmd++ = lower_32_bits(vma->node.start);
> > +	} else {
> > +		*cmd++ = MI_BATCH_BUFFER_START | MI_BATCH_GTT | 1;
> > +		*cmd++ = lower_32_bits(vma->node.start);
> > +	}
> 
> I'm sure this is not first time I see this hunk.

Of this variant, it is. What's really frustating is that we almost have
the right vfuncs. Tempted to build a dummy request to reuse the current
emitters....

> <SNIP>
> 
> > +	if (i915->gpu_error.missed_irq_rings) {
> > +		pr_err("%s: Missed interrupts on rings %lx\n", __func__,
> > +		       i915->gpu_error.missed_irq_rings);
> > +		err = -EIO;
> > +		goto out_request;
> > +	}
> 
> Should we have a running missed_irqs counter too? Just wondering.

Since then we now have begin_live_test(&t); end_live_test(&t) that does
the hang/missed checking.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list