[igt-dev] [PATCH i-g-t v3 0/8] Vendor agnostic gputop
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Tue Jan 31 11:32:29 UTC 2023
From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
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.
v3:
* Rebased and some patch titles renamed as requested. (Kamil)
Tvrtko Ursulin (8):
lib: Extract igt_drm_clients from intel_gpu_top
lib: Allow specifying custom engine map
lib/igt_drm_clients: Record client drm minor
lib/igt_drm_clients: Support multiple DRM cards
lib/igt_drm_fdinfo: Track largest engine index
lib/igt_drm_clients: Decouple hardcoded engine assumptions
lib/igt_drm_clients: 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
More information about the igt-dev
mailing list