[igt-dev] [PATCH i-g-t] lib/drmtest: Igt info msg on opened device

Zbigniew Kempczyński zbigniew.kempczynski at intel.com
Tue May 23 11:06:57 UTC 2023


On Mon, May 22, 2023 at 06:39:18PM +0200, Kamil Konieczny wrote:
> From: Marcin Bernatowicz <marcin.bernatowicz at linux.intel.com>
> 
> Log info of each opened device path (ex. "Opened device: /dev/dri/card0")
> to have a trace of devices under test.
> Device path opened for the first time is logged at info level,
> subsequent opens (if any) are logged at debug level.
> 
> Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz at linux.intel.com>
> Signed-off-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> ---
>  lib/drmtest.c | 32 +++++++++++++++++++++++++++++++-
>  1 file changed, 31 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/drmtest.c b/lib/drmtest.c
> index 7630bb793..4181644bf 100644
> --- a/lib/drmtest.c
> +++ b/lib/drmtest.c
> @@ -205,6 +205,33 @@ static const struct module {
>  	{}
>  };
>  
> +struct _opened_device_path {
> +	char *path;
> +	struct igt_list_head link;
> +};
> +
> +/* Logs path of opened device. Device path opened for the first time is logged at info level,
> +   subsequent opens (if any) are logged at debug level */
> +static void log_opened_device_path(const char *device_path)
> +{
> +	static IGT_LIST_HEAD(opened_paths);
> +	struct _opened_device_path *item;
> +
> +	igt_list_for_each_entry(item, &opened_paths, link) {
> +		if (!strcmp(item->path, device_path)) {
> +			igt_debug("Opened previously opened device: %s\n", device_path);
> +			return;
> +		}
> +	}
> +
> +	item = calloc(1, sizeof(struct _opened_device_path));
> +	igt_assert(item);
> +	item->path = strdup(device_path);
> +	igt_assert(item->path);

Maybe assert on 'device_path' at function beginning. Regardless decision
looks correct from my perspective.

Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>

--
Zbigniew

> +	igt_list_add(&item->link, &opened_paths);
> +	igt_info("Opened device: %s\n", item->path);
> +}
> +
>  static int open_device(const char *name, unsigned int chipset)
>  {
>  	const char *forced;
> @@ -235,8 +262,11 @@ static int open_device(const char *name, unsigned int chipset)
>  			break;
>  		}
>  	}
> -	if ((chipset & chip) == chip)
> +
> +	if ((chipset & chip) == chip) {
> +		log_opened_device_path(name);
>  		return fd;
> +	}
>  
>  err:
>  	close(fd);
> -- 
> 2.39.2
> 


More information about the igt-dev mailing list