[PATCH i-g-t] lib/igt_core: reinitialize log_buffer_mutex in child process

Piatkowski, Dominik Karol dominik.karol.piatkowski at intel.com
Mon Mar 17 11:10:16 UTC 2025


Hi Zbigniew,

> -----Original Message-----
> From: Kempczynski, Zbigniew <zbigniew.kempczynski at intel.com>
> Sent: Monday, March 17, 2025 11:56 AM
> To: igt-dev at lists.freedesktop.org
> Cc: Kempczynski, Zbigniew <zbigniew.kempczynski at intel.com>; Mika
> Kuoppala <mika.kuoppala at linux.intel.com>; Piatkowski, Dominik Karol
> <dominik.karol.piatkowski at intel.com>; Kamil Konieczny
> <kamil.konieczny at linux.intel.com>
> Subject: [PATCH i-g-t] lib/igt_core: reinitialize log_buffer_mutex in child process
> 
> For multi-process scanario intel-allocator is dedicated thread which

Typo: scanario -> scenario

> handles clients (children processes) allocations. Main thread which
> spawns chilren may hit point of time where allocator thread locked

Typo: chilren -> children

Otherwise, neat fix.
Reviewed-by: Dominik Karol Piątkowski <dominik.karol.piatkowski at intel.com>

> some mutex. One of it is log_buffer_mutex used in igt_log(). Children
> which would try to call igt_info/warn/debug() family will stuck as
> this mutex is already locked.
> 
> Reinitialize this mutex in igt_fork() to avoid deadlocks in allocator
> scenarios.
> 
> Cc: Mika Kuoppala <mika.kuoppala at linux.intel.com>
> Cc: Dominik Karol Piątkowski <dominik.karol.piatkowski at intel.com>
> Cc: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> ---
>  lib/igt_core.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/lib/igt_core.c b/lib/igt_core.c
> index 9702a94177..c19689a51e 100644
> --- a/lib/igt_core.c
> +++ b/lib/igt_core.c
> @@ -2600,6 +2600,7 @@ bool __igt_fork(void)
>  		test_child = true;
>  		pthread_mutex_init(&print_mutex, NULL);
>  		pthread_mutex_init(&ahnd_map_mutex, NULL);
> +		pthread_mutex_init(&log_buffer_mutex, NULL);
>  		ahnd_map = igt_map_create(igt_map_hash_64,
> igt_map_equal_64);
>  		child_pid = getpid();
>  		child_tid = -1;
> --
> 2.34.1



More information about the igt-dev mailing list