[Intel-gfx] [PATCH 0/7] Per client engine busyness
Christian König
christian.koenig at amd.com
Fri May 14 15:10:29 UTC 2021
Am 14.05.21 um 17:03 schrieb Tvrtko Ursulin:
>
> On 14/05/2021 15:56, Christian König wrote:
>> Am 14.05.21 um 16:47 schrieb Tvrtko Ursulin:
>>>
>>> On 14/05/2021 14:53, Christian König wrote:
>>>>>
>>>>> David also said that you considered sysfs but were wary of
>>>>> exposing process info in there. To clarify, my patch is not
>>>>> exposing sysfs entry per process, but one per open drm fd.
>>>>>
>>>>
>>>> Yes, we discussed this as well, but then rejected the approach.
>>>>
>>>> To have useful information related to the open drm fd you need to
>>>> related that to process(es) which have that file descriptor open.
>>>> Just tracking who opened it first like DRM does is pretty useless
>>>> on modern systems.
>>>
>>> We do update the pid/name for fds passed over unix sockets.
>>
>> Well I just double checked and that is not correct.
>>
>> Could be that i915 has some special code for that, but on my laptop I
>> only see the X server under the "clients" debugfs file.
>
> Yes we have special code in i915 for this. Part of this series we are
> discussing here.
Ah, yeah you should mention that. Could we please separate that into
common code instead? Cause I really see that as a bug in the current
handling independent of the discussion here.
As far as I know all IOCTLs go though some common place in DRM anyway.
>>>> But an "lsof /dev/dri/renderD128" for example does exactly what top
>>>> does as well, it iterates over /proc and sees which process has
>>>> that file open.
>>>
>>> Lsof is quite inefficient for this use case. It has to open _all_
>>> open files for _all_ processes on the system to find a handful of
>>> ones which may have the DRM device open.
>>
>> Completely agree.
>>
>> The key point is you either need to have all references to an open
>> fd, or at least track whoever last used that fd.
>>
>> At least the last time I looked even the fs layer didn't know which
>> fd is open by which process. So there wasn't really any alternative
>> to the lsof approach.
>
> I asked you about the use case you have in mind which you did not
> answer. Otherwise I don't understand when do you need to walk all
> files. What information you want to get?
Per fd debugging information, e.g. instead of the top use case you know
which process you want to look at.
>
> For the use case of knowing which DRM file is using how much GPU time
> on engine X we do not need to walk all open files either with my sysfs
> approach or the proc approach from Chris. (In the former case we
> optionally aggregate by PID at presentation time, and in the latter
> case aggregation is implicit.)
I'm unsure if we should go with the sysfs, proc or some completely
different approach.
In general it would be nice to have a way to find all the fd references
for an open inode.
Regards,
Christian.
>
> Regards,
>
> Tvrtko
More information about the Intel-gfx
mailing list