[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