Re: [Intel-gfx] [PATCH i-g-t] intel_gpu_top: Hide unused clients

2021-02-01 Thread Tvrtko Ursulin



On 01/02/2021 08:53, Chris Wilson wrote:

Hide inactive clients by pressing 'i' (toggle in interactive mode).

Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
---
  tools/intel_gpu_top.c | 7 +++
  1 file changed, 7 insertions(+)

diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
index 60ff62d28..edf0dedac 100644
--- a/tools/intel_gpu_top.c
+++ b/tools/intel_gpu_top.c
@@ -1595,6 +1595,7 @@ print_imc(struct engines *engines, double t, int lines, 
int con_w, int con_h)
  }
  
  static bool class_view;

+static bool filter_idle;
  
  static int

  print_engines_header(struct engines *engines, double t,
@@ -1689,6 +1690,9 @@ print_engines_footer(struct engines *engines, double t,
pops->close_struct();
  
  	if (output_mode == INTERACTIVE) {

+   if (filter_idle && !c->total_runtime)
+   return;
+
if (lines++ < con_h)
printf("\n");
}
@@ -2115,6 +2119,9 @@ static void process_stdin(unsigned int timeout_us)
case 'q':
stop_top = true;
break;
+   case 'i':
+   filter_idle ^= true;
+   break;
case '1':
class_view ^= true;
break;



Reviewed-by: Tvrtko Ursulin 

Regards,

Tvrtko
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH i-g-t] intel_gpu_top: Hide unused clients

2021-02-01 Thread Chris Wilson
Hide inactive clients by pressing 'i' (toggle in interactive mode).

Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
---
 tools/intel_gpu_top.c | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
index 60ff62d28..edf0dedac 100644
--- a/tools/intel_gpu_top.c
+++ b/tools/intel_gpu_top.c
@@ -1595,6 +1595,7 @@ print_imc(struct engines *engines, double t, int lines, 
int con_w, int con_h)
 }
 
 static bool class_view;
+static bool filter_idle;
 
 static int
 print_engines_header(struct engines *engines, double t,
@@ -1689,6 +1690,9 @@ print_engines_footer(struct engines *engines, double t,
pops->close_struct();
 
if (output_mode == INTERACTIVE) {
+   if (filter_idle && !c->total_runtime)
+   return;
+
if (lines++ < con_h)
printf("\n");
}
@@ -2115,6 +2119,9 @@ static void process_stdin(unsigned int timeout_us)
case 'q':
stop_top = true;
break;
+   case 'i':
+   filter_idle ^= true;
+   break;
case '1':
class_view ^= true;
break;
-- 
2.30.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH i-g-t] intel_gpu_top: Hide unused clients

2021-02-01 Thread Chris Wilson
Quoting Tvrtko Ursulin (2021-02-01 08:36:04)
> 
> On 01/02/2021 08:21, Chris Wilson wrote:
> > Quoting Tvrtko Ursulin (2021-02-01 08:14:45)
> >>
> >> On 31/01/2021 03:11, Chris Wilson wrote:
> >>> Keep new clients hidden until they utilise the GPU.
> >>>
> >>> Signed-off-by: Chris Wilson 
> >>> Cc: Tvrtko Ursulin 
> >>> ---
> >>>tools/intel_gpu_top.c | 5 -
> >>>1 file changed, 4 insertions(+), 1 deletion(-)
> >>>
> >>> diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
> >>> index 60ff62d28..66a8effa6 100644
> >>> --- a/tools/intel_gpu_top.c
> >>> +++ b/tools/intel_gpu_top.c
> >>> @@ -828,8 +828,11 @@ static void update_client(struct client *c, unsigned 
> >>> int pid, char *name)
> >>>c->last[i] = val[i];
> >>>}
> >>>
> >>> - c->samples++;
> >>> + if (!c->total_runtime)
> >>> + return;
> >>> +
> >>>c->status = ALIVE;
> >>> + c->samples++;
> >>>}
> >>>
> >>>static void
> >>>
> >>
> >> Not sure we need to do it at this level and not instead at presentation
> >> time.
> > 
> > My goal was just presentation :(
> 
> Something like this would be presentation time:
> 
> diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
> index 60ff62d28e5d..f7c5cc3bf19f 100644
> --- a/tools/intel_gpu_top.c
> +++ b/tools/intel_gpu_top.c
> @@ -1942,6 +1942,9 @@ print_client(struct client *c, struct engines 
> *engines, double t, int lines,
>  unsigned int i;
> 
>  if (output_mode == INTERACTIVE) {
> +   if (!c->total_runtime) /* make a key toggle? */
> +   return;
> +
>  lines++;
> 
>  printf("%6u %17s ", c->pid, c->print_name);
> 
> But it worries me a bit to do it by default.

I was about to argue then remembered top behaves the same (although a
process cannot exist without consuming at least some CPU resources,
whereas a client can never touch the GPU or allocate GPU memory).

But if we are borrow ideas for filtering the view from top... :)

For top, it's 'i' and there's o%CPU>x

> >> Plus, in default sort mode they would be at the end of the list,
> >> so behind the more active clients. Or you go into sort by id and they
> >> annoy you there?
> > 
> > No. I had a bunch of "Xorg" when launching steam which never became
> > anything. So I guess just a bunch of dlopen("libgl") spawing a bunch of
> > clients that we never used for anything more than gl[X]GetString, but
> > leaked the fd.
> 
> But they were at the end, so potentially even cut of if enough 
> interesting clients? Or you actually sorted by id? Or something else is 
> broken?

But they were there! Unwanted DRI3 fd, abandoned, left homeless before
being used. Even if they are used, there's still a window where we would
see "Xorg" become "realname" (granted there's still a window as we
sample pidname before totalruntime), it irks me.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH i-g-t] intel_gpu_top: Hide unused clients

2021-02-01 Thread Tvrtko Ursulin



On 01/02/2021 08:21, Chris Wilson wrote:

Quoting Tvrtko Ursulin (2021-02-01 08:14:45)


On 31/01/2021 03:11, Chris Wilson wrote:

Keep new clients hidden until they utilise the GPU.

Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
---
   tools/intel_gpu_top.c | 5 -
   1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
index 60ff62d28..66a8effa6 100644
--- a/tools/intel_gpu_top.c
+++ b/tools/intel_gpu_top.c
@@ -828,8 +828,11 @@ static void update_client(struct client *c, unsigned int 
pid, char *name)
   c->last[i] = val[i];
   }
   
- c->samples++;

+ if (!c->total_runtime)
+ return;
+
   c->status = ALIVE;
+ c->samples++;
   }
   
   static void




Not sure we need to do it at this level and not instead at presentation
time.


My goal was just presentation :(


Something like this would be presentation time:

diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
index 60ff62d28e5d..f7c5cc3bf19f 100644
--- a/tools/intel_gpu_top.c
+++ b/tools/intel_gpu_top.c
@@ -1942,6 +1942,9 @@ print_client(struct client *c, struct engines 
*engines, double t, int lines,

unsigned int i;

if (output_mode == INTERACTIVE) {
+   if (!c->total_runtime) /* make a key toggle? */
+   return;
+
lines++;

printf("%6u %17s ", c->pid, c->print_name);

But it worries me a bit to do it by default.




Plus, in default sort mode they would be at the end of the list,
so behind the more active clients. Or you go into sort by id and they
annoy you there?


No. I had a bunch of "Xorg" when launching steam which never became
anything. So I guess just a bunch of dlopen("libgl") spawing a bunch of
clients that we never used for anything more than gl[X]GetString, but
leaked the fd.


But they were at the end, so potentially even cut of if enough 
interesting clients? Or you actually sorted by id? Or something else is 
broken?




[Why does steam need 10% of the gpu to update an icon on the toolbar
which is hidden while minimised? Why do games sit in static menus at
100% gpu? Why?]


Yep, I have this issue with animated KDE tray icons. :I

Regards,

Tvrtko
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH i-g-t] intel_gpu_top: Hide unused clients

2021-02-01 Thread Chris Wilson
Quoting Tvrtko Ursulin (2021-02-01 08:14:45)
> 
> On 31/01/2021 03:11, Chris Wilson wrote:
> > Keep new clients hidden until they utilise the GPU.
> > 
> > Signed-off-by: Chris Wilson 
> > Cc: Tvrtko Ursulin 
> > ---
> >   tools/intel_gpu_top.c | 5 -
> >   1 file changed, 4 insertions(+), 1 deletion(-)
> > 
> > diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
> > index 60ff62d28..66a8effa6 100644
> > --- a/tools/intel_gpu_top.c
> > +++ b/tools/intel_gpu_top.c
> > @@ -828,8 +828,11 @@ static void update_client(struct client *c, unsigned 
> > int pid, char *name)
> >   c->last[i] = val[i];
> >   }
> >   
> > - c->samples++;
> > + if (!c->total_runtime)
> > + return;
> > +
> >   c->status = ALIVE;
> > + c->samples++;
> >   }
> >   
> >   static void
> > 
> 
> Not sure we need to do it at this level and not instead at presentation 
> time.

My goal was just presentation :(

> Plus, in default sort mode they would be at the end of the list, 
> so behind the more active clients. Or you go into sort by id and they 
> annoy you there?

No. I had a bunch of "Xorg" when launching steam which never became
anything. So I guess just a bunch of dlopen("libgl") spawing a bunch of
clients that we never used for anything more than gl[X]GetString, but
leaked the fd.

[Why does steam need 10% of the gpu to update an icon on the toolbar
which is hidden while minimised? Why do games sit in static menus at
100% gpu? Why?]
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH i-g-t] intel_gpu_top: Hide unused clients

2021-02-01 Thread Tvrtko Ursulin



On 31/01/2021 03:11, Chris Wilson wrote:

Keep new clients hidden until they utilise the GPU.

Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
---
  tools/intel_gpu_top.c | 5 -
  1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
index 60ff62d28..66a8effa6 100644
--- a/tools/intel_gpu_top.c
+++ b/tools/intel_gpu_top.c
@@ -828,8 +828,11 @@ static void update_client(struct client *c, unsigned int 
pid, char *name)
c->last[i] = val[i];
}
  
-	c->samples++;

+   if (!c->total_runtime)
+   return;
+
c->status = ALIVE;
+   c->samples++;
  }
  
  static void




Not sure we need to do it at this level and not instead at presentation 
time. Plus, in default sort mode they would be at the end of the list, 
so behind the more active clients. Or you go into sort by id and they 
annoy you there?


Regards,

Tvrtko
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH i-g-t] intel_gpu_top: Hide unused clients

2021-01-30 Thread Chris Wilson
Keep new clients hidden until they utilise the GPU.

Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
---
 tools/intel_gpu_top.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
index 60ff62d28..66a8effa6 100644
--- a/tools/intel_gpu_top.c
+++ b/tools/intel_gpu_top.c
@@ -828,8 +828,11 @@ static void update_client(struct client *c, unsigned int 
pid, char *name)
c->last[i] = val[i];
}
 
-   c->samples++;
+   if (!c->total_runtime)
+   return;
+
c->status = ALIVE;
+   c->samples++;
 }
 
 static void
-- 
2.30.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx