Re: [Intel-gfx] [PATCH i-g-t 2/2] intel_gpu_top: Move client name last

2023-05-24 Thread Tvrtko Ursulin



On 23/05/2023 11:51, Kamil Konieczny wrote:

On 2023-05-15 at 14:36:30 +0100, Tvrtko Ursulin wrote:

From: Tvrtko Ursulin 

Move client name to be the right most field which visually aligns better
with top(1) and prepares for inserting memory usage fields somewhere in
the middle.

Signed-off-by: Tvrtko Ursulin 
Cc: Rob Clark 


Acked-by: Kamil Konieczny 


Thanks Kamil, I've pushed this now having seen Rob will need to rebase 
his series anyway.


Regards,

Tvrtko




---
  tools/intel_gpu_top.c | 19 +--
  1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
index 453090c298bc..937280a7151a 100644
--- a/tools/intel_gpu_top.c
+++ b/tools/intel_gpu_top.c
@@ -1809,9 +1809,7 @@ print_clients_header(struct igt_drm_clients *clients, int 
lines,
return lines;
  
  		printf("\033[7m");

-   len = printf("%*s %*s ",
-clients->max_pid_len, "PID",
-clients->max_name_len, "NAME");
+   len = printf("%*s ", clients->max_pid_len, "PID");
  
  		if (lines++ >= con_h || len >= con_w)

return lines;
@@ -1825,7 +1823,9 @@ print_clients_header(struct igt_drm_clients *clients, int 
lines,
num_active++;
}
  
-			*class_w = width = (con_w - len) / num_active;

+   *class_w = width =
+   (con_w - len - clients->max_name_len - 1) /
+   num_active;
  
  			for (i = 0; i <= iclients->classes.max_engine_id; i++) {

const char *name = iclients->classes.names[i];
@@ -1846,8 +1846,7 @@ print_clients_header(struct igt_drm_clients *clients, int 
lines,
}
}
  
-		n_spaces(con_w - len);

-   printf("\033[0m\n");
+   printf(" %-*s\033[0m\n", con_w - len - 1, "NAME");
} else {
if (iclients->classes.num_engines)
pops->open_struct("clients");
@@ -1866,6 +1865,7 @@ print_client(struct igt_drm_client *c, struct engines 
*engines, double t, int li
struct igt_drm_clients *clients = c->clients;
struct intel_clients *iclients = clients->private_data;
unsigned int i;
+   int len;
  
  	if (output_mode == INTERACTIVE) {

if (filter_idle && (!c->total_runtime || c->samples < 2))
@@ -1873,9 +1873,7 @@ print_client(struct igt_drm_client *c, struct engines 
*engines, double t, int li
  
  		lines++;
  
-		printf("%*s %*s ",

-  clients->max_pid_len, c->pid_str,
-  clients->max_name_len, c->print_name);
+   len = printf("%*s ", clients->max_pid_len, c->pid_str);
  
  		for (i = 0;

 c->samples > 1 && i <= iclients->classes.max_engine_id;
@@ -1898,9 +1896,10 @@ print_client(struct igt_drm_client *c, struct engines 
*engines, double t, int li
  
  			print_percentage_bar(pct, max, *class_w,

 numeric_clients);
+   len += *class_w;
}
  
-		putchar('\n');

+   printf(" %-*s\n", con_w - len - 1, c->print_name);
} else if (output_mode == JSON) {
char buf[64];
  
--

2.37.2



Re: [Intel-gfx] [PATCH i-g-t 2/2] intel_gpu_top: Move client name last

2023-05-23 Thread Kamil Konieczny
On 2023-05-15 at 14:36:30 +0100, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin 
> 
> Move client name to be the right most field which visually aligns better
> with top(1) and prepares for inserting memory usage fields somewhere in
> the middle.
> 
> Signed-off-by: Tvrtko Ursulin 
> Cc: Rob Clark 

Acked-by: Kamil Konieczny 

> ---
>  tools/intel_gpu_top.c | 19 +--
>  1 file changed, 9 insertions(+), 10 deletions(-)
> 
> diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
> index 453090c298bc..937280a7151a 100644
> --- a/tools/intel_gpu_top.c
> +++ b/tools/intel_gpu_top.c
> @@ -1809,9 +1809,7 @@ print_clients_header(struct igt_drm_clients *clients, 
> int lines,
>   return lines;
>  
>   printf("\033[7m");
> - len = printf("%*s %*s ",
> -  clients->max_pid_len, "PID",
> -  clients->max_name_len, "NAME");
> + len = printf("%*s ", clients->max_pid_len, "PID");
>  
>   if (lines++ >= con_h || len >= con_w)
>   return lines;
> @@ -1825,7 +1823,9 @@ print_clients_header(struct igt_drm_clients *clients, 
> int lines,
>   num_active++;
>   }
>  
> - *class_w = width = (con_w - len) / num_active;
> + *class_w = width =
> + (con_w - len - clients->max_name_len - 1) /
> + num_active;
>  
>   for (i = 0; i <= iclients->classes.max_engine_id; i++) {
>   const char *name = iclients->classes.names[i];
> @@ -1846,8 +1846,7 @@ print_clients_header(struct igt_drm_clients *clients, 
> int lines,
>   }
>   }
>  
> - n_spaces(con_w - len);
> - printf("\033[0m\n");
> + printf(" %-*s\033[0m\n", con_w - len - 1, "NAME");
>   } else {
>   if (iclients->classes.num_engines)
>   pops->open_struct("clients");
> @@ -1866,6 +1865,7 @@ print_client(struct igt_drm_client *c, struct engines 
> *engines, double t, int li
>   struct igt_drm_clients *clients = c->clients;
>   struct intel_clients *iclients = clients->private_data;
>   unsigned int i;
> + int len;
>  
>   if (output_mode == INTERACTIVE) {
>   if (filter_idle && (!c->total_runtime || c->samples < 2))
> @@ -1873,9 +1873,7 @@ print_client(struct igt_drm_client *c, struct engines 
> *engines, double t, int li
>  
>   lines++;
>  
> - printf("%*s %*s ",
> -clients->max_pid_len, c->pid_str,
> -clients->max_name_len, c->print_name);
> + len = printf("%*s ", clients->max_pid_len, c->pid_str);
>  
>   for (i = 0;
>c->samples > 1 && i <= iclients->classes.max_engine_id;
> @@ -1898,9 +1896,10 @@ print_client(struct igt_drm_client *c, struct engines 
> *engines, double t, int li
>  
>   print_percentage_bar(pct, max, *class_w,
>numeric_clients);
> + len += *class_w;
>   }
>  
> - putchar('\n');
> + printf(" %-*s\n", con_w - len - 1, c->print_name);
>   } else if (output_mode == JSON) {
>   char buf[64];
>  
> -- 
> 2.37.2
> 


[Intel-gfx] [PATCH i-g-t 2/2] intel_gpu_top: Move client name last

2023-05-15 Thread Tvrtko Ursulin
From: Tvrtko Ursulin 

Move client name to be the right most field which visually aligns better
with top(1) and prepares for inserting memory usage fields somewhere in
the middle.

Signed-off-by: Tvrtko Ursulin 
Cc: Rob Clark 
---
 tools/intel_gpu_top.c | 19 +--
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
index 453090c298bc..937280a7151a 100644
--- a/tools/intel_gpu_top.c
+++ b/tools/intel_gpu_top.c
@@ -1809,9 +1809,7 @@ print_clients_header(struct igt_drm_clients *clients, int 
lines,
return lines;
 
printf("\033[7m");
-   len = printf("%*s %*s ",
-clients->max_pid_len, "PID",
-clients->max_name_len, "NAME");
+   len = printf("%*s ", clients->max_pid_len, "PID");
 
if (lines++ >= con_h || len >= con_w)
return lines;
@@ -1825,7 +1823,9 @@ print_clients_header(struct igt_drm_clients *clients, int 
lines,
num_active++;
}
 
-   *class_w = width = (con_w - len) / num_active;
+   *class_w = width =
+   (con_w - len - clients->max_name_len - 1) /
+   num_active;
 
for (i = 0; i <= iclients->classes.max_engine_id; i++) {
const char *name = iclients->classes.names[i];
@@ -1846,8 +1846,7 @@ print_clients_header(struct igt_drm_clients *clients, int 
lines,
}
}
 
-   n_spaces(con_w - len);
-   printf("\033[0m\n");
+   printf(" %-*s\033[0m\n", con_w - len - 1, "NAME");
} else {
if (iclients->classes.num_engines)
pops->open_struct("clients");
@@ -1866,6 +1865,7 @@ print_client(struct igt_drm_client *c, struct engines 
*engines, double t, int li
struct igt_drm_clients *clients = c->clients;
struct intel_clients *iclients = clients->private_data;
unsigned int i;
+   int len;
 
if (output_mode == INTERACTIVE) {
if (filter_idle && (!c->total_runtime || c->samples < 2))
@@ -1873,9 +1873,7 @@ print_client(struct igt_drm_client *c, struct engines 
*engines, double t, int li
 
lines++;
 
-   printf("%*s %*s ",
-  clients->max_pid_len, c->pid_str,
-  clients->max_name_len, c->print_name);
+   len = printf("%*s ", clients->max_pid_len, c->pid_str);
 
for (i = 0;
 c->samples > 1 && i <= iclients->classes.max_engine_id;
@@ -1898,9 +1896,10 @@ print_client(struct igt_drm_client *c, struct engines 
*engines, double t, int li
 
print_percentage_bar(pct, max, *class_w,
 numeric_clients);
+   len += *class_w;
}
 
-   putchar('\n');
+   printf(" %-*s\n", con_w - len - 1, c->print_name);
} else if (output_mode == JSON) {
char buf[64];
 
-- 
2.37.2