From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: Jason Ekstrand <jason@jlekstrand.net>
Cc: intel-gfx <intel-gfx@lists.freedesktop.org>,
dri-devel <dri-devel@lists.freedesktop.org>
Subject: Re: [Intel-gfx] [PATCH 3/4] drm/i915: Drop the CONTEXT_CLONE API
Date: Tue, 23 Mar 2021 09:46:01 +0000 [thread overview]
Message-ID: <4ff16fca-a4b2-cae9-e052-091d55c31b22@linux.intel.com> (raw)
In-Reply-To: <CAOFGe96uUHfktEqx6WLxOd_=msO=nKSDYj2eUKNhyruzz=EJag@mail.gmail.com>
On 22/03/2021 16:24, Jason Ekstrand wrote:
> Ugh... timezones.
>
> On Mon, Mar 22, 2021 at 10:31 AM Tvrtko Ursulin
> <tvrtko.ursulin@linux.intel.com> wrote:
>>
>>
>> On 22/03/2021 14:57, Daniel Vetter wrote:
>>> On Mon, Mar 22, 2021 at 3:33 PM Tvrtko Ursulin
>>> <tvrtko.ursulin@linux.intel.com> wrote:
>>>>
>>>>
>>>> On 22/03/2021 14:09, Daniel Vetter wrote:
>>>>> On Mon, Mar 22, 2021 at 11:22:01AM +0000, Tvrtko Ursulin wrote:
>>>>>>
>>>>>> On 19/03/2021 22:38, Jason Ekstrand wrote:
>>>>>>> This API allows one context to grab bits out of another context upon
>>>>>>> creation. It can be used as a short-cut for setparam(getparam()) for
>>>>>>> things like I915_CONTEXT_PARAM_VM. However, it's never been used by any
>>>>>>> real userspace. It's used by a few IGT tests and that's it. Since it
>>>>>>> doesn't add any real value (most of the stuff you can CLONE you can copy
>>>>>>> in other ways), drop it.
>>>>>>
>>>>>> No complaints to remove if it ended up unused outside IGT. Latter is a _big_
>>>>>> problem though, since it is much more that a few IGT tests. So I really
>>>>>> think there really needs to be an evaluation and a plan for that (we don't
>>>>>> want to lose 50% of the coverage over night).
>
> You should look at my IGT patch set. I'm not deleting any tests
> except those that explicitly test the clone API. All the other tests
> which use cloning to save a few lines when constructing new contexts
> are updated to not require the cloning API.
I dare not mention the other IGT tree. There will be a plan needed since
I fear much more usage will be found there.
[snip]
>>>> Timelines of execution were always exposed. Any "engine" (ring
>>>> previously) in I915_EXEC_RING_MASK was a single timeline of execution.
>>>> It is completely the same with engine map engines, which are also
>>>> different indices into I915_EXEC_RING_MASK space.
>>>>
>>>> Userspace was aware of these timelines forever as well. Media was
>>>> creating multiple contexts to have multiple timelines (so parallelism).
>>>> Everyone knew that engine-hopping submissions needs to be either
>>>> implicitly or explicitly synchronised, etc.
>>>
>>> Yup, I think we're saying the same thing here.
>>>
>>>> So I really don't see that we have leaked timelines as a concept *now*.
>>>> What the patch has exposed to userspace is a new way to sync between
>>>> timelines and nothing more.
>>>
>>> We've leaked it as something you can now share across hw context.
>>
>> Okay so we agree on most things but apparently have different
>> definitions of what it means to leak internal implementation details.
>
> I said it was a "leak" because, from my git archeology, the best I
> could find for justification of doing it this way was that we already
> have a timeline object so why not expose it. Same for the
> SINGLE_TIMELINE flag. Is a "timeline" really an internal concept?
> No, not really. It's pretty standard. But intel_timeline is an
> internal thing and, while this doesn't give userspace an actual handle
> to it, it gives it more visibility than needed, IMO.
Cloning of timelines absolutely - I don't see a point for that. But I
think there was no intent there. Rather it was just a consequence of
striving for symmetry in the uapi.
But for the single timeline flag itself (so next patch in this series
and it's commit message), when looked at within a single GEM context, I
still really can't see the argument that it is leaking anything to
userspace. Certainly not intel_timeline, which is also not even backend
specific.
We seem to all agree timeline is just context:seqno, which was exposed
to userpsace forever. For instance if the flag wasn't called "single
timeline" but "implicit sync", "serial context", "ordered engines",
whatever, would you still argue it is leaking struct intel_timeline out
to userspace?
Regards,
Tvrtko
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2021-03-23 9:46 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-19 22:38 [Intel-gfx] [PATCH 0/4] drm/i915: uAPI clean-ups part 2 Jason Ekstrand
2021-03-19 22:38 ` [Intel-gfx] [PATCH 1/4] drm/i915: Drop I915_CONTEXT_PARAM_RINGSIZE Jason Ekstrand
2021-03-20 14:48 ` Jason Ekstrand
2021-03-22 10:52 ` Matthew Auld
2021-03-22 16:00 ` Jason Ekstrand
2021-03-22 12:01 ` Jani Nikula
2021-03-22 16:01 ` Jason Ekstrand
2021-03-22 16:26 ` Daniel Vetter
2021-03-19 22:38 ` [Intel-gfx] [PATCH 2/4] drm/i915: Drop I915_CONTEXT_PARAM_NO_ZEROMAP Jason Ekstrand
2021-03-22 13:00 ` [Intel-gfx] [drm/i915] 014c1518e8: assertion_failure kernel test robot
2021-03-19 22:38 ` [Intel-gfx] [PATCH 3/4] drm/i915: Drop the CONTEXT_CLONE API Jason Ekstrand
2021-03-22 11:22 ` Tvrtko Ursulin
2021-03-22 14:09 ` Daniel Vetter
2021-03-22 14:32 ` Tvrtko Ursulin
2021-03-22 14:57 ` Daniel Vetter
2021-03-22 15:31 ` Tvrtko Ursulin
2021-03-22 16:24 ` Jason Ekstrand
2021-03-23 9:46 ` Tvrtko Ursulin [this message]
2021-03-22 16:43 ` Daniel Vetter
2021-03-23 9:14 ` Tvrtko Ursulin
2021-03-23 13:23 ` Daniel Vetter
2021-03-23 16:23 ` Tvrtko Ursulin
2021-03-23 17:50 ` Jason Ekstrand
2021-03-19 22:38 ` [Intel-gfx] [PATCH 4/4] drm/i915: Implement SINGLE_TIMELINE with a syncobj Jason Ekstrand
2021-03-22 12:28 ` Tvrtko Ursulin
2021-03-22 16:10 ` Jason Ekstrand
2021-03-23 9:35 ` Tvrtko Ursulin
2021-03-23 17:44 ` Jason Ekstrand
2021-03-22 16:59 ` Daniel Vetter
2021-03-22 19:12 ` Jason Ekstrand
2021-03-23 17:51 ` [Intel-gfx] [PATCH] drm/i915: Implement SINGLE_TIMELINE with a syncobj (v2) Jason Ekstrand
2021-03-24 9:28 ` Tvrtko Ursulin
2021-03-24 9:52 ` Daniel Vetter
2021-03-24 11:36 ` Tvrtko Ursulin
2021-03-24 17:18 ` Jason Ekstrand
2021-03-25 9:48 ` Tvrtko Ursulin
2021-03-25 9:54 ` Daniel Vetter
2021-03-24 9:46 ` Daniel Vetter
2021-03-25 21:13 ` Matthew Brost
2021-03-25 22:19 ` Jason Ekstrand
2021-03-25 22:21 ` [Intel-gfx] [PATCH 4/4] drm/i915: Implement SINGLE_TIMELINE with a syncobj (v3) Jason Ekstrand
2021-03-19 23:14 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: uAPI clean-ups part 2 Patchwork
2021-03-22 11:55 ` Jani Nikula
2021-03-22 16:11 ` Jason Ekstrand
2021-03-23 21:32 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: uAPI clean-ups part 2 (rev2) Patchwork
2021-03-26 3:01 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: uAPI clean-ups part 2 (rev3) 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=4ff16fca-a4b2-cae9-e052-091d55c31b22@linux.intel.com \
--to=tvrtko.ursulin@linux.intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@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