[PATCH i-g-t] lib/igt_core: reinitialize log_buffer_mutex in child process
Zbigniew Kempczyński
zbigniew.kempczynski at intel.com
Mon Mar 17 10:56:10 UTC 2025
For multi-process scanario intel-allocator is dedicated thread which
handles clients (children processes) allocations. Main thread which
spawns chilren may hit point of time where allocator thread locked
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