[PATCH i-g-t v2 1/2] igt fork problem with sanitize

Zbigniew Kempczyński zbigniew.kempczynski at intel.com
Mon Nov 23 08:23:25 UTC 2020


---
 lib/igt_core.c    |  2 ++
 meson.build       |  1 +
 meson.sh          |  2 +-
 tests/igt.c       | 29 +++++++++++++++++++++++++++++
 tests/meson.build |  1 +
 5 files changed, 34 insertions(+), 1 deletion(-)
 create mode 100644 tests/igt.c

diff --git a/lib/igt_core.c b/lib/igt_core.c
index 8f9d925b..85f7322e 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -2328,7 +2328,9 @@ int __igt_waitchildren(void)
 		pid_t pid;
 		int c;
 
+		printf("Before WAIT, count: %d\n", count);
 		pid = wait(&status);
+		printf("After WAIT, pid: %ld, status: %d\n", (long) pid, status);
 		if (pid == -1) {
 			if (errno == EINTR)
 				continue;
diff --git a/meson.build b/meson.build
index f4ee14f1..0e5e1932 100644
--- a/meson.build
+++ b/meson.build
@@ -5,6 +5,7 @@ project('igt-gpu-tools', 'c',
           'c_std=gnu11',
           'b_ndebug=false',
           'buildtype=debugoptimized',
+	  'b_sanitize=address',
         ],
 	license : 'MIT',
 	meson_version : '>=0.47.2')
diff --git a/meson.sh b/meson.sh
index 7cf9d4a3..1dd5fa9b 100755
--- a/meson.sh
+++ b/meson.sh
@@ -7,7 +7,7 @@ default: all
 
 build/build.ninja:
 	mkdir -p build
-	meson build
+	meson build -Db_sanitize=address
 
 all: build/build.ninja
 	ninja -C build
diff --git a/tests/igt.c b/tests/igt.c
new file mode 100644
index 00000000..9e6f7ca7
--- /dev/null
+++ b/tests/igt.c
@@ -0,0 +1,29 @@
+#include "igt.h"
+
+#define FORK_PROBLEM_TIMEOUT 1
+static void fork_problem(void)
+{
+	igt_fork(child, 8) {
+		igt_info("LOG (child) enter pid: %ld\n", (long) gettid());
+
+		igt_until_timeout(FORK_PROBLEM_TIMEOUT) {
+			usleep(10);
+		}
+
+		igt_info("LOG (child) exit %ld\n", (long) gettid());
+	}
+
+
+	igt_info("Before wait\n");
+	igt_waitchildren();
+	igt_info("After wait\n");
+}
+
+igt_main
+{
+	igt_subtest_f("fork-problem") {
+		igt_fork_signal_helper();
+		fork_problem();
+		igt_stop_signal_helper();
+	}
+}
diff --git a/tests/meson.build b/tests/meson.build
index a2decf4a..f0b440e7 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -14,6 +14,7 @@ test_progs = [
 	'drm_read',
 	'fbdev',
 	'feature_discovery',
+	'igt',
 	'kms_3d',
 	'kms_addfb_basic',
 	'kms_async_flips',
-- 
2.26.0



More information about the Intel-gfx-trybot mailing list