diff options
author | Tvrtko Ursulin <tvrtko.ursulin@intel.com> | 2023-10-10 12:01:07 +0100 |
---|---|---|
committer | Tvrtko Ursulin <tvrtko.ursulin@intel.com> | 2023-10-12 09:06:08 +0100 |
commit | 9e4079c622d43dee45ddac00b2d6b06d6bdb327b (patch) | |
tree | 433dca2058c3ea760ecff75752a99b2a1a65432b /tools | |
parent | 4f835f616fa55b2e2c961221724cd38e5473d7b0 (diff) |
tools/intel_gpu_top: Handle narrow terminals more gracefully
Instead of asserting just skip trying to print columns when terminal is
too narrow.
At the same time fix some type confusion to fix calculations going huge.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Closes: https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/143
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/intel_gpu_top.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c index 006879c4a..00506c63d 100644 --- a/tools/intel_gpu_top.c +++ b/tools/intel_gpu_top.c @@ -972,7 +972,8 @@ print_percentage_bar(double percent, double max, int max_len, bool numeric) int bar_len, i, len = max_len - 2; const int w = 8; - assert(max_len > 0); + if (len < 2) /* For edge lines '|' */ + return; bar_len = ceil(w * percent * len / max); if (bar_len > w * len) @@ -986,6 +987,8 @@ print_percentage_bar(double percent, double max, int max_len, bool numeric) printf("%s", bars[i]); len -= (bar_len + (w - 1)) / w; + if (len < 1) + return; n_spaces(len); putchar('|'); @@ -2001,8 +2004,7 @@ print_clients_header(struct igt_drm_clients *clients, int lines, 4 : clients->max_name_len; /* At least "NAME" */ if (output_mode == INTERACTIVE) { - unsigned int num_active = 0; - int len; + int len, num_active = 0; if (lines++ >= con_h) return lines; |