summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>2023-09-22 10:53:11 +0100
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>2023-10-12 09:06:08 +0100
commita8ae1bd4859ff9503928b0ee2d2bfea194187d7e (patch)
treebc4826a4a1b7c138570e8443586663ba149f5081 /tools
parentd5ba26bd5df9f9b4e386b823fd7296ce33fedb56 (diff)
tools/intel_gpu_top: Fix client layout on first sample period
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. v2: * Fix n_spaces return type to signed. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/intel_gpu_top.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
index 60fe06917..b6d1014f0 100644
--- a/tools/intel_gpu_top.c
+++ b/tools/intel_gpu_top.c
@@ -928,12 +928,14 @@ static void free_display_clients(struct igt_drm_clients *clients)
static const char *bars[] = { " ", "▏", "▎", "▍", "▌", "▋", "▊", "▉", "█" };
-static void n_spaces(const unsigned int n)
+static int n_spaces(const int n)
{
- unsigned int i;
+ int i;
for (i = 0; i < n; i++)
putchar(' ');
+
+ return n;
}
static void
@@ -2043,14 +2045,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;
/*