[igt-dev] [PATCH i-g-t 2/4] tools/intel_gpu_top: Fix client layout on first sample period
Kamil Konieczny
kamil.konieczny at linux.intel.com
Tue Oct 10 16:31:59 UTC 2023
Hi Tvrtko,
On 2023-10-10 at 12:07:12 +0100, Tvrtko Ursulin wrote:
> 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>
Reviewed-by: Kamil Konieczny <kamil.konieczny at linux.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 60fe06917531..c5abd0c92155 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 unsigned int n_spaces(const unsigned int n)
> {
> unsigned 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;
>
> /*
> --
> 2.39.2
>
More information about the igt-dev
mailing list