[RFC 02/10] drm: Update file owner during use
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Thu Jun 8 14:26:26 UTC 2023
On 21/04/2023 13:13, Emil Velikov wrote:
> Greetings everyone,
>
> Above all - hell yeah. Thank you Tvrtko, this has been annoying the
> hell out of me for ages.
Yay!
> On Tue, 14 Mar 2023 at 14:19, Tvrtko Ursulin
> <tvrtko.ursulin at linux.intel.com> wrote:
>>
>> From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>>
>> With the typical model where the display server opends the file descriptor
>> and then hands it over to the client we were showing stale data in
>> debugfs.
>
> s/opends/opens/
Thanks!
> But as a whole the sentence is fairly misleading. Story time:
>
> The traditional model, the server was the orchestrator managing the
> primary device node. From the fd, to the master status and
> authentication. But looking at the fd alone, this has varied across
> the years.
>
> IIRC in the DRI1 days, Xorg (libdrm really) would have a list of open
> fd(s) and reuse those whenever needed, DRI2 the client was responsible
> for open() themselves and with DRI3 the fd was passed to the client.
>
> Around the inception of DRI3 and systemd-logind, the latter became
> another possible orchestrator. Whereby Xorg and Wayland compositors
> could ask it for the fd. For various reasons (hysterical and genuine
> ones) Xorg has a fallback path going the open(), whereas Wayland
> compositors are moving to solely relying on logind... some never had
> fallback even.
>
> Over the past few years, more projects have emerged which provide
> functionality similar (be that on API level, Dbus, or otherwise) to
> systemd-logind.
>
>
> Apart from that, the commit is spot on. I like the use of rcu and the
> was_master handling is correct. With some message polish this commit
> is:
> Reviewed-by: Emil Velikov <emil.l.velikov at gmail.com>
Are you okay if I just paste your very fine explanation verbatim, with
credits?
> I also had a brief look at 01/10, although I cannot find many
> references for the pid <> tguid mappings. Be that on the kernel side
> or userspace - do you have any links that I can educate myself?
TGID or thread group leader. For single threaded userspace TGID equals
to PID, while for multi-threaded first thread TGID equals PID/TID, while
additional threads PID/TID does not equal TGID. Clear, as mud? :) My
POSIX book is misplaced somewhere having not consulted it years... :)
Regards,
Tvrtko
More information about the dri-devel
mailing list