Hi Tvrtko, On 2023-10-11 at 09:38:44 +0100, Tvrtko Ursulin wrote: > From: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> > > Padding the percentage bars and table columns with spaces happens quite a > lot so lets do better than putchar at a time. Have a table of visually > empty strings and build the required length out of those chunks. > > While at it, also move the percentage bar table into its function scope. > > v2: > * Fix checkpatch and use ARRAY_SIZE. (Kamil) > > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> > Cc: Kamil Konieczny <kamil.konieczny@xxxxxxxxxxxxxxx> Reviewed-by: Kamil Konieczny <kamil.konieczny@xxxxxxxxxxxxxxx> > --- > tools/intel_gpu_top.c | 38 +++++++++++++++++++++++++++++++++----- > 1 file changed, 33 insertions(+), 5 deletions(-) > > diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c > index b6d1014f00b8..006879c4ae67 100644 > --- a/tools/intel_gpu_top.c > +++ b/tools/intel_gpu_top.c > @@ -926,14 +926,39 @@ static void free_display_clients(struct igt_drm_clients *clients) > free(clients); > } > > -static const char *bars[] = { " ", "▏", "▎", "▍", "▌", "▋", "▊", "▉", "█" }; > - > static int n_spaces(const int n) > { > - int i; > + static const char *spaces[] = { > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + }; > + int i, r = n; > > - for (i = 0; i < n; i++) > - putchar(' '); > + while (r) { > + if (r > ARRAY_SIZE(spaces)) > + i = ARRAY_SIZE(spaces) - 1; > + else > + i = r - 1; > + fputs(spaces[i], stdout); > + r -= i + 1; > + } > > return n; > } > @@ -941,6 +966,9 @@ static int n_spaces(const int n) > static void > print_percentage_bar(double percent, double max, int max_len, bool numeric) > { > + static const char *bars[] = { > + " ", "▏", "▎", "▍", "▌", "▋", "▊", "▉", "█" > + }; > int bar_len, i, len = max_len - 2; > const int w = 8; > > -- > 2.39.2 >