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

Joonas Lahtinen joonas.lahtinen at linux.intel.com
Wed Feb 1 08:03:07 UTC 2017


On to, 2017-01-19 at 11:41 +0000, Chris Wilson wrote:
> Use a recursive-batch to busy spin on each to ensure that each is being
> run simultaneously.
> 
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

<SNIP>

> ---
>  drivers/gpu/drm/i915/selftests/i915_gem_request.c | 178 ++++++++++++++++++++++
>  1 file changed, 178 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_request.c b/drivers/gpu/drm/i915/selftests/i915_gem_request.c
> index 19103d87a4c3..fb6f8acc1429 100644
> --- a/drivers/gpu/drm/i915/selftests/i915_gem_request.c
> +++ b/drivers/gpu/drm/i915/selftests/i915_gem_request.c
> @@ -249,10 +249,188 @@ static int live_nop_request(void *arg)
> >  	return err;
>  }
>  
> +static struct i915_vma *recursive_batch(struct drm_i915_private *i915)
> +{

<SNIP>

> +	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.

<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.

Reviewed-by: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>

Regards, Joonas
-- 
Joonas Lahtinen
Open Source Technology Center
Intel Corporation


More information about the Intel-gfx mailing list