[Intel-gfx] [PATCH i-g-t 05/12] tools/intel_gpu_top: Fix client layout on first sample period
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Fri Sep 22 13:44:30 UTC 2023
From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
When I moved the client name to be last, I did not account for the fact
current code skips showing engine utilisation until at least two sampling
periods have passed. Consequence of this is that client name gets printed
as the second field and not under the "NAME" column header.
Fix it by emitting spaces instead of engine utilisation until two samples
have been collected.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
---
tools/intel_gpu_top.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
index 76956619eaae..6363f460c892 100644
--- a/tools/intel_gpu_top.c
+++ b/tools/intel_gpu_top.c
@@ -930,12 +930,14 @@ static void free_display_clients(struct igt_drm_clients *clients)
static const char *bars[] = { " ", "▏", "▎", "▍", "▌", "▋", "▊", "▉", "█" };
-static void n_spaces(const unsigned int n)
+static unsigned int n_spaces(const unsigned int n)
{
unsigned int i;
for (i = 0; i < n; i++)
putchar(' ');
+
+ return n;
}
static void
@@ -2045,14 +2047,17 @@ print_client(struct igt_drm_client *c, struct engines *engines, double t, int li
len = printf("%*s ", clients->max_pid_len, c->pid_str);
- for (i = 0;
- c->samples > 1 && i <= iclients->classes.max_engine_id;
- i++) {
+ for (i = 0; i <= iclients->classes.max_engine_id; i++) {
double pct, max;
if (!iclients->classes.capacity[i])
continue;
+ if (c->samples < 2) {
+ len += n_spaces(*class_w);
+ continue;
+ }
+
pct = (double)c->val[i] / period_us / 1e3 * 100;
/*
--
2.39.2
More information about the Intel-gfx
mailing list