Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
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 09/93] lib: Add an intel_ctx wrapper struct and helpers (v5)
Date: Thu, 10 Jun 2021 19:10:32 -0700	[thread overview]
Message-ID: <87y2bhm9rb.wl-ashutosh.dixit@intel.com> (raw)
In-Reply-To: <CAOFGe963eZO7ObtegmqR9NjFzHwt5RJp_-ajysWi_VwUbd03xw@mail.gmail.com>

On Thu, 10 Jun 2021 09:01:59 -0700, Jason Ekstrand wrote:
>
> > > +static const intel_ctx_t __intel_ctx_0 = {};
> > > +
> > > +/**
> > > + * intel_ctx_0:
> > > + * @fd: open i915 drm file descriptor
> > > + *
> > > + * Returns an intel_ctx_t representing the default context.
> > > + */
> > > +const intel_ctx_t *intel_ctx_0(int fd)
> > > +{
> > > +     (void)fd;
> > > +     return &__intel_ctx_0;
> > > +}
> >
> > OK, so this really is just a "representation" of ctx 0 since num_engines
> > etc. are not what they are for the actual ctx 0 (even with just the legacy
> > engines).
>
> ctx0 is always in legacy mode, hence num_engines == 0.  If num_engines
> > 0 that implies a userspace-specified engine set which ctx0 does not
> have.  I feel like I've typed this explanation a couple times before
> but I'm not sure you were on those e-mails so here it goes again:
>
> With the new engine APIs, a context can have one of two different
> modes with respect to engines:
>
>  1. legacy mode.  This is the default.  In this mode, there is a fixed
> set of engines and they're specified using the I915_EXEC_RENDER,
> I915_EXEC_BLT, and friends flags.  This doesn't work well for new
> hardware with 4 media engines or 8 copy engines or whatever.
>
>  2. Userspace specified engines mode.  This is what you get if you use
> CONTEXT_PARAM_ENGINES to specify an engine set.  In this mode, the
> client specifies whatever set of engines they want as an array of
> class+instance pairs.  When they execbuf, they put an integer index
> (at most 63) in the flags field instead of I915_EXEC_BLT or whatever.
>
> So when you set CONTEXT_PARAM_ENGINES, you're not just changing the
> engine set, you're also changing how those engines are referenced in
> execbuf.  In intel_ctx_t, we make the distinction by num_engines == 0
> means legacy mode and num_engines > 0 means we're using the new
> engines API.
>
> Maybe I should add some of the above to the documentation for
> intel_ctx_cfg_t?  I'll do that.

Thanks for the explanation. Not very familiar with the API, I had
eventually figured out what was happening but only after Zbigniew pointed
me in the right direction and I understand he himself had spoken to you and
Daniel earlier. So some documentation will indeed be helpful to other
people.

Thanks.
--
Ashutosh
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  reply	other threads:[~2021-06-11  2:16 UTC|newest]

Thread overview: 131+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-09 17:35 [igt-dev] [PATCH i-g-t 00/93] Stop depending on context mutation (v4) Jason Ekstrand
2021-06-09 17:35 ` [igt-dev] [PATCH i-g-t 01/93] tests/i915: Drop gem_ctx_ringsize Jason Ekstrand
2021-06-09 17:35 ` [igt-dev] [PATCH i-g-t 02/93] tests/i915/gem_exec_balancer: Drop the ringsize subtest Jason Ekstrand
2021-06-09 17:35 ` [igt-dev] [PATCH i-g-t 03/93] tests/i915/gem_exec_endless: Stop setting the ring size Jason Ekstrand
2021-06-09 17:35 ` [igt-dev] [PATCH i-g-t 04/93] tests/i915/gem_ctx_param: Drop the zeromap subtests Jason Ekstrand
2021-06-09 17:35 ` [igt-dev] [PATCH i-g-t 05/93] tests/i915: Drop gem_ctx_clone Jason Ekstrand
2021-06-09 17:35 ` [igt-dev] [PATCH i-g-t 06/93] docs: Add gem_engine_topology.h to the docs Jason Ekstrand
2021-06-09 17:35 ` [igt-dev] [PATCH i-g-t 07/93] lib/i915/gem_engine_topology: Expose the __query_engines helper (v2) Jason Ekstrand
2021-06-09 17:35 ` [igt-dev] [PATCH i-g-t 08/93] lib/i915/gem_context: Add gem_context_create_ext helpers Jason Ekstrand
2021-06-09 17:35 ` [igt-dev] [PATCH i-g-t 09/93] lib: Add an intel_ctx wrapper struct and helpers (v5) Jason Ekstrand
2021-06-10  3:42   ` Zbigniew Kempczyński
2021-06-10  5:12   ` Dixit, Ashutosh
2021-06-10 16:01     ` Jason Ekstrand
2021-06-11  2:10       ` Dixit, Ashutosh [this message]
2021-06-09 17:35 ` [igt-dev] [PATCH i-g-t 10/93] lib/i915/gem_engine_topology: Rework query_engine_list() Jason Ekstrand
2021-06-09 17:35 ` [igt-dev] [PATCH i-g-t 11/93] lib/i915/gem_engine_topology: Factor out static engine listing Jason Ekstrand
2021-06-09 17:35 ` [igt-dev] [PATCH i-g-t 12/93] lib/i915/gem_engine_topology: Add an iterator which doesn't munge contexts (v2) Jason Ekstrand
2021-06-09 17:35 ` [igt-dev] [PATCH i-g-t 13/93] lib/i915/gem_engine_topology: Add an iterator for intel_ctx_t (v3) Jason Ekstrand
2021-06-10  4:21   ` Zbigniew Kempczyński
2021-06-09 17:35 ` [igt-dev] [PATCH i-g-t 14/93] tests/i915/gem_exec_basic: Convert to intel_ctx_t (v2) Jason Ekstrand
2021-06-09 17:35 ` [igt-dev] [PATCH i-g-t 15/93] lib/dummyload: Better document igt_spin_factory Jason Ekstrand
2021-06-09 17:35 ` [igt-dev] [PATCH i-g-t 16/93] lib/dummyload: Rename igt_spin_factory::ctx to ctx_id Jason Ekstrand
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 17/93] lib/dummyload: Support intel_ctx_t (v2) Jason Ekstrand
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 18/93] tests/i915/gem_exec_fence: Move the engine data into inter_engine_context Jason Ekstrand
2021-06-14 15:05   ` [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_fence: Move the engine data into inter_engine_context (v3) Jason Ekstrand
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 19/93] tests/i915/gem_exec_fence: Convert to intel_ctx_t Jason Ekstrand
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 20/93] tests/i915/gem_exec_schedule: " Jason Ekstrand
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 21/93] tests/i915/perf_pmu: " Jason Ekstrand
2021-06-12  1:42   ` Dixit, Ashutosh
2021-06-12  2:58     ` Dixit, Ashutosh
2021-06-14 14:50     ` Jason Ekstrand
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 22/93] tests/i915/gem_exec_nop: " Jason Ekstrand
2021-06-10  7:56   ` Zbigniew Kempczyński
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 23/93] tests/i915/gem_exec_reloc: " Jason Ekstrand
2021-06-10  8:14   ` Zbigniew Kempczyński
2021-06-10 15:08     ` Jason Ekstrand
2021-06-12  1:51   ` Dixit, Ashutosh
2021-06-14 14:54     ` Jason Ekstrand
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 24/93] tests/i915/gem_busy: " Jason Ekstrand
2021-06-10  8:27   ` Zbigniew Kempczyński
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 25/93] tests/i915/gem_ctx_isolation: " Jason Ekstrand
2021-06-10  8:50   ` Zbigniew Kempczyński
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 26/93] tests/i915/gem_exec_async: " Jason Ekstrand
2021-06-10  8:55   ` Zbigniew Kempczyński
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 27/93] tests/i915/sysfs_clients: " Jason Ekstrand
2021-06-10  9:34   ` Zbigniew Kempczyński
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 28/93] tests/i915/gem_exec_fair: " Jason Ekstrand
2021-06-10 12:10   ` Zbigniew Kempczyński
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 29/93] tests/i915/gem_spin_batch: " Jason Ekstrand
2021-06-10 12:17   ` Zbigniew Kempczyński
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 30/93] tests/i915/gem_exec_store: " Jason Ekstrand
2021-06-10 12:20   ` Zbigniew Kempczyński
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 31/93] tests/amdgpu/amd_prime: " Jason Ekstrand
2021-06-10 12:24   ` Zbigniew Kempczyński
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 32/93] tests/i915/i915_hangman: " Jason Ekstrand
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 33/93] tests/i915/gem_ringfill: " Jason Ekstrand
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 34/93] tests/prime_busy: " Jason Ekstrand
2021-06-10 12:26   ` Zbigniew Kempczyński
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 35/93] tests/prime_vgem: " Jason Ekstrand
2021-06-10 14:29   ` Zbigniew Kempczyński
2021-06-10 15:51     ` Jason Ekstrand
2021-06-11 12:40       ` Zbigniew Kempczyński
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 36/93] tests/gem_exec_whisper: " Jason Ekstrand
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 37/93] tests/i915/gem_ctx_exec: Stop cloning contexts in close_race Jason Ekstrand
2021-06-10 15:44   ` Zbigniew Kempczyński
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 38/93] tests/i915/gem_ctx_exec: Convert to intel_ctx_t Jason Ekstrand
2021-06-14 12:34   ` Zbigniew Kempczyński
2021-06-14 15:17     ` Jason Ekstrand
2021-06-14 16:52       ` Zbigniew Kempczyński
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 39/93] tests/i915/gem_exec_suspend: " Jason Ekstrand
2021-06-14 12:39   ` Zbigniew Kempczyński
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 40/93] tests/i915/gem_sync: " Jason Ekstrand
2021-06-14 17:16   ` Zbigniew Kempczyński
2021-06-14 22:41     ` Jason Ekstrand
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 41/93] tests/i915/gem_userptr_blits: " Jason Ekstrand
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 42/93] tests/i915/gem_wait: " Jason Ekstrand
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 43/93] tests/i915/gem_request_retire: " Jason Ekstrand
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 44/93] tests/i915/gem_ctx_shared: " Jason Ekstrand
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 45/93] tests/i915/gem_ctx_shared: Stop cloning contexts Jason Ekstrand
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 46/93] tests/i915/gem_create: Convert to intel_ctx_t Jason Ekstrand
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 47/93] tests/i915/gem_ctx_switch: " Jason Ekstrand
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 48/93] tests/i915/gem_exec_parallel: " Jason Ekstrand
2021-06-09 17:36 ` [igt-dev] [PATCH i-g-t 49/93] tests/i915/gem_exec_latency: " Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 50/93] tests/i915/gem_watchdog: " Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 51/93] tests/i915/gem_shrink: " Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 52/93] tests/i915/gem_exec_params: " Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 53/93] tests/i915/gem_exec_gttfill: " Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 54/93] tests/i915/gem_exec_capture: " Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 55/93] tests/i915/gem_exec_create: " Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 56/93] tests/i915/gem_exec_await: " Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 57/93] tests/i915/gem_ctx_persistence: Drop the clone subtest Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 58/93] tests/i915/gem_ctx_persistence: Drop the engine replace subtests Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 59/93] tests/i915/gem_ctx_persistence: Convert to intel_ctx_t Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 60/93] tests/i915/module_load: " Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 61/93] tests/i915/pm_rc6_residency: " Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 62/93] tests/i915/gem_cs_tlb: " Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 63/93] tests/core_hotplug: " Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 64/93] tests/i915/gem_exec_balancer: Stop cloning engines Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 65/93] tests/i915/gem_exec_balancer: Don't reset engines on a context Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 66/93] tests/i915/gem_exec_balancer: Stop munging ctx0 engines Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 67/93] tests/i915/gem_exec_balancer: Drop bonded tests Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 68/93] lib/intel_ctx: Add load balancing support (v2) Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 69/93] tests/i915/gem_exec_balancer: Convert to intel_ctx_t Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 70/93] tests/i915/gem_exec_endless: Stop munging ctx0 engines Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 71/93] lib/i915: Use for_each_physical_ring for submission tests Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 72/93] tests/i915/gem_ctx_engines: Rework execute-one* Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 73/93] tests/i915/gem_ctx_engines: Use better engine iteration Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 74/93] tests/i915/gem_ctx_engines: Drop the idempotent subtest Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 75/93] tests/i915/gem_ctx_create: Convert benchmarks to intel_ctx_t Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 76/93] tests/i915/gem_vm_create: Delete destroy racing tests Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 77/93] tests/i915/gem_vm_create: Use intel_ctx_t in the execbuf test Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 78/93] tests/i915/sysfs: Convert to intel_ctx_t Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 79/93] tests/i915/gem_workarounds: " Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 80/93] lib/i915/gem_context: Delete all the context clone/copy stuff Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 81/93] tests/i915/gem_ctx_engines: Delete the libapi subtest Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 82/93] lib/igt_dummyload: Stop supporting ALL_ENGINES without an intel_ctx_t Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 83/93] lib/i915/gem_engine_topology: Delete the old physical engine iterators Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 84/93] tests/i915/gem_mmap_gtt: Convert to intel_ctx_t Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 85/93] igt/dummyload: Require an intel_ctx_t for POLL_RUN and !ALL_ENGINES Jason Ekstrand
2021-06-10  5:15   ` Dixit, Ashutosh
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 86/93] lib/i915: Rework engine API availability checks (v2) Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 87/93] lib/intel_bb: Remove intel_bb_assign_vm and tests (v2) Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 88/93] tests/i915/gem_ctx_param: Stop setting VMs on old contexts Jason Ekstrand
2021-06-09 17:38 ` [igt-dev] [PATCH i-g-t 89/93] tests/i915/gen9_exec_parse: Convert to intel_ctx_t Jason Ekstrand
2021-06-09 17:39 ` [igt-dev] [PATCH i-g-t 90/93] tests/i915/gem_ctx_param: Add tests for recently removed params Jason Ekstrand
2021-06-09 17:39 ` [igt-dev] [PATCH i-g-t 91/93] tests/i915/gem_ctx_param: Add a couple invalid PARAM_VM cases Jason Ekstrand
2021-06-09 17:39 ` [igt-dev] [PATCH i-g-t 92/93] tests/i915/gem_ctx_engines: Fix the invalid subtest for the new rules Jason Ekstrand
2021-06-09 17:39 ` [igt-dev] [PATCH i-g-t 93/93] tests/i915/gem_exec_balancer: Add a test for combind balancing and bonding Jason Ekstrand
2021-06-09 19:03 ` [igt-dev] ✓ Fi.CI.BAT: success for Stop depending on context mutation (rev6) Patchwork
2021-06-09 20:52 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2021-06-14 15:32 ` [igt-dev] ✗ Fi.CI.BUILD: failure for Stop depending on context mutation (rev7) 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=87y2bhm9rb.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