Hi Tvrtko,
On 2023-10-12 at 09:15:45 +0100, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <[email protected]>
> 
> Wrap all operations on clients via the Intel specific wrappers in order to
> simplify upcoming work.
> 
> Signed-off-by: Tvrtko Ursulin <[email protected]>

Reviewed-by: Kamil Konieczny <[email protected]>

> ---
>  tools/intel_gpu_top.c | 42 ++++++++++++++++++++++--------------------
>  1 file changed, 22 insertions(+), 20 deletions(-)
> 
> diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
> index 091fe28068dc..b2e81d5f9ffb 100644
> --- a/tools/intel_gpu_top.c
> +++ b/tools/intel_gpu_top.c
> @@ -132,6 +132,7 @@ struct engines {
>  struct intel_clients {
>       const char *pci_slot;
>       struct igt_drm_client_engines classes;
> +     struct igt_drm_clients *clients;
>  };
>  
>  static struct termios termios_orig;
> @@ -2436,19 +2437,22 @@ intel_init_clients(struct intel_clients *iclients,
>               iclients->classes.capacity[i] = engines->class[i].num_engines;
>               iclients->classes.names[i] = strdup(engines->class[i].name);
>       }
> +
> +     iclients->clients = igt_drm_clients_init(iclients);
>  }
>  
>  static void intel_free_clients(struct intel_clients *iclients)
>  {
> +     if (iclients->clients)
> +             igt_drm_clients_free(iclients->clients);
> +
>       free((void *)iclients->pci_slot);
>       free(iclients->classes.capacity);
>       free(iclients->classes.names);
>  }
>  
> -int main(int argc, char **argv)
> +static void intel_scan_clients(struct intel_clients *iclients)
>  {
> -     unsigned int period_us = DEFAULT_PERIOD_MS * 1000;
> -     struct igt_drm_clients *clients = NULL;
>       static const char *engine_map[] = {
>               "render",
>               "copy",
> @@ -2456,6 +2460,15 @@ int main(int argc, char **argv)
>               "video-enhance",
>               "compute",
>       };
> +
> +     igt_drm_clients_scan(iclients->clients, client_match,
> +                          engine_map, ARRAY_SIZE(engine_map),
> +                          NULL, 0);
> +}
> +
> +int main(int argc, char **argv)
> +{
> +     unsigned int period_us = DEFAULT_PERIOD_MS * 1000;
>       bool physical_engines = false;
>       struct intel_clients iclients;
>       int con_w = -1, con_h = -1;
> @@ -2613,15 +2626,11 @@ int main(int argc, char **argv)
>  
>       init_engine_classes(engines);
>  
> -     if (has_drm_fdinfo(&card)) {
> +     if (has_drm_fdinfo(&card))
>               intel_init_clients(&iclients, &card, engines);
> -             clients = igt_drm_clients_init(&iclients);
> -     }
>  
>       pmu_sample(engines);
> -     igt_drm_clients_scan(clients, client_match,
> -                          engine_map, ARRAY_SIZE(engine_map),
> -                          NULL, 0);
> +     intel_scan_clients(&iclients);
>       gettime(&ts);
>  
>       if (output_mode == JSON)
> @@ -2652,12 +2661,8 @@ int main(int argc, char **argv)
>               pmu_sample(engines);
>               t = (double)(engines->ts.cur - engines->ts.prev) / 1e9;
>  
> -             disp_clients =
> -                     display_clients(igt_drm_clients_scan(clients,
> -                                                          client_match,
> -                                                          engine_map,
> -                                                          
> ARRAY_SIZE(engine_map),
> -                                                          NULL, 0));
> +             intel_scan_clients(&iclients);
> +             disp_clients = display_clients(iclients.clients);
>               scan_us = elapsed_us(&ts, period_us);
>  
>               if (stop_top)
> @@ -2708,7 +2713,7 @@ int main(int argc, char **argv)
>                       pops->close_struct();
>               }
>  
> -             if (disp_clients != clients)
> +             if (disp_clients != iclients.clients)
>                       free_display_clients(disp_clients);
>  
>               if (stop_top)
> @@ -2723,10 +2728,7 @@ int main(int argc, char **argv)
>       if (output_mode == JSON)
>               printf("]\n");
>  
> -     if (clients) {
> -             igt_drm_clients_free(clients);
> -             intel_free_clients(&iclients);
> -     }
> +     intel_free_clients(&iclients);
>  
>       free(codename);
>  err_pmu:
> -- 
> 2.39.2
> 

Reply via email to