Re: [Intel-gfx] [PATCH i-g-t] intel_gpu_top: Hide unused clients
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
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
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
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
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
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
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