Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Dixit, Ashutosh" <ashutosh.dixit@intel.com>
To: "Zbigniew Kempczyński" <zbigniew.kempczynski@intel.com>
Cc: igt-dev@lists.freedesktop.org, Petri Latvala <petri.latvala@intel.com>
Subject: Re: [igt-dev] [PATCH i-g-t 1/3] tests/gem_ctx_shared: Adopt to use allocator
Date: Thu, 19 Aug 2021 14:16:13 -0700	[thread overview]
Message-ID: <87v941b0f6.wl-ashutosh.dixit@intel.com> (raw)
In-Reply-To: <20210819044941.7699-2-zbigniew.kempczynski@intel.com>

On Wed, 18 Aug 2021 21:49:39 -0700, Zbigniew Kempczyński wrote:
>
> @@ -518,12 +533,24 @@ static void store_dword(int i915, const intel_ctx_t *ctx, unsigned ring,
>
>	memset(obj, 0, sizeof(obj));
>	obj[0].handle = cork;
> -	obj[0].offset = cork << 20;
>	obj[1].handle = target;
> -	obj[1].offset = target << 20;
>	obj[2].handle = gem_create(i915, 4096);
> -	obj[2].offset = 256 << 10;
> -	obj[2].offset += (random() % 128) << 12;
> +	if (ahnd) {
> +		obj[0].offset = cork_offset;
> +		obj[0].flags |= EXEC_OBJECT_PINNED;
> +		obj[1].offset = target_offset;
> +		obj[1].flags |= EXEC_OBJECT_PINNED;
> +		if (write_domain)
> +			obj[1].flags |= EXEC_OBJECT_WRITE;
> +		obj[2].offset = get_offset(ahnd, obj[2].handle, 4096, 0x0);
> +		obj[2].flags |= EXEC_OBJECT_PINNED;
> +		execbuf.flags |= I915_EXEC_NO_RELOC;

I915_EXEC_NO_RELOC needed (since I think we weren't doing this earlier)?

> -static void unplug_show_queue(int i915, struct igt_cork *c,
> +static void unplug_show_queue(int i915, struct igt_cork *c, uint64_t ahnd,
>			      const intel_ctx_cfg_t *cfg, unsigned int engine)
>  {
>	igt_spin_t *spin[MAX_ELSP_QLEN];
>
>	for (int n = 0; n < ARRAY_SIZE(spin); n++) {
>		const intel_ctx_t *ctx = create_highest_priority(i915, cfg);
> -		spin[n] = __igt_spin_new(i915, .ctx = ctx, .engine = engine);
> +
> +		/*
> +		 * When we're using same vm we should use allocator handle
> +		 * passed by the caller. This is the case where cfg->vm
> +		 * is not NULL.
> +		 *
> +		 * For cases where context use its own vm we need separate
> +		 * ahnd for it.
> +		 */
> +		if (!cfg->vm)
> +			ahnd = get_reloc_ahnd(i915, ctx->id);

Ok, good, even though in this code we always used shared vm this is good in
case something changes later.

> @@ -599,8 +643,10 @@ static uint32_t store_timestamp(int i915,
>	uint32_t handle = gem_create(i915, 4096);
>	struct drm_i915_gem_exec_object2 obj = {
>		.handle = handle,
> -		.relocation_count = 1,
> -		.offset = (32 << 20) + (handle << 16),
> +		.relocation_count = !ahnd ? 1 : 0,
> +		.offset = !ahnd ? (32 << 20) + (handle << 16) :
> +				  get_offset(ahnd, handle, 4096, 0),
> +		.flags = !ahnd ? 0 : EXEC_OBJECT_PINNED,

| EXEC_OBJECT_WRITE ?

> @@ -612,7 +658,7 @@ static uint32_t store_timestamp(int i915,
>	struct drm_i915_gem_execbuffer2 execbuf = {
>		.buffers_ptr = to_user_pointer(&obj),
>		.buffer_count = 1,
> -		.flags = ring | I915_EXEC_FENCE_IN,
> +		.flags = ring | I915_EXEC_FENCE_IN | (!!ahnd * I915_EXEC_NO_RELOC),

I915_EXEC_NO_RELOC needed? Also !! has gone out of fashion :)

> @@ -831,6 +903,8 @@ static void smoketest(int i915, const intel_ctx_cfg_t *cfg,
>	unsigned engine;
>	uint32_t scratch;
>	uint32_t *ptr;
> +	uint64_t ahnd = get_reloc_ahnd(i915, 0); /* same vm */
> +	uint64_t scratch_offset;
>
>	q_cfg = *cfg;
>	q_cfg.vm = gem_vm_create(i915);
> @@ -848,9 +922,11 @@ static void smoketest(int i915, const intel_ctx_cfg_t *cfg,
>	igt_require(nengine);
>
>	scratch = gem_create(i915, 4096);
> +	scratch_offset = get_offset(ahnd, scratch, 4096, 0);
>	igt_fork(child, ncpus) {
>		unsigned long count = 0;
>		const intel_ctx_t *ctx;
> +		ahnd = get_reloc_ahnd(i915, 0); /* ahnd to same vm */

Can't we use the parent's ahnd here, since we are using
intel_allocator_multiprocess_start/stop?

Please take a look at the nits above and if anything needs to be
done. Otherwise this is:

Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>

  reply	other threads:[~2021-08-19 21:16 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-19  4:49 [igt-dev] [PATCH i-g-t 0/3] Adopt to use allocator Zbigniew Kempczyński
2021-08-19  4:49 ` [igt-dev] [PATCH i-g-t 1/3] tests/gem_ctx_shared: " Zbigniew Kempczyński
2021-08-19 21:16   ` Dixit, Ashutosh [this message]
2021-08-20  4:46     ` Zbigniew Kempczyński
2021-08-20  5:37       ` Dixit, Ashutosh
2021-08-20  6:27         ` Zbigniew Kempczyński
2021-08-19  4:49 ` [igt-dev] [PATCH i-g-t 2/3] tests/gem_shrink: Add allocator support Zbigniew Kempczyński
2021-08-19  6:22   ` Zbigniew Kempczyński
2021-08-19  4:49 ` [igt-dev] [PATCH i-g-t 3/3] HAX: remove gttfill for tgl ci Zbigniew Kempczyński
2021-08-19  6:38 ` [igt-dev] ✓ Fi.CI.BAT: success for Adopt to use allocator (rev5) Patchwork
2021-08-19  8:12 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2021-08-19  8:35   ` Zbigniew Kempczyński
2021-08-19 16:42     ` Vudum, Lakshminarayana
2021-08-19 16:38 ` [igt-dev] ✓ Fi.CI.IGT: success " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87v941b0f6.wl-ashutosh.dixit@intel.com \
    --to=ashutosh.dixit@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=petri.latvala@intel.com \
    --cc=zbigniew.kempczynski@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox