Hi, please rebase and resend, also please change commit subject to start with lib: or lib/[name of lib changed]: rest od commit description For example, in 3/8 instead of libdrmclients: Record client drm minor write: lib/igt_drm_clients: Record client drm minor If there are more lib changes, use "lib: " alone, for example in your 2/8 patch, libdrmfdinfo: Allow specifying custom engine map write: lib: Allow specifying custom engine map +Cc Petri and Zbyszek Regards, Kamil On 2022-11-11 at 15:58:36 +0000, Tvrtko Ursulin wrote: > From: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> > > This is a pile of patches which implements a rudimentary vendor agnostic gputop > tool based of the new DRM spec as documented in > Documentation/gpu/drm-usage-stats.rst. > > First part of the series is code refactoring which should be reasonably stable. > I've tested it all while working on it both against intel_gpu_top and gputop. > > Last patch is the actual tool itself. It works but it is rather rudimentary > which is hopefully good enough for a start. > > Fundamental difference between intel_gpu_top and gputop is that the former is > centered around a single card and only shows processes belonging to it. Gputop > on the other hand has an idea to show all processes with DRM file descriptors > open and sort them into groups per card. It also makes no effort to provide > sorting modes, well any interactivity, or any pretty names for GPUs or engines. > > It looks like this: > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > DRM minor 0 > PID NAME render copy video > 3816 kwin_x11 |███▎ || || || | > 3523 Xorg |▊ || || || | > 1120449 mpv | || ||▋ || | > 1120529 glxgears |▋ || || || | > 1120449 mpv |▍ || || || | > 3860 plasmashell |▏ || || || | > 4764 krunner | || || || | > 575206 chrome | || || || | > 833481 firefox | || || || | > 892924 thunderbird | || || || | > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > I did test it as well with two cards and confirmed that too works. > > Rob Clark also tested it with a patch which exports the respective data from the > msm driver and confirmed it works fine. Christian König tested it with in > progress patches for amdgpu and that worked as well. > > v2: > * Fixed SPDX headers and added a bunch of code comments/docs throughout. > > Tvrtko Ursulin (8): > lib: Extract igt_drm_clients from intel_gpu_top > libdrmfdinfo: Allow specifying custom engine map > libdrmclients: Record client drm minor > libdrmclient: Support multiple DRM cards > libdrmfdinfo: Track largest engine index > libdrmclient/intel_gpu_top: Decouple hardcoded engine assumptions > libdrmclient: Enforce client status sort order in the library > gputop: Basic vendor agnostic GPU top tool > > lib/igt_drm_clients.c | 503 +++++++++++++++++++++++++++++ > lib/igt_drm_clients.h | 87 ++++++ > lib/igt_drm_fdinfo.c | 50 ++- > lib/igt_drm_fdinfo.h | 16 +- > lib/meson.build | 8 + > tests/i915/drm_fdinfo.c | 19 +- > tools/gputop.c | 260 +++++++++++++++ > tools/intel_gpu_top.c | 677 +++++++++++----------------------------- > tools/meson.build | 7 +- > 9 files changed, 1113 insertions(+), 514 deletions(-) > create mode 100644 lib/igt_drm_clients.c > create mode 100644 lib/igt_drm_clients.h > create mode 100644 tools/gputop.c > > -- > 2.34.1 >