[igt-dev] [PATCH i-g-t 2/2] tests/gem_sync: Use softpin path for no-reloc gens

Dixit, Ashutosh ashutosh.dixit at intel.com
Sat Oct 30 03:55:40 UTC 2021


On Thu, 28 Oct 2021 11:23:22 -0700, Zbigniew Kempczyński wrote:
>
> @@ -384,6 +401,8 @@ active_wakeup_ring(int fd, const intel_ctx_t *ctx, unsigned ring,
>		   int timeout, int wlen)
>  {
>	struct intel_engine_data ied;
> +	uint64_t ahnd0 = get_reloc_ahnd(fd, 0);
> +	uint64_t ahnd = get_reloc_ahnd(fd, ctx->id);
>
>	ied = list_store_engines(fd, ctx, ring);
>	igt_require(ied.nengines);
> @@ -397,8 +416,14 @@ active_wakeup_ring(int fd, const intel_ctx_t *ctx, unsigned ring,
>		unsigned long cycles;
>		igt_spin_t *spin[2];
>
> +		ahnd0 = get_reloc_ahnd(fd, 0);
> +		ahnd = get_reloc_ahnd(fd, ctx->id);
> +
>		memset(&object, 0, sizeof(object));
>		object.handle = gem_create(fd, 4096);
> +		object.offset = get_offset(ahnd, object.handle, 4096, 0);
> +		if (ahnd)
> +			object.offset = EXEC_OBJECT_PINNED;
>		gem_write(fd, object.handle, 0, &bbe, sizeof(bbe));
>
>		memset(&execbuf, 0, sizeof(execbuf));
> @@ -408,12 +433,14 @@ active_wakeup_ring(int fd, const intel_ctx_t *ctx, unsigned ring,
>		execbuf.rsvd1 = ctx->id;
>
>		spin[0] = __igt_spin_new(fd,
> +					 .ahnd = ahnd,
>					 .engine = execbuf.flags,
>					 .flags = (IGT_SPIN_POLL_RUN |
>						   IGT_SPIN_FAST));
>		igt_assert(igt_spin_has_poll(spin[0]));
>
>		spin[1] = __igt_spin_new(fd,
> +					 .ahnd = ahnd,
>					 .engine = execbuf.flags,
>					 .flags = (IGT_SPIN_POLL_RUN |
>						   IGT_SPIN_FAST));
> @@ -490,8 +517,13 @@ active_wakeup_ring(int fd, const intel_ctx_t *ctx, unsigned ring,
>		igt_spin_free(fd, spin[1]);
>		igt_spin_free(fd, spin[0]);
>		gem_close(fd, object.handle);
> +		put_offset(ahnd, object.handle);
> +		put_ahnd(ahnd);
> +		put_ahnd(ahnd0);
>	}
>	igt_waitchildren_timeout(2*timeout, NULL);
> +	put_ahnd(ahnd);
> +	put_ahnd(ahnd0);
>	igt_assert_eq(intel_detect_and_clear_missed_interrupts(fd), 0);
>  }

Sorry don't see ahnd0 being used in active_wakeup_ring() above? Rest looks
fine but please let me know about this one issue. Thanks.


More information about the igt-dev mailing list