From: "Dixit, Ashutosh" <ashutosh.dixit@intel.com>
To: Jason Ekstrand <jason@jlekstrand.net>
Cc: IGT GPU Tools <igt-dev@lists.freedesktop.org>
Subject: Re: [igt-dev] [PATCH i-g-t 43/79] tests/i915/gem_ctx_persistence: Convert to intel_ctx_t
Date: Wed, 23 Jun 2021 18:56:27 -0700 [thread overview]
Message-ID: <87o8bwja9g.wl-ashutosh.dixit@intel.com> (raw)
In-Reply-To: CAOFGe95Vt4ZPxkOGbappEPvmc_+H62+2T9ya9yCNwDpK5wjuWw@mail.gmail.com
Some time ago, Dixit, Ashutosh wrote:
>
> On Tue, 22 Jun 2021 22:38:04 -0700, Jason Ekstrand wrote:
> >
> > On Mon, Jun 21, 2021 at 8:52 PM Dixit, Ashutosh
> > <ashutosh.dixit@intel.com> wrote:
> > >
> > > On Thu, 17 Jun 2021 12:12:50 -0700, Jason Ekstrand wrote:
> > > >
> > > > Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
> > >
> > > A couple of questions below just in case, otherwise this is:
> > >
> > > Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
> >
> > Thanks! I'll wait to apply that until you're satisfied with the
> > answers below.
I have a question below but please go ahead and apply.
> >
> > > > diff --git a/lib/intel_ctx.h b/lib/intel_ctx.h
> > > > index 054fecc4a..e34cefc14 100644
> > > > --- a/lib/intel_ctx.h
> > > > +++ b/lib/intel_ctx.h
> > > > @@ -16,6 +16,7 @@
> > > > * intel_ctx_cfg_t:
> > > > * @flags: Context create flags
> > > > * @vm: VM to inherit or 0 for using a per-context VM
> > > > + * @nopersist: set I915_CONTEXT_PARAM_PERSISTENCE to 0
> > > > * @num_engines: Number of client-specified engines or 0 for legacy mode
> > > > * @engines: Client-specified engines
> > > > *
> > > > @@ -42,6 +43,7 @@
> > > > typedef struct intel_ctx_cfg {
> > > > uint32_t flags;
> > > > uint32_t vm;
> > > > + bool nopersist;
> > >
> > > To avoid the negative, wondering if we could have had a 'persist' field
> > > here rather than 'nopersist'? For regular contexts 'persist' seems
> > > fine. When this field is introduced we would default it to true but call
> > > the context setparam ioctl only if 'persist' were false.
> >
> > We don't have a good way to "default" things, at least not yet. We
> > could have a #define INTEL_CTX_CFG_DEFAULT or something like that if
> > we wanted to have non-zero values be defaults, I suppose. Then we
> > could default persist=true.
> >
> > > I do understand that contexts are persistent by default so 'nopersist' is
> > > really where something extra needs to be done. Is this why 'nopersist' was
> > > chosen here?
> >
> > Roughly, yes...
'nopersist' is fine for now, we can revisit if needed later.
> >
> > > Also, how are legacy contexts handled (since they really don't have a cfg)?
> > > Are they always persistent (or can they ever be non-persistent)? That would
> > > be another reason for having 'nopersist' I guess.
> >
> > I've tried to make it so that a legacy context (regular old
> > gem_context_create(fd) or intel_ctx_create(fd, NULL)) is equivalent to
> > using a zero-initialized context. Legacy contexts are persistent by
> > default.
The question I had was can a legacy context ever be non-persistent? Is the
'nopersist' field valid for a legacy context and can it have a 'true' value?
> >
> > > > @@ -460,14 +467,16 @@ static void test_noheartbeat_many(int i915, int count, unsigned int flags)
> > > > igt_assert(set_heartbeat(i915, e->full_name, 500));
> > > >
> > > > for (int n = 0; n < ARRAY_SIZE(spin); n++) {
> > > > - uint32_t ctx;
> > > > + const intel_ctx_t *ctx;
> > > > +
> > > > + ctx = intel_ctx_create(i915, NULL);
> > > >
> > > > - ctx = gem_context_create(i915);
> > > > - spin[n] = igt_spin_new(i915, ctx, .engine = eb_ring(e),
> > > > + spin[n] = igt_spin_new(i915, .ctx = ctx,
> > > > + .engine = eb_ring(e),
> > > > .flags = (IGT_SPIN_FENCE_OUT |
> > > > IGT_SPIN_POLL_RUN |
> > > > flags));
> > > > - gem_context_destroy(i915, ctx);
> > > > + intel_ctx_destroy(i915, ctx);
> > >
> > > Any particular reason why we are creating legacy intel_ctx_t here (and also
> > > in test_noheartbeat_close())? There are other places in this file where we
> > > have not changed previous gem contexts created with gem_context_create() so
> > > just wondering.
> >
> > Most likely for IGT_SPIN_POLL_RUN.
Got it, thanks!
> >
> > --Jason
> >
> > > > @@ -772,13 +783,10 @@ static void test_process_mixed(int pfd, unsigned int engine)
> > > >
> > > > for (int persists = 0; persists <= 1; persists++) {
> > > > igt_spin_t *spin;
> > > > - uint32_t ctx;
> > > > -
> > > > - ctx = gem_context_create(i915);
> > > > - gem_context_copy_engines(pfd, 0, i915, ctx);
> > > > - gem_context_set_persistence(i915, ctx, persists);
> > > > + const intel_ctx_t *ctx;
> > > >
> > > > - spin = igt_spin_new(i915, ctx,
> > > > + ctx = ctx_create_persistence(i915, cfg, persists);
> > > > + spin = igt_spin_new(i915, .ctx = ctx,
> > > > .engine = engine,
> > > > .flags = IGT_SPIN_FENCE_OUT);
> > >
> > > No intel_ctx_destroy() here, but neither gem_context_destroy() so that
> > > seems to be the design...
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
next prev parent reply other threads:[~2021-06-24 1:56 UTC|newest]
Thread overview: 141+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-17 19:12 [igt-dev] [PATCH i-g-t 00/79] Stop depending on context mutation (v4) Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 01/79] lib/i915/gem_submission_measure: Take an optional intel_ctx_cfg_t Jason Ekstrand
2021-06-18 3:42 ` Dixit, Ashutosh
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 02/79] tests/i915/gem_exec_fence: Move the engine data into inter_engine_context (v3) Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 03/79] tests/i915/gem_exec_fence: Convert to intel_ctx_t (v2) Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 04/79] tests/i915/gem_exec_schedule: " Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 05/79] tests/i915/perf_pmu: Convert to intel_ctx_t (v3) Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 06/79] tests/i915/gem_exec_nop: Convert to intel_ctx_t Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 07/79] tests/i915/gem_exec_reloc: Convert to intel_ctx_t (v3) Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 08/79] tests/i915/gem_busy: " Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 09/79] tests/i915/gem_ctx_isolation: Convert to intel_ctx_t (v2) Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 10/79] tests/i915/gem_exec_async: " Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 11/79] tests/i915/sysfs_clients: Convert to intel_ctx_t Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 12/79] tests/i915/gem_exec_fair: " Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 13/79] tests/i915/gem_spin_batch: Convert to intel_ctx_t (v2) Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 14/79] tests/i915/gem_exec_store: " Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 15/79] tests/amdgpu/amd_prime: Convert to intel_ctx_t Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 16/79] tests/i915/i915_hangman: Convert to intel_ctx_t (v2) Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 17/79] tests/i915/gem_ringfill: Convert to intel_ctx_t Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 18/79] tests/prime_busy: " Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 19/79] tests/prime_vgem: Convert to intel_ctx_t (v2) Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 20/79] tests/gem_exec_whisper: " Jason Ekstrand
2021-06-17 20:48 ` Dixit, Ashutosh
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 21/79] tests/i915/gem_ctx_exec: Stop cloning contexts in close_race Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 22/79] tests/i915/gem_ctx_exec: Convert to intel_ctx_t Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 23/79] tests/i915/gem_exec_suspend: Convert to intel_ctx_t (v2) Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 24/79] tests/i915/gem_sync: " Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 25/79] tests/i915/gem_userptr_blits: Convert to intel_ctx_t Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 26/79] tests/i915/gem_wait: Convert to intel_ctx_t (v2) Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 27/79] tests/i915/gem_request_retire: Convert to intel_ctx_t Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 28/79] tests/i915/gem_ctx_shared: Convert to intel_ctx_t (v2) Jason Ekstrand
2021-06-17 22:06 ` Dixit, Ashutosh
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 29/79] tests/i915/gem_ctx_shared: Stop cloning contexts Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 30/79] tests/i915/gem_create: Convert to intel_ctx_t Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 31/79] tests/i915/gem_ctx_switch: " Jason Ekstrand
2021-06-18 4:55 ` Dixit, Ashutosh
2021-06-18 16:35 ` Jason Ekstrand
2021-06-18 16:47 ` [igt-dev] [PATCH i-g-t] " Jason Ekstrand
2021-06-18 19:19 ` Dixit, Ashutosh
2021-06-21 3:48 ` Jason Ekstrand
2021-06-21 5:28 ` Dixit, Ashutosh
2021-06-23 5:31 ` Jason Ekstrand
2021-06-24 2:34 ` Dixit, Ashutosh
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 32/79] tests/i915/gem_exec_parallel: Convert to intel_ctx_t (v2) Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 33/79] tests/i915/gem_exec_latency: Convert to intel_ctx_t (v3) Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 34/79] tests/i915/gem_watchdog: Convert to intel_ctx_t (v2) Jason Ekstrand
2021-06-18 7:17 ` Dixit, Ashutosh
2021-06-18 16:22 ` Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 35/79] tests/i915/gem_shrink: Convert to intel_ctx_t (v4) Jason Ekstrand
2021-06-18 6:04 ` Zbigniew Kempczyński
2021-06-18 16:08 ` Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 36/79] tests/i915/gem_exec_params: Convert to intel_ctx_t Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 37/79] tests/i915/gem_exec_gttfill: Convert to intel_ctx_t (v2) Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 38/79] tests/i915/gem_exec_capture: " Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 39/79] tests/i915/gem_exec_create: Convert to intel_ctx_t Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 40/79] tests/i915/gem_exec_await: Convert to intel_ctx_t (v2) Jason Ekstrand
2021-06-22 0:14 ` Dixit, Ashutosh
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 41/79] tests/i915/gem_ctx_persistence: Drop the clone subtest Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 42/79] tests/i915/gem_ctx_persistence: Drop the engine replace subtests Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 43/79] tests/i915/gem_ctx_persistence: Convert to intel_ctx_t Jason Ekstrand
2021-06-22 1:51 ` Dixit, Ashutosh
2021-06-23 5:38 ` Jason Ekstrand
2021-06-24 1:56 ` Dixit, Ashutosh [this message]
2021-06-30 17:49 ` Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 44/79] tests/i915/module_load: " Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 45/79] tests/i915/pm_rc6_residency: " Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 46/79] tests/i915/gem_cs_tlb: " Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 47/79] tests/core_hotplug: " Jason Ekstrand
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 48/79] tests/i915/gem_exec_balancer: Stop cloning engines Jason Ekstrand
2021-06-25 22:26 ` Dixit, Ashutosh
2021-06-17 19:12 ` [igt-dev] [PATCH i-g-t 49/79] tests/i915/gem_exec_balancer: Don't reset engines on a context Jason Ekstrand
2021-06-29 3:53 ` Dixit, Ashutosh
2021-07-06 5:23 ` Dixit, Ashutosh
2021-07-07 14:24 ` Jason Ekstrand
2021-06-17 19:14 ` [igt-dev] [PATCH i-g-t 50/79] tests/i915/gem_exec_balancer: Stop munging ctx0 engines Jason Ekstrand
2021-06-25 23:11 ` Dixit, Ashutosh
2021-06-17 19:14 ` [igt-dev] [PATCH i-g-t 51/79] tests/i915/gem_exec_balancer: Drop bonded tests Jason Ekstrand
2021-06-25 21:25 ` Dixit, Ashutosh
2021-06-17 19:14 ` [igt-dev] [PATCH i-g-t 52/79] lib/intel_ctx: Add load balancing support (v2) Jason Ekstrand
2021-06-17 19:14 ` [igt-dev] [PATCH i-g-t 53/79] tests/i915/gem_exec_balancer: Convert to intel_ctx_t Jason Ekstrand
2021-06-28 21:23 ` Dixit, Ashutosh
2021-06-17 19:14 ` [igt-dev] [PATCH i-g-t 54/79] tests/i915/gem_exec_endless: Stop munging ctx0 engines Jason Ekstrand
2021-06-17 19:14 ` [igt-dev] [PATCH i-g-t 55/79] lib/i915/submission: Rework gem_test_all_engines to use intel_ctx_t Jason Ekstrand
2021-06-18 1:16 ` Dixit, Ashutosh
2021-06-18 16:03 ` Jason Ekstrand
2021-06-17 19:14 ` [igt-dev] [PATCH i-g-t 56/79] lib/i915: Require a context config in gem_submission_measure Jason Ekstrand
2021-06-18 3:44 ` Dixit, Ashutosh
2021-06-17 19:14 ` [igt-dev] [PATCH i-g-t 57/79] tests/i915/gem_ctx_engines: Rework execute-one* Jason Ekstrand
2021-06-23 1:14 ` Dixit, Ashutosh
2021-06-17 19:14 ` [igt-dev] [PATCH i-g-t 58/79] tests/i915/gem_ctx_engines: Use better engine iteration Jason Ekstrand
2021-06-22 21:47 ` Dixit, Ashutosh
2021-06-17 19:14 ` [igt-dev] [PATCH i-g-t 59/79] tests/i915/gem_ctx_engines: Drop the idempotent subtest Jason Ekstrand
2021-06-22 19:35 ` Dixit, Ashutosh
2021-06-17 19:14 ` [igt-dev] [PATCH i-g-t 60/79] tests/i915/gem_ctx_create: Convert benchmarks to intel_ctx_t Jason Ekstrand
2021-06-22 3:30 ` Dixit, Ashutosh
2021-06-23 6:09 ` Jason Ekstrand
2021-06-24 2:07 ` Dixit, Ashutosh
2021-07-07 13:51 ` Jason Ekstrand
2021-07-08 6:23 ` Zbigniew Kempczyński
2021-06-17 19:14 ` [igt-dev] [PATCH i-g-t 61/79] tests/i915/gem_vm_create: Delete destroy racing tests Jason Ekstrand
2021-06-22 2:07 ` Dixit, Ashutosh
2021-06-17 19:14 ` [igt-dev] [PATCH i-g-t 62/79] tests/i915/gem_vm_create: Use intel_ctx_t in the execbuf test Jason Ekstrand
2021-06-22 2:17 ` Dixit, Ashutosh
2021-06-23 5:43 ` Jason Ekstrand
2021-06-17 19:15 ` [igt-dev] [PATCH i-g-t 63/79] tests/i915/sysfs: Convert to intel_ctx_t Jason Ekstrand
2021-06-17 19:15 ` [igt-dev] [PATCH i-g-t 64/79] tests/i915/gem_workarounds: " Jason Ekstrand
2021-06-17 19:15 ` [igt-dev] [PATCH i-g-t 65/79] lib/i915/gem_context: Delete all the context clone/copy stuff Jason Ekstrand
2021-06-28 20:16 ` Dixit, Ashutosh
2021-06-30 18:00 ` Jason Ekstrand
2021-06-17 19:15 ` [igt-dev] [PATCH i-g-t 66/79] tests/i915/gem_ctx_engines: Delete the libapi subtest Jason Ekstrand
2021-06-22 2:24 ` Dixit, Ashutosh
2021-06-17 19:15 ` [igt-dev] [PATCH i-g-t 67/79] lib/igt_dummyload: Stop supporting ALL_ENGINES without an intel_ctx_t Jason Ekstrand
2021-06-17 19:15 ` [igt-dev] [PATCH i-g-t 68/79] lib/i915/gem_engine_topology: Delete the old physical engine iterators Jason Ekstrand
2021-06-17 19:15 ` [igt-dev] [PATCH i-g-t 69/79] tests/i915/gem_mmap_gtt: Convert to intel_ctx_t Jason Ekstrand
2021-06-22 2:33 ` Dixit, Ashutosh
2021-06-17 19:15 ` [igt-dev] [PATCH i-g-t 70/79] igt/dummyload: Require an intel_ctx_t for POLL_RUN and !ALL_ENGINES Jason Ekstrand
2021-06-17 19:15 ` [igt-dev] [PATCH i-g-t 71/79] lib/i915: Rework engine API availability checks (v2) Jason Ekstrand
2021-06-28 19:56 ` Dixit, Ashutosh
2021-06-30 17:57 ` Jason Ekstrand
2021-06-30 21:31 ` Dixit, Ashutosh
2021-07-07 14:27 ` Jason Ekstrand
2021-06-17 19:15 ` [igt-dev] [PATCH i-g-t 72/79] lib/intel_bb: Remove intel_bb_assign_vm and tests (v2) Jason Ekstrand
2021-06-17 19:15 ` [igt-dev] [PATCH i-g-t 73/79] tests/i915/gem_ctx_param: Stop setting VMs on old contexts Jason Ekstrand
2021-06-23 3:02 ` Dixit, Ashutosh
2021-06-17 19:15 ` [igt-dev] [PATCH i-g-t 74/79] tests/i915/gen9_exec_parse: Convert to intel_ctx_t Jason Ekstrand
2021-06-22 2:56 ` Dixit, Ashutosh
2021-06-17 19:15 ` [igt-dev] [PATCH i-g-t 75/79] tests/i915/gem_ctx_param: Add tests for recently removed params Jason Ekstrand
2021-06-23 3:18 ` Dixit, Ashutosh
2021-06-17 19:15 ` [igt-dev] [PATCH i-g-t 76/79] tests/i915/gem_ctx_param: Add a couple invalid PARAM_VM cases Jason Ekstrand
2021-06-23 3:10 ` Dixit, Ashutosh
2021-06-17 19:15 ` [igt-dev] [PATCH i-g-t 77/79] tests/i915/gem_ctx_engines: Fix the invalid subtest for the new rules Jason Ekstrand
2021-06-23 0:04 ` Dixit, Ashutosh
2021-06-17 19:15 ` [igt-dev] [PATCH i-g-t 78/79] tests/i915/gem_exec_balancer: Fix invalid-balancer for the set-once rule Jason Ekstrand
2021-06-26 0:48 ` Dixit, Ashutosh
2021-06-30 17:43 ` Jason Ekstrand
2021-06-17 19:15 ` [igt-dev] [PATCH i-g-t 79/79] tests/i915/gem_exec_balancer: Add a test for combind balancing and bonding (v2) Jason Ekstrand
2021-06-26 1:52 ` Dixit, Ashutosh
2021-06-17 20:01 ` [igt-dev] ✓ Fi.CI.BAT: success for Stop depending on context mutation (rev12) Patchwork
2021-06-17 21:06 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2021-06-18 18:45 ` [igt-dev] ✓ Fi.CI.BAT: success for Stop depending on context mutation (rev13) Patchwork
2021-06-18 21:31 ` [igt-dev] ✗ Fi.CI.IGT: failure " 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=87o8bwja9g.wl-ashutosh.dixit@intel.com \
--to=ashutosh.dixit@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=jason@jlekstrand.net \
/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