[PATCH i-g-t v2 00/21] gputop: Add support for xe

Lucas De Marchi lucas.demarchi at intel.com
Tue Apr 23 23:44:10 UTC 2024


v2 of https://lore.kernel.org/all/20240405060056.59379-1-lucas.demarchi@intel.com/

This contains all the patches I had pending for igt to add support in
gputop for the xe driver.

Not all of the patches are critical, some are more on the category
"drive by improvements/fixes". Let me split them for ease of review:

Patches 1-6: already reviewed in previous version, but needed to
refactor them a little bit to detangle them from other patches. I kept
the previous R-b for those.

Patches 7-10: these were already in the previous version as well, but in
a more noisy approach. This new version tries not to change multiple
times the same part of the code.

Tvrtko, worth noting that patches 7-10 still contain the strstartwith()
rather than find_kv(). I did try adding find_kv() back but due to that
function not inlining the strlen() was being computed again and again. I
decided to keep as is so could move to the more important part. Maybe we
can try something else on top.

Patches 11-16 implement the new interface from the kernel. Difference
from v1 is that it's now using the drm-cycles + drm-total-cycles
suggested in the kernel side review. The state tracking is a little bit
heavier due to having to handle 2 keys, possibly appearing in different
order and at the same time decide what strategy to use (drm-engine vs
drm-cycles). However with the additional renames I think this is much
cleaner than v1.

Patches 17-21 are gputop improvements to the visualization and
performance: last patch with lazy stat is back from an older series, now
with proper performance measurements.

Lucas De Marchi (21):
  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
  gputop: Extract method to update console size
  gputop: Extract clrscr()
  lib/igt_drm_fdinfo: Extract ignore_space()
  lib/igt_drm_fdinfo: Allow any number of spaces before unit
  lib/igt_drm_fdinfo: Stop passing key twice
  lib/igt_drm_fdinfo: Remove prefix arg from parse functions
  lib/igt_drm_fdinfo: Parse drm-cycles
  lib/igt_drm_fdinfo: Parse drm-total-cycles
  lib/igt_drm_clients: Rename engine busyness variables
  lib/igt_drm_clients: Move engine fields to substruct
  lib/igt_drm_clients: Record total cycles
  gputop: Add support to drm-cycles/drm-total-cycles
  gputop: print percentage number
  gputop: Add option parsing
  gputop: Allow to limit number of executions
  gputop: Allow to set delay interval
  lib/igt_drm_clients: lazy stat process

 lib/igt_core.h        |   1 +
 lib/igt_drm_clients.c | 106 ++++++++++++++++----------
 lib/igt_drm_clients.h |   9 ++-
 lib/igt_drm_fdinfo.c  | 172 ++++++++++++++++++++++++------------------
 lib/igt_drm_fdinfo.h  |  12 +++
 tools/gputop.c        | 142 +++++++++++++++++++++++++++++-----
 tools/intel_gpu_top.c |  15 ++--
 7 files changed, 315 insertions(+), 142 deletions(-)

-- 
2.43.0



More information about the igt-dev mailing list