summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>2023-10-10 12:01:07 +0100
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>2023-10-12 09:06:08 +0100
commit9e4079c622d43dee45ddac00b2d6b06d6bdb327b (patch)
tree433dca2058c3ea760ecff75752a99b2a1a65432b /tools
parent4f835f616fa55b2e2c961221724cd38e5473d7b0 (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.c8
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;