From: Lucas De Marchi <lucas.demarchi@intel.com>
To: igt-dev@lists.freedesktop.org
Cc: Tvrtko Ursulin <tursulin@ursulin.net>,
Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>,
Lucas De Marchi <lucas.demarchi@intel.com>
Subject: [PATCH i-g-t 00/12] gputop: Add support for xe
Date: Fri, 5 Apr 2024 01:00:44 -0500 [thread overview]
Message-ID: <20240405060056.59379-1-lucas.demarchi@intel.com> (raw)
This contains all the patches I had pending for igt to add support for
gputop for the xe driver. This was added on top of
https://patchwork.freedesktop.org/series/131956/ (Refactors and fixes
for drm_clients). 2 patches from that series are posted again here
with one of those pending review.
I decided to remove the patch "lib/igt_drm_clients: lazy stat process"
to focus on adding the xe support rather than optimizing.
Patches 3-6 are more minor fixes and refactors to prepare for the new
feature.
Patches 7-9 add support for a new "ticks" unit to the libraries when
parsing the fdinfo
Patches 10-11 are minor refactors to gputop
Last patch plumbs the changes together to implement the new way to
calculate the percentage. This is considered an RFC only as I still have
to send the kernel side. It's a good opportunity to see how
we plan to use it, give feedback about the new unit and the
motivation behind it.
WARNING: the only thing tested here is that I didn't break the old
format: gputop with i915 continues to work for me after these changes.
For the kernel side I have to get some patches prepared by Umesh, add a
few more from me and give some proper rounds of testing.
One thing I noticed is that if we were to just add the new format to
fdinfo, we'd break gputop. That is because gputop was not parsing the
complete line and didn't check the unit. I checked 2 other
implementations I found for gputop-like sw and they didn't have this
problem:
- nvtop: https://github.com/Syllo/nvtop/blob/master/src/extract_gpuinfo_intel.c
- htop: https://github.com/htop-dev/htop/blob/main/linux/GPU.c
So I think we may be safe to add the new unit as used here and not break
anything other than our own toy (but fixed in this series).
Lucas De Marchi (12):
lib/igt_drm_fdinfo: Stop passing key twice
lib/igt_drm_fdinfo: Remove prefix arg from parse functions
lib/igt_drm_fdinfo: Fix wrong name len assert
lib/igt_drm_fdinfo: Assert pdev is not truncated
lib/igt_drm_fdinfo: Detect invalid drm-client-id
lib/igt_drm_fdinfo: Stop ignoring space where not needed
lib/igt_drm_fdinfo: Parse unit for engine utilization
lib/igt_drm_fdinfo: Store 2 counters for "ticks" unit
lib/igt_drm_clients: Store second data for ticks busyness
gputop: Extract method to update console size
gputop: Extract clrscr()
RFC: gputop: Add support for ticks unit
lib/igt_drm_clients.c | 24 ++++--
lib/igt_drm_clients.h | 3 +
lib/igt_drm_fdinfo.c | 185 +++++++++++++++++++++++-------------------
lib/igt_drm_fdinfo.h | 7 ++
tools/gputop.c | 44 ++++++----
5 files changed, 162 insertions(+), 101 deletions(-)
--
2.44.0
next reply other threads:[~2024-04-05 6:01 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-05 6:00 Lucas De Marchi [this message]
2024-04-05 6:00 ` [PATCH i-g-t 01/12] lib/igt_drm_fdinfo: Stop passing key twice Lucas De Marchi
2024-04-18 22:14 ` Umesh Nerlige Ramappa
2024-04-19 7:42 ` Tvrtko Ursulin
2024-04-19 16:35 ` Lucas De Marchi
2024-04-19 18:34 ` Tvrtko Ursulin
2024-04-05 6:00 ` [PATCH i-g-t 02/12] lib/igt_drm_fdinfo: Remove prefix arg from parse functions Lucas De Marchi
2024-04-05 6:00 ` [PATCH i-g-t 03/12] lib/igt_drm_fdinfo: Fix wrong name len assert Lucas De Marchi
2024-04-18 22:25 ` Umesh Nerlige Ramappa
2024-04-19 7:48 ` Tvrtko Ursulin
2024-04-19 7:49 ` Tvrtko Ursulin
2024-04-05 6:00 ` [PATCH i-g-t 04/12] lib/igt_drm_fdinfo: Assert pdev is not truncated Lucas De Marchi
2024-04-18 22:27 ` Umesh Nerlige Ramappa
2024-04-05 6:00 ` [PATCH i-g-t 05/12] lib/igt_drm_fdinfo: Detect invalid drm-client-id Lucas De Marchi
2024-04-18 22:31 ` Umesh Nerlige Ramappa
2024-04-05 6:00 ` [PATCH i-g-t 06/12] lib/igt_drm_fdinfo: Stop ignoring space where not needed Lucas De Marchi
2024-04-18 22:34 ` Umesh Nerlige Ramappa
2024-04-05 6:00 ` [PATCH i-g-t 07/12] lib/igt_drm_fdinfo: Parse unit for engine utilization Lucas De Marchi
2024-04-18 22:48 ` Umesh Nerlige Ramappa
2024-04-19 7:58 ` Tvrtko Ursulin
2024-04-19 16:21 ` Lucas De Marchi
2024-04-19 18:32 ` Tvrtko Ursulin
2024-04-05 6:00 ` [PATCH i-g-t 08/12] lib/igt_drm_fdinfo: Store 2 counters for "ticks" unit Lucas De Marchi
2024-04-05 6:00 ` [PATCH i-g-t 09/12] lib/igt_drm_clients: Store second data for ticks busyness Lucas De Marchi
2024-04-05 6:00 ` [PATCH i-g-t 10/12] gputop: Extract method to update console size Lucas De Marchi
2024-04-18 22:51 ` Umesh Nerlige Ramappa
2024-04-05 6:00 ` [PATCH i-g-t 11/12] gputop: Extract clrscr() Lucas De Marchi
2024-04-18 22:52 ` Umesh Nerlige Ramappa
2024-04-05 6:00 ` [PATCH i-g-t 12/12] RFC: gputop: Add support for ticks unit Lucas De Marchi
2024-04-05 8:04 ` ✗ GitLab.Pipeline: warning for gputop: Add support for xe Patchwork
2024-04-05 8:17 ` ✓ CI.xeBAT: success " Patchwork
2024-04-05 8:27 ` ✓ Fi.CI.BAT: " Patchwork
2024-04-05 16:22 ` ✗ Fi.CI.IGT: failure " 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=20240405060056.59379-1-lucas.demarchi@intel.com \
--to=lucas.demarchi@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=tursulin@ursulin.net \
--cc=umesh.nerlige.ramappa@intel.com \
/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