public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 1/3] lib/core: Print thred:tid with igt_log for non-main threads
@ 2020-06-16 14:14 Arkadiusz Hiler
  2020-06-16 14:14 ` [igt-dev] [PATCH i-g-t 2/3] lib/core: Handle asserts in threads Arkadiusz Hiler
                   ` (7 more replies)
  0 siblings, 8 replies; 12+ messages in thread
From: Arkadiusz Hiler @ 2020-06-16 14:14 UTC (permalink / raw)
  To: igt-dev; +Cc: Petri Latvala

So that we know what's the source of messages.

igt_thread.c is created to facilitate more threading-related
functionality that will come in the following patch.

Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 lib/Makefile.sources |  2 ++
 lib/igt_core.c       | 44 +++++++++++++++++++++++++++++++++++++-------
 lib/igt_thread.c     | 39 +++++++++++++++++++++++++++++++++++++++
 lib/igt_thread.h     | 24 ++++++++++++++++++++++++
 lib/meson.build      |  1 +
 5 files changed, 103 insertions(+), 7 deletions(-)
 create mode 100644 lib/igt_thread.c
 create mode 100644 lib/igt_thread.h

diff --git a/lib/Makefile.sources b/lib/Makefile.sources
index 09aedb40..00374c97 100644
--- a/lib/Makefile.sources
+++ b/lib/Makefile.sources
@@ -64,6 +64,8 @@ lib_source_list =	 	\
 	igt_sysfs.h		\
 	igt_sysrq.c		\
 	igt_sysrq.h		\
+	igt_thread.c		\
+	igt_thread.h		\
 	igt_x86.h		\
 	igt_x86.c		\
 	igt_vec.c		\
diff --git a/lib/igt_core.c b/lib/igt_core.c
index cbcc3f4d..c95295c7 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -72,6 +72,7 @@
 #include "igt_rc.h"
 #include "igt_list.h"
 #include "igt_device_scan.h"
+#include "igt_thread.h"
 
 #define UNW_LOCAL_ONLY
 #include <libunwind.h>
@@ -2687,6 +2688,12 @@ void igt_log(const char *domain, enum igt_log_level level, const char *format, .
 	va_end(args);
 }
 
+static pthread_key_t __vlog_line_continuation;
+
+igt_constructor {
+	pthread_key_create(&__vlog_line_continuation, NULL);
+}
+
 /**
  * igt_vlog:
  * @domain: the log domain, or NULL for no domain
@@ -2705,6 +2712,7 @@ void igt_vlog(const char *domain, enum igt_log_level level, const char *format,
 {
 	FILE *file;
 	char *line, *formatted_line;
+	char *thread_id;
 	const char *program_name;
 	const char *igt_log_level_str[] = {
 		"DEBUG",
@@ -2713,7 +2721,8 @@ void igt_vlog(const char *domain, enum igt_log_level level, const char *format,
 		"CRITICAL",
 		"NONE"
 	};
-	static bool line_continuation = false;
+
+	static pthread_mutex_t print_mutex = PTHREAD_MUTEX_INITIALIZER;
 
 	assert(format);
 
@@ -2723,23 +2732,37 @@ void igt_vlog(const char *domain, enum igt_log_level level, const char *format,
 	program_name = command_str;
 #endif
 
+
+	if (igt_thread_is_main()) {
+		thread_id = strdup("");
+	} else {
+		if (asprintf(&thread_id, "[thread:%d] ", gettid()) == -1)
+			thread_id = NULL;
+	}
+
+	if (!thread_id)
+		goto out;
+
 	if (list_subtests && level <= IGT_LOG_WARN)
 		return;
 
 	if (vasprintf(&line, format, args) == -1)
 		return;
 
-	if (line_continuation) {
+	if (pthread_getspecific(__vlog_line_continuation)) {
 		formatted_line = strdup(line);
 		if (!formatted_line)
 			goto out;
-	} else if (asprintf(&formatted_line, "(%s:%d) %s%s%s: %s", program_name,
-		     getpid(), (domain) ? domain : "", (domain) ? "-" : "",
+	} else if (asprintf(&formatted_line, "(%s:%d) %s%s%s%s: %s", program_name,
+		     getpid(), thread_id, (domain) ? domain : "", (domain) ? "-" : "",
 		     igt_log_level_str[level], line) == -1) {
 		goto out;
 	}
 
-	line_continuation = line[strlen(line) - 1] != '\n';
+	if (line[strlen(line) - 1] == '\n')
+		pthread_setspecific(__vlog_line_continuation, (void*) false);
+	else
+		pthread_setspecific(__vlog_line_continuation, (void*) true);
 
 	/* append log buffer */
 	_igt_log_buffer_append(formatted_line);
@@ -2758,6 +2781,8 @@ void igt_vlog(const char *domain, enum igt_log_level level, const char *format,
 			goto out;
 	}
 
+	pthread_mutex_lock(&print_mutex);
+
 	/* use stderr for warning messages and above */
 	if (level >= IGT_LOG_WARN) {
 		file = stderr;
@@ -2768,13 +2793,18 @@ void igt_vlog(const char *domain, enum igt_log_level level, const char *format,
 
 	/* prepend all except information messages with process, domain and log
 	 * level information */
-	if (level != IGT_LOG_INFO)
+	if (level != IGT_LOG_INFO) {
 		fwrite(formatted_line, sizeof(char), strlen(formatted_line),
 		       file);
-	else
+	} else {
+		fwrite(thread_id, sizeof(char), strlen(thread_id), file);
 		fwrite(line, sizeof(char), strlen(line), file);
+	}
+
+	pthread_mutex_unlock(&print_mutex);
 
 out:
+	free(thread_id);
 	free(line);
 }
 
diff --git a/lib/igt_thread.c b/lib/igt_thread.c
new file mode 100644
index 00000000..deab6225
--- /dev/null
+++ b/lib/igt_thread.c
@@ -0,0 +1,39 @@
+/*
+ * Copyright © 2020 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#include <pthread.h>
+
+#include "igt_core.h"
+#include "igt_thread.h"
+
+static pthread_key_t __igt_is_main_thread;
+
+bool igt_thread_is_main(void)
+{
+	return pthread_getspecific(__igt_is_main_thread) != NULL;
+}
+
+igt_constructor {
+	pthread_key_create(&__igt_is_main_thread, NULL);
+	pthread_setspecific(__igt_is_main_thread, (void*) 0x1);
+}
diff --git a/lib/igt_thread.h b/lib/igt_thread.h
new file mode 100644
index 00000000..b16f803f
--- /dev/null
+++ b/lib/igt_thread.h
@@ -0,0 +1,24 @@
+/*
+ * Copyright © 2020 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+bool igt_thread_is_main(void);
diff --git a/lib/meson.build b/lib/meson.build
index 6cf78663..6c71ae3d 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -26,6 +26,7 @@ lib_sources = [
 	'igt_syncobj.c',
 	'igt_sysfs.c',
 	'igt_sysrq.c',
+	'igt_thread.c',
 	'igt_vec.c',
 	'igt_vgem.c',
 	'igt_x86.c',
-- 
2.25.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [igt-dev] [PATCH i-g-t 2/3] lib/core: Handle asserts in threads
  2020-06-16 14:14 [igt-dev] [PATCH i-g-t 1/3] lib/core: Print thred:tid with igt_log for non-main threads Arkadiusz Hiler
@ 2020-06-16 14:14 ` Arkadiusz Hiler
  2020-06-18 12:59   ` Petri Latvala
  2020-06-16 14:14 ` [igt-dev] [PATCH i-g-t 3/3] igt/core: Disallow igt_require/skip in non-main threads Arkadiusz Hiler
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 12+ messages in thread
From: Arkadiusz Hiler @ 2020-06-16 14:14 UTC (permalink / raw)
  To: igt-dev; +Cc: Petri Latvala

Since IGT is using magic control blocks (igt_subtest et al.) asserts
jump out the them using longjmp() causing a bunch of confusing messages
and occasionally crashing the whole process.

This is not the behavior we want :-)

With this patch:

1. simple_main, dynamic and subtest each clears the thread failure state
   at the start

2. each of those blocks also asserts no thread failures at the end

3. igt_assert() in non-main thread prints out the error + stacktrace
   and marks that we have failed thread

Issue: https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/55
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 lib/igt_core.c               |  12 +++
 lib/igt_thread.c             |  30 ++++++
 lib/igt_thread.h             |   4 +
 lib/tests/igt_tests_common.h |  22 ++++
 lib/tests/igt_thread.c       | 194 +++++++++++++++++++++++++++++++++++
 lib/tests/meson.build        |   1 +
 6 files changed, 263 insertions(+)
 create mode 100644 lib/tests/igt_thread.c

diff --git a/lib/igt_core.c b/lib/igt_core.c
index c95295c7..ccf06cf4 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -1272,6 +1272,7 @@ bool __igt_run_subtest(const char *subtest_name, const char *file, const int lin
 		fprintf(stderr, "Starting subtest: %s\n", subtest_name);
 
 	_igt_log_buffer_reset();
+	igt_thread_clear_fail_state();
 
 	igt_gettime(&subtest_time);
 	return (in_subtest = subtest_name);
@@ -1302,6 +1303,7 @@ bool __igt_run_dynamic_subtest(const char *dynamic_subtest_name)
 		fprintf(stderr, "Starting dynamic subtest: %s\n", dynamic_subtest_name);
 
 	_igt_log_buffer_reset();
+	igt_thread_clear_fail_state();
 
 	_igt_dynamic_tests_executed++;
 
@@ -1510,6 +1512,8 @@ void __igt_skip_check(const char *file, const int line,
  */
 void igt_success(void)
 {
+	igt_thread_assert_no_failures();
+
 	if (in_subtest && !in_dynamic_subtest && _igt_dynamic_tests_executed >= 0) {
 		/*
 		 * We're exiting a dynamic container, yield a result
@@ -1549,6 +1553,11 @@ void igt_fail(int exitcode)
 {
 	assert(exitcode != IGT_EXIT_SUCCESS && exitcode != IGT_EXIT_SKIP);
 
+	if (!igt_thread_is_main()) {
+		igt_thread_fail();
+		pthread_exit(NULL);
+	}
+
 	igt_debug_wait_for_keypress("failure");
 
 	/* Exit immediately if the test is already exiting and igt_fail is
@@ -2049,6 +2058,9 @@ void igt_exit(void)
 {
 	int tmp;
 
+	if (!test_with_subtests)
+		igt_thread_assert_no_failures();
+
 	igt_exit_called = true;
 
 	if (igt_key_file)
diff --git a/lib/igt_thread.c b/lib/igt_thread.c
index deab6225..5bdda410 100644
--- a/lib/igt_thread.c
+++ b/lib/igt_thread.c
@@ -22,12 +22,42 @@
  */
 
 #include <pthread.h>
+#include <stdlib.h>
+#include <stdatomic.h>
 
 #include "igt_core.h"
 #include "igt_thread.h"
 
 static pthread_key_t __igt_is_main_thread;
 
+static _Atomic(bool) __thread_failed = false;
+
+void igt_thread_clear_fail_state(void)
+{
+	assert(igt_thread_is_main());
+
+	__thread_failed = false;
+}
+
+void igt_thread_fail(void)
+{
+	assert(!igt_thread_is_main());
+
+	__thread_failed = true;
+}
+
+void igt_thread_assert_no_failures(void)
+{
+	assert(igt_thread_is_main());
+
+	if (__thread_failed) {
+		/* so we won't get stuck in a loop */
+		igt_thread_clear_fail_state();
+		igt_critical("Failure in a thread!\n");
+		igt_fail(IGT_EXIT_FAILURE);
+	}
+}
+
 bool igt_thread_is_main(void)
 {
 	return pthread_getspecific(__igt_is_main_thread) != NULL;
diff --git a/lib/igt_thread.h b/lib/igt_thread.h
index b16f803f..4b9c222d 100644
--- a/lib/igt_thread.h
+++ b/lib/igt_thread.h
@@ -21,4 +21,8 @@
  * IN THE SOFTWARE.
  */
 
+void igt_thread_clear_fail_state(void);
+void igt_thread_fail(void);
+void igt_thread_assert_no_failures(void);
+
 bool igt_thread_is_main(void);
diff --git a/lib/tests/igt_tests_common.h b/lib/tests/igt_tests_common.h
index fa8ad920..058f6265 100644
--- a/lib/tests/igt_tests_common.h
+++ b/lib/tests/igt_tests_common.h
@@ -30,6 +30,7 @@
 #include <errno.h>
 #include <sys/stat.h>
 #include <fcntl.h>
+#include <regex.h>
 
 /*
  * We need to hide assert from the cocci igt test refactor spatch.
@@ -161,4 +162,25 @@ static inline void read_whole_pipe(int fd, char *buf, size_t buflen)
 		offset += readlen;
 	}
 }
+
+static inline bool matches(char *str, const char *regex)
+{
+	int ret;
+	regex_t reg;
+
+	ret = regcomp(&reg, regex, REG_EXTENDED | REG_NEWLINE);
+
+	if (ret == 0)
+		ret = regexec(&reg, str, 0, NULL, 0);
+
+	if (0 != ret && REG_NOMATCH != ret) {
+		char err[256];
+		regerror(ret, &reg, err, sizeof(err));
+		printf("%s\n", err);
+		abort();
+	}
+
+	regfree(&reg);
+	return !ret;
+}
 #endif
diff --git a/lib/tests/igt_thread.c b/lib/tests/igt_thread.c
new file mode 100644
index 00000000..1a734e6d
--- /dev/null
+++ b/lib/tests/igt_thread.c
@@ -0,0 +1,194 @@
+/*
+ * Copyright © 2020 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ */
+
+#include <pthread.h>
+
+#include "drmtest.h"
+#include "igt_core.h"
+#include "igt_tests_common.h"
+
+char prog[] = "igt_thread";
+char *fake_argv[] = { prog };
+int fake_argc = ARRAY_SIZE(fake_argv);
+
+static void *succes_thread(void *data)
+{
+	return NULL;
+}
+
+static void *failure_thread(void *data)
+{
+	igt_assert(false);
+	return NULL;
+}
+
+static void one_subtest_fail(void) {
+	igt_subtest_init(fake_argc, fake_argv);
+
+	igt_subtest("subtest-a") {
+		pthread_t thread;
+		pthread_create(&thread, 0, failure_thread, NULL);
+		pthread_join(thread, NULL);
+	}
+
+	igt_subtest("subtest-b") {
+		pthread_t thread;
+		pthread_create(&thread, 0, succes_thread, NULL);
+		pthread_join(thread, NULL);
+	}
+
+	igt_exit();
+}
+
+static void one_dynamic_fail(void) {
+	igt_subtest_init(fake_argc, fake_argv);
+
+	igt_subtest_with_dynamic("dynamic-container") {
+		igt_dynamic("dynamic-a") {
+			pthread_t thread;
+			pthread_create(&thread, 0, failure_thread, NULL);
+			pthread_join(thread, NULL);
+		}
+
+		igt_dynamic("dynamic-b") {
+			pthread_t thread;
+			pthread_create(&thread, 0, succes_thread, NULL);
+			pthread_join(thread, NULL);
+		}
+	}
+
+	igt_exit();
+}
+
+static void simple_success(void) {
+	pthread_t thread;
+
+	igt_simple_init(fake_argc, fake_argv);
+
+	pthread_create(&thread, 0, succes_thread, NULL);
+	pthread_join(thread, NULL);
+
+	igt_exit();
+}
+
+static void simple_failure(void) {
+	pthread_t thread;
+
+	igt_simple_init(fake_argc, fake_argv);
+
+	pthread_create(&thread, 0, failure_thread, NULL);
+	pthread_join(thread, NULL);
+
+	igt_exit();
+}
+
+int main(int argc, char **argv)
+{
+	int status;
+	int outfd;
+	pid_t pid;
+
+	/* failing should be limited just to a single subtest */ {
+		static char out[4096];
+
+		pid = do_fork_bg_with_pipes(one_subtest_fail, &outfd, NULL);
+
+		read_whole_pipe(outfd, out, sizeof(out));
+
+		internal_assert(safe_wait(pid, &status) != -1);
+		internal_assert_wexited(status, IGT_EXIT_FAILURE);
+
+		internal_assert(matches(out, "\\[thread:.*\\] Stack trace"));
+		internal_assert(strstr(out, "Subtest subtest-a: FAIL"));
+		internal_assert(strstr(out, "Subtest subtest-b: SUCCESS"));
+
+		close(outfd);
+	}
+
+	/* failing should be limited just to a dynamic subsubtest */ {
+		static char out[4096];
+
+		pid = do_fork_bg_with_pipes(one_dynamic_fail, &outfd, NULL);
+
+		read_whole_pipe(outfd, out, sizeof(out));
+
+		internal_assert(safe_wait(pid, &status) != -1);
+		internal_assert_wexited(status, IGT_EXIT_FAILURE);
+
+		internal_assert(matches(out, "\\[thread:.*\\] Stack trace"));
+		internal_assert(strstr(out, "Dynamic subtest dynamic-a: FAIL"));
+		internal_assert(strstr(out, "Dynamic subtest dynamic-b: SUCCESS"));
+
+		close(outfd);
+	}
+
+	/* success in a simple test */ {
+		static char out[4096];
+
+		pid = do_fork_bg_with_pipes(simple_success, &outfd, NULL);
+
+		read_whole_pipe(outfd, out, sizeof(out));
+
+		internal_assert(safe_wait(pid, &status) != -1);
+		internal_assert_wexited(status, IGT_EXIT_SUCCESS);
+
+
+		internal_assert(matches(out, "^SUCCESS"));
+
+		close(outfd);
+	}
+
+	/* success in a simple test */ {
+		static char out[4096];
+
+		pid = do_fork_bg_with_pipes(simple_success, &outfd, NULL);
+
+		read_whole_pipe(outfd, out, sizeof(out));
+
+		internal_assert(safe_wait(pid, &status) != -1);
+		internal_assert_wexited(status, IGT_EXIT_SUCCESS);
+
+		internal_assert(matches(out, "^SUCCESS"));
+
+		close(outfd);
+	}
+
+	/* failure in a simple test */ {
+		static char out[4096];
+
+		pid = do_fork_bg_with_pipes(simple_failure, &outfd, NULL);
+
+		read_whole_pipe(outfd, out, sizeof(out));
+
+		internal_assert(safe_wait(pid, &status) != -1);
+		internal_assert_wexited(status, IGT_EXIT_FAILURE);
+
+		internal_assert(matches(out, "\\[thread:.*\\] Stack trace"));
+		internal_assert(matches(out, "^FAIL"));
+
+		close(outfd);
+	}
+
+	return 0;
+}
diff --git a/lib/tests/meson.build b/lib/tests/meson.build
index 47ef303a..9cf5ff47 100644
--- a/lib/tests/meson.build
+++ b/lib/tests/meson.build
@@ -18,6 +18,7 @@ lib_tests = [
 	'igt_simulation',
 	'igt_stats',
 	'igt_subtest_group',
+	'igt_thread',
 	'i915_perf_data_alignment',
 ]
 
-- 
2.25.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [igt-dev] [PATCH i-g-t 3/3] igt/core: Disallow igt_require/skip in non-main threads
  2020-06-16 14:14 [igt-dev] [PATCH i-g-t 1/3] lib/core: Print thred:tid with igt_log for non-main threads Arkadiusz Hiler
  2020-06-16 14:14 ` [igt-dev] [PATCH i-g-t 2/3] lib/core: Handle asserts in threads Arkadiusz Hiler
@ 2020-06-16 14:14 ` Arkadiusz Hiler
  2020-06-18 12:59   ` Petri Latvala
  2020-06-16 16:55 ` [igt-dev] ✗ GitLab.Pipeline: warning for series starting with [i-g-t,1/3] lib/core: Print thred:tid with igt_log for " Patchwork
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 12+ messages in thread
From: Arkadiusz Hiler @ 2020-06-16 14:14 UTC (permalink / raw)
  To: igt-dev; +Cc: Petri Latvala

Handling magic control blocks and longjmp() out of them  in threads is
hard.

The test should state the requirements before it starts spinning
threads.

Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 lib/igt_core.c         |  3 +++
 lib/tests/igt_thread.c | 34 +++++++++++++++++++++++++++++++++-
 2 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index ccf06cf4..cedd8168 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -1475,6 +1475,9 @@ void __igt_skip_check(const char *file, const int line,
 	int err = errno;
 	char *err_str = NULL;
 
+	if (!igt_thread_is_main())
+		assert(!"igt_require/skip allowed only in the main thread!");
+
 	if (err)
 		igt_assert_neq(asprintf(&err_str, "Last errno: %i, %s\n", err, strerror(err)),
 			       -1);
diff --git a/lib/tests/igt_thread.c b/lib/tests/igt_thread.c
index 1a734e6d..3fb90416 100644
--- a/lib/tests/igt_thread.c
+++ b/lib/tests/igt_thread.c
@@ -43,6 +43,12 @@ static void *failure_thread(void *data)
 	return NULL;
 }
 
+static void *require_thread(void *data)
+{
+	igt_require(false);
+	return NULL;
+}
+
 static void one_subtest_fail(void) {
 	igt_subtest_init(fake_argc, fake_argv);
 
@@ -103,10 +109,21 @@ static void simple_failure(void) {
 	igt_exit();
 }
 
+static void require_non_main_thread(void) {
+	pthread_t thread;
+
+	igt_simple_init(fake_argc, fake_argv);
+
+	pthread_create(&thread, 0, require_thread, NULL);
+	pthread_join(thread, NULL);
+
+	igt_exit();
+}
+
 int main(int argc, char **argv)
 {
 	int status;
-	int outfd;
+	int outfd, errfd;
 	pid_t pid;
 
 	/* failing should be limited just to a single subtest */ {
@@ -190,5 +207,20 @@ int main(int argc, char **argv)
 		close(outfd);
 	}
 
+	/* require in a thread should SIGABRT */ {
+		static char err[4096];
+
+		pid = do_fork_bg_with_pipes(require_non_main_thread, NULL, &errfd);
+
+		read_whole_pipe(errfd, err, sizeof(err));
+
+		internal_assert(safe_wait(pid, &status) != -1);
+		internal_assert_wsignaled(status, SIGABRT);
+
+		internal_assert(strstr(err, "allowed only in the main thread"));
+
+		close(errfd);
+	}
+
 	return 0;
 }
-- 
2.25.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [igt-dev] ✗ GitLab.Pipeline: warning for series starting with [i-g-t,1/3] lib/core: Print thred:tid with igt_log for non-main threads
  2020-06-16 14:14 [igt-dev] [PATCH i-g-t 1/3] lib/core: Print thred:tid with igt_log for non-main threads Arkadiusz Hiler
  2020-06-16 14:14 ` [igt-dev] [PATCH i-g-t 2/3] lib/core: Handle asserts in threads Arkadiusz Hiler
  2020-06-16 14:14 ` [igt-dev] [PATCH i-g-t 3/3] igt/core: Disallow igt_require/skip in non-main threads Arkadiusz Hiler
@ 2020-06-16 16:55 ` Patchwork
  2020-06-16 17:06 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2020-06-16 16:55 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/3] lib/core: Print thred:tid with igt_log for non-main threads
URL   : https://patchwork.freedesktop.org/series/78422/
State : warning

== Summary ==

Did not get list of undocumented tests for this run, something is wrong!

Other than that, pipeline status: FAILED.

see https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/pipelines/161686 for the overview.

build:tests-fedora-oldest-meson has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/3128974):
  Using docker image sha256:4b3054d89ef79f9be95501786fbbbe22857d02c867fff99693808cd80909939f for registry.freedesktop.org/gfx-ci/igt-ci-tags/build-fedora:commit-5c97718a96489b6d763862eefd06a5df51bbad4e ...
  section_end:1592325967:prepare_executor
  section_start:1592325967:prepare_script
  Preparing environment
  Running on runner-j4Lrg1oF-project-3185-concurrent-0 via gst-htz-1...
  section_end:1592325969:prepare_script
  section_start:1592325969:get_sources
  Getting source from Git repository
  Fetching changes...
  Initialized empty Git repository in /builds/gfx-ci/igt-ci-tags/.git/
  Created fresh repository.
  warning: redirecting to https://gitlab-ci-hetzner.freedesktop.org/gfx-ci/igt-ci-tags.git/
  error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)
  fatal: the remote end hung up unexpectedly
  section_end:1592326031:get_sources
  section_start:1592326031:upload_artifacts_on_failure
  Uploading artifacts for failed job
  section_end:1592326033:upload_artifacts_on_failure
  ERROR: Job failed: exit code 1

== Logs ==

For more details see: https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/pipelines/161686
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/3] lib/core: Print thred:tid with igt_log for non-main threads
  2020-06-16 14:14 [igt-dev] [PATCH i-g-t 1/3] lib/core: Print thred:tid with igt_log for non-main threads Arkadiusz Hiler
                   ` (2 preceding siblings ...)
  2020-06-16 16:55 ` [igt-dev] ✗ GitLab.Pipeline: warning for series starting with [i-g-t,1/3] lib/core: Print thred:tid with igt_log for " Patchwork
@ 2020-06-16 17:06 ` Patchwork
  2020-06-16 18:25 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2020-06-16 17:06 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/3] lib/core: Print thred:tid with igt_log for non-main threads
URL   : https://patchwork.freedesktop.org/series/78422/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8634 -> IGTPW_4677
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/index.html

Known issues
------------

  Here are the changes found in IGTPW_4677 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_cursor_legacy@basic-flip-after-cursor-atomic:
    - fi-icl-u2:          [PASS][1] -> [DMESG-WARN][2] ([i915#1982])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/fi-icl-u2/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/fi-icl-u2/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence:
    - fi-tgl-u2:          [PASS][3] -> [DMESG-WARN][4] ([i915#402])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/fi-tgl-u2/igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/fi-tgl-u2/igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence.html

  
#### Possible fixes ####

  * igt@i915_module_load@reload:
    - fi-tgl-u2:          [DMESG-WARN][5] ([i915#402]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/fi-tgl-u2/igt@i915_module_load@reload.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/fi-tgl-u2/igt@i915_module_load@reload.html

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-byt-j1900:       [DMESG-WARN][7] ([i915#1982]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/fi-byt-j1900/igt@i915_pm_rpm@basic-pci-d3-state.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/fi-byt-j1900/igt@i915_pm_rpm@basic-pci-d3-state.html

  
#### Warnings ####

  * igt@gem_exec_suspend@basic-s0:
    - fi-kbl-x1275:       [DMESG-WARN][9] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][10] ([i915#62] / [i915#92]) +4 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/fi-kbl-x1275/igt@gem_exec_suspend@basic-s0.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/fi-kbl-x1275/igt@gem_exec_suspend@basic-s0.html

  * igt@gem_exec_suspend@basic-s3:
    - fi-kbl-x1275:       [DMESG-WARN][11] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][12] ([i915#1982] / [i915#62] / [i915#92])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/fi-kbl-x1275/igt@gem_exec_suspend@basic-s3.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/fi-kbl-x1275/igt@gem_exec_suspend@basic-s3.html

  * igt@prime_vgem@basic-fence-flip:
    - fi-kbl-x1275:       [DMESG-WARN][13] ([i915#62] / [i915#92]) -> [DMESG-WARN][14] ([i915#62] / [i915#92] / [i915#95]) +3 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/fi-kbl-x1275/igt@prime_vgem@basic-fence-flip.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/fi-kbl-x1275/igt@prime_vgem@basic-fence-flip.html

  
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (48 -> 42)
------------------------------

  Missing    (6): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-tgl-y fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5711 -> IGTPW_4677

  CI-20190529: 20190529
  CI_DRM_8634: 72c556b3627adef8cef3b7a47c32987b96e7f1c2 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4677: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/index.html
  IGT_5711: 90611a0c90afa4a46496c78a4faf9638a1538ac3 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/index.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [igt-dev] ✗ Fi.CI.IGT: failure for series starting with [i-g-t,1/3] lib/core: Print thred:tid with igt_log for non-main threads
  2020-06-16 14:14 [igt-dev] [PATCH i-g-t 1/3] lib/core: Print thred:tid with igt_log for non-main threads Arkadiusz Hiler
                   ` (3 preceding siblings ...)
  2020-06-16 17:06 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
@ 2020-06-16 18:25 ` Patchwork
  2020-06-17 13:52   ` Arkadiusz Hiler
  2020-06-17 14:37 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/3] lib/core: Print thred:tid with igt_log for non-main threads (rev2) Patchwork
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 12+ messages in thread
From: Patchwork @ 2020-06-16 18:25 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/3] lib/core: Print thred:tid with igt_log for non-main threads
URL   : https://patchwork.freedesktop.org/series/78422/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_8634_full -> IGTPW_4677_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_4677_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_4677_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_4677_full:

### IGT changes ###

#### Possible regressions ####

  * igt@gem_eio@kms:
    - shard-hsw:          [PASS][1] -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-hsw2/igt@gem_eio@kms.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-hsw6/igt@gem_eio@kms.html

  * igt@gem_exec_balancer@bonded-early:
    - shard-tglb:         [PASS][3] -> [FAIL][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-tglb7/igt@gem_exec_balancer@bonded-early.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-tglb1/igt@gem_exec_balancer@bonded-early.html

  * igt@gem_mmap_offset@clear:
    - shard-iclb:         [PASS][5] -> [DMESG-WARN][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-iclb6/igt@gem_mmap_offset@clear.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-iclb1/igt@gem_mmap_offset@clear.html

  * igt@i915_pm_rpm@system-suspend-devices:
    - shard-iclb:         [PASS][7] -> [FAIL][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-iclb3/igt@i915_pm_rpm@system-suspend-devices.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-iclb6/igt@i915_pm_rpm@system-suspend-devices.html

  * igt@perf@i915-ref-count:
    - shard-hsw:          [PASS][9] -> [INCOMPLETE][10] +1 similar issue
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-hsw5/igt@perf@i915-ref-count.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-hsw1/igt@perf@i915-ref-count.html

  
Known issues
------------

  Here are the changes found in IGTPW_4677_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_isolation@preservation-s3@rcs0:
    - shard-kbl:          [PASS][11] -> [INCOMPLETE][12] ([i915#794])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl2/igt@gem_ctx_isolation@preservation-s3@rcs0.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl4/igt@gem_ctx_isolation@preservation-s3@rcs0.html
    - shard-iclb:         [PASS][13] -> [FAIL][14] ([fdo#103375]) +3 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-iclb5/igt@gem_ctx_isolation@preservation-s3@rcs0.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-iclb6/igt@gem_ctx_isolation@preservation-s3@rcs0.html

  * igt@gem_exec_reloc@basic-concurrent0:
    - shard-glk:          [PASS][15] -> [FAIL][16] ([i915#1930])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-glk2/igt@gem_exec_reloc@basic-concurrent0.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-glk5/igt@gem_exec_reloc@basic-concurrent0.html

  * igt@i915_module_load@reload:
    - shard-tglb:         [PASS][17] -> [DMESG-WARN][18] ([i915#402]) +6 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-tglb6/igt@i915_module_load@reload.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-tglb2/igt@i915_module_load@reload.html

  * igt@i915_pm_dc@dc3co-vpb-simulation:
    - shard-tglb:         [PASS][19] -> [SKIP][20] ([i915#1904])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-tglb2/igt@i915_pm_dc@dc3co-vpb-simulation.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-tglb8/igt@i915_pm_dc@dc3co-vpb-simulation.html

  * igt@i915_pm_dc@dc5-psr:
    - shard-iclb:         [PASS][21] -> [FAIL][22] ([i915#1899])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-iclb6/igt@i915_pm_dc@dc5-psr.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-iclb7/igt@i915_pm_dc@dc5-psr.html
    - shard-tglb:         [PASS][23] -> [FAIL][24] ([i915#1899])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-tglb3/igt@i915_pm_dc@dc5-psr.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-tglb6/igt@i915_pm_dc@dc5-psr.html

  * igt@i915_pm_rc6_residency@rc6-idle:
    - shard-tglb:         [PASS][25] -> [FAIL][26] ([i915#1568])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-tglb3/igt@i915_pm_rc6_residency@rc6-idle.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-tglb5/igt@i915_pm_rc6_residency@rc6-idle.html

  * igt@kms_big_fb@linear-64bpp-rotate-180:
    - shard-glk:          [PASS][27] -> [DMESG-FAIL][28] ([i915#118] / [i915#95])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-glk9/igt@kms_big_fb@linear-64bpp-rotate-180.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-glk8/igt@kms_big_fb@linear-64bpp-rotate-180.html

  * igt@kms_big_fb@linear-8bpp-rotate-180:
    - shard-apl:          [PASS][29] -> [DMESG-WARN][30] ([i915#1982])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-apl6/igt@kms_big_fb@linear-8bpp-rotate-180.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-apl4/igt@kms_big_fb@linear-8bpp-rotate-180.html

  * igt@kms_color@pipe-b-ctm-max:
    - shard-apl:          [PASS][31] -> [DMESG-WARN][32] ([i915#95]) +42 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-apl4/igt@kms_color@pipe-b-ctm-max.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-apl1/igt@kms_color@pipe-b-ctm-max.html

  * igt@kms_cursor_crc@pipe-d-cursor-suspend:
    - shard-tglb:         [PASS][33] -> [INCOMPLETE][34] ([i915#1602])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-tglb8/igt@kms_cursor_crc@pipe-d-cursor-suspend.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-tglb2/igt@kms_cursor_crc@pipe-d-cursor-suspend.html

  * igt@kms_flip@flip-vs-suspend@c-dp1:
    - shard-kbl:          [PASS][35] -> [DMESG-WARN][36] ([i915#180]) +5 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl1/igt@kms_flip@flip-vs-suspend@c-dp1.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl1/igt@kms_flip@flip-vs-suspend@c-dp1.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-cpu:
    - shard-iclb:         [PASS][37] -> [DMESG-WARN][38] ([i915#1982])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-cpu.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-iclb3/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_plane_cursor@pipe-a-viewport-size-64:
    - shard-kbl:          [PASS][39] -> [DMESG-FAIL][40] ([i915#95]) +1 similar issue
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl6/igt@kms_plane_cursor@pipe-a-viewport-size-64.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl6/igt@kms_plane_cursor@pipe-a-viewport-size-64.html
    - shard-apl:          [PASS][41] -> [DMESG-FAIL][42] ([i915#95])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-apl3/igt@kms_plane_cursor@pipe-a-viewport-size-64.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-apl8/igt@kms_plane_cursor@pipe-a-viewport-size-64.html

  * igt@kms_psr2_su@frontbuffer:
    - shard-iclb:         [PASS][43] -> [SKIP][44] ([fdo#109642] / [fdo#111068]) +1 similar issue
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-iclb2/igt@kms_psr2_su@frontbuffer.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-iclb6/igt@kms_psr2_su@frontbuffer.html

  * igt@kms_setmode@basic:
    - shard-kbl:          [PASS][45] -> [FAIL][46] ([i915#31])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl3/igt@kms_setmode@basic.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl1/igt@kms_setmode@basic.html

  * igt@perf@blocking-parameterized:
    - shard-iclb:         [PASS][47] -> [FAIL][48] ([i915#1542])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-iclb2/igt@perf@blocking-parameterized.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-iclb1/igt@perf@blocking-parameterized.html

  * igt@syncobj_basic@bad-flags-fd-to-handle:
    - shard-kbl:          [PASS][49] -> [DMESG-WARN][50] ([i915#93] / [i915#95]) +50 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl2/igt@syncobj_basic@bad-flags-fd-to-handle.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl7/igt@syncobj_basic@bad-flags-fd-to-handle.html

  
#### Possible fixes ####

  * igt@gem_exec_schedule@implicit-write-read@rcs0:
    - shard-snb:          [INCOMPLETE][51] ([i915#82]) -> [PASS][52] +2 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-snb1/igt@gem_exec_schedule@implicit-write-read@rcs0.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-snb1/igt@gem_exec_schedule@implicit-write-read@rcs0.html

  * igt@gem_tiled_blits@basic:
    - shard-snb:          [TIMEOUT][53] ([i915#1958]) -> [PASS][54] +1 similar issue
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-snb4/igt@gem_tiled_blits@basic.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-snb1/igt@gem_tiled_blits@basic.html

  * igt@i915_pm_rpm@system-suspend-modeset:
    - shard-hsw:          [SKIP][55] ([fdo#109271]) -> [PASS][56] +1 similar issue
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-hsw7/igt@i915_pm_rpm@system-suspend-modeset.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-hsw6/igt@i915_pm_rpm@system-suspend-modeset.html

  * igt@i915_query@query-topology-kernel-writes:
    - shard-iclb:         [DMESG-WARN][57] ([i915#1982]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-iclb7/igt@i915_query@query-topology-kernel-writes.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-iclb3/igt@i915_query@query-topology-kernel-writes.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-kbl:          [INCOMPLETE][59] ([i915#155]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl1/igt@i915_suspend@fence-restore-untiled.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl3/igt@i915_suspend@fence-restore-untiled.html

  * igt@kms_big_fb@linear-32bpp-rotate-180:
    - shard-apl:          [DMESG-FAIL][61] ([i915#95]) -> [PASS][62] +2 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-apl3/igt@kms_big_fb@linear-32bpp-rotate-180.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-apl4/igt@kms_big_fb@linear-32bpp-rotate-180.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-0:
    - shard-glk:          [DMESG-FAIL][63] ([i915#118] / [i915#95]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-glk8/igt@kms_big_fb@y-tiled-64bpp-rotate-0.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-glk7/igt@kms_big_fb@y-tiled-64bpp-rotate-0.html

  * igt@kms_cursor_crc@pipe-a-cursor-128x128-sliding:
    - shard-apl:          [DMESG-WARN][65] ([i915#95]) -> [PASS][66] +45 similar issues
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-apl7/igt@kms_cursor_crc@pipe-a-cursor-128x128-sliding.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-apl3/igt@kms_cursor_crc@pipe-a-cursor-128x128-sliding.html

  * igt@kms_cursor_crc@pipe-a-cursor-64x21-random:
    - shard-kbl:          [DMESG-FAIL][67] ([i915#54] / [i915#95]) -> [PASS][68] +3 similar issues
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl1/igt@kms_cursor_crc@pipe-a-cursor-64x21-random.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl4/igt@kms_cursor_crc@pipe-a-cursor-64x21-random.html

  * igt@kms_cursor_crc@pipe-a-cursor-64x21-sliding:
    - shard-apl:          [FAIL][69] ([i915#54]) -> [PASS][70]
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-apl7/igt@kms_cursor_crc@pipe-a-cursor-64x21-sliding.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-apl6/igt@kms_cursor_crc@pipe-a-cursor-64x21-sliding.html
    - shard-kbl:          [FAIL][71] ([i915#54]) -> [PASS][72]
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl2/igt@kms_cursor_crc@pipe-a-cursor-64x21-sliding.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl1/igt@kms_cursor_crc@pipe-a-cursor-64x21-sliding.html
    - shard-glk:          [FAIL][73] ([i915#54]) -> [PASS][74]
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-glk7/igt@kms_cursor_crc@pipe-a-cursor-64x21-sliding.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-glk5/igt@kms_cursor_crc@pipe-a-cursor-64x21-sliding.html

  * igt@kms_draw_crc@draw-method-xrgb2101010-pwrite-ytiled:
    - shard-kbl:          [DMESG-WARN][75] ([i915#93] / [i915#95]) -> [PASS][76] +55 similar issues
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl3/igt@kms_draw_crc@draw-method-xrgb2101010-pwrite-ytiled.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl1/igt@kms_draw_crc@draw-method-xrgb2101010-pwrite-ytiled.html

  * igt@kms_fbcon_fbt@fbc:
    - shard-kbl:          [DMESG-FAIL][77] ([i915#95]) -> [PASS][78] +2 similar issues
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl7/igt@kms_fbcon_fbt@fbc.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl4/igt@kms_fbcon_fbt@fbc.html
    - shard-apl:          [FAIL][79] ([i915#1525]) -> [PASS][80]
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-apl3/igt@kms_fbcon_fbt@fbc.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-apl7/igt@kms_fbcon_fbt@fbc.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-blt:
    - shard-tglb:         [DMESG-WARN][81] ([i915#1982]) -> [PASS][82]
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-tglb1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-blt.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-tglb6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render:
    - shard-tglb:         [DMESG-WARN][83] ([i915#1982] / [i915#402]) -> [PASS][84]
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-tglb8/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-tglb7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes:
    - shard-kbl:          [DMESG-WARN][85] ([i915#180]) -> [PASS][86] +1 similar issue
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl1/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl1/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html

  * igt@kms_psr@psr2_sprite_render:
    - shard-iclb:         [SKIP][87] ([fdo#109441]) -> [PASS][88] +1 similar issue
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-iclb8/igt@kms_psr@psr2_sprite_render.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-iclb2/igt@kms_psr@psr2_sprite_render.html

  * igt@kms_vblank@pipe-b-wait-busy-hang:
    - shard-apl:          [DMESG-WARN][89] ([i915#1982]) -> [PASS][90]
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-apl3/igt@kms_vblank@pipe-b-wait-busy-hang.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-apl2/igt@kms_vblank@pipe-b-wait-busy-hang.html

  * igt@kms_vblank@pipe-c-query-forked-busy:
    - shard-hsw:          [TIMEOUT][91] ([i915#1958]) -> [PASS][92] +3 similar issues
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-hsw7/igt@kms_vblank@pipe-c-query-forked-busy.html
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-hsw6/igt@kms_vblank@pipe-c-query-forked-busy.html

  * igt@perf@invalid-open-flags:
    - shard-tglb:         [SKIP][93] ([i915#405]) -> [PASS][94]
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-tglb6/igt@perf@invalid-open-flags.html
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-tglb7/igt@perf@invalid-open-flags.html
    - shard-apl:          [SKIP][95] ([fdo#109271]) -> [PASS][96]
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-apl4/igt@perf@invalid-open-flags.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-apl4/igt@perf@invalid-open-flags.html
    - shard-iclb:         [SKIP][97] ([i915#405]) -> [PASS][98]
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-iclb7/igt@perf@invalid-open-flags.html
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-iclb7/igt@perf@invalid-open-flags.html
    - shard-glk:          [SKIP][99] ([fdo#109271]) -> [PASS][100]
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-glk8/igt@perf@invalid-open-flags.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-glk1/igt@perf@invalid-open-flags.html
    - shard-kbl:          [SKIP][101] ([fdo#109271]) -> [PASS][102]
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl2/igt@perf@invalid-open-flags.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl7/igt@perf@invalid-open-flags.html

  
#### Warnings ####

  * igt@gen7_exec_parse@chained-batch:
    - shard-snb:          [TIMEOUT][103] ([i915#1958]) -> [SKIP][104] ([fdo#109271]) +2 similar issues
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-snb4/igt@gen7_exec_parse@chained-batch.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-snb5/igt@gen7_exec_parse@chained-batch.html

  * igt@i915_pm_dc@dc6-dpms:
    - shard-tglb:         [FAIL][105] ([i915#454]) -> [SKIP][106] ([i915#468])
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-tglb5/igt@i915_pm_dc@dc6-dpms.html
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-tglb2/igt@i915_pm_dc@dc6-dpms.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-hsw:          [TIMEOUT][107] ([i915#1958]) -> [SKIP][108] ([fdo#109271])
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-hsw7/igt@i915_pm_dc@dc6-psr.html
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-hsw1/igt@i915_pm_dc@dc6-psr.html

  * igt@kms_color_chamelium@pipe-b-ctm-max:
    - shard-snb:          [TIMEOUT][109] ([i915#1958]) -> [SKIP][110] ([fdo#109271] / [fdo#111827])
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-snb4/igt@kms_color_chamelium@pipe-b-ctm-max.html
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-snb1/igt@kms_color_chamelium@pipe-b-ctm-max.html
    - shard-hsw:          [TIMEOUT][111] ([i915#1958]) -> [SKIP][112] ([fdo#109271] / [fdo#111827])
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-hsw7/igt@kms_color_chamelium@pipe-b-ctm-max.html
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-hsw6/igt@kms_color_chamelium@pipe-b-ctm-max.html

  * igt@kms_content_protection@lic:
    - shard-kbl:          [TIMEOUT][113] ([i915#1319]) -> [TIMEOUT][114] ([i915#1319] / [i915#1958])
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl1/igt@kms_content_protection@lic.html
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl3/igt@kms_content_protection@lic.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-kbl:          [DMESG-FAIL][115] ([i915#95]) -> [FAIL][116] ([i915#64])
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl4/igt@kms_fbcon_fbt@fbc-suspend.html
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl2/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
    - shard-kbl:          [DMESG-FAIL][117] ([i915#95]) -> [DMESG-WARN][118] ([i915#180])
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl4/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl4/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html

  * igt@kms_plane_alpha_blend@pipe-b-alpha-basic:
    - shard-apl:          [FAIL][119] ([fdo#108145] / [i915#265]) -> [DMESG-FAIL][120] ([fdo#108145] / [i915#95]) +1 similar issue
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-apl7/igt@kms_plane_alpha_blend@pipe-b-alpha-basic.html
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-apl6/igt@kms_plane_alpha_blend@pipe-b-alpha-basic.html
    - shard-kbl:          [FAIL][121] ([fdo#108145] / [i915#265]) -> [DMESG-FAIL][122] ([fdo#108145] / [i915#95]) +1 similar issue
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl1/igt@kms_plane_alpha_blend@pipe-b-alpha-basic.html
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl1/igt@kms_plane_alpha_blend@pipe-b-alpha-basic.html

  * igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb:
    - shard-apl:          [DMESG-FAIL][123] ([i915#95]) -> [FAIL][124] ([i915#265])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-apl3/igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb.html
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-apl7/igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
  [i915#1525]: https://gitlab.freedesktop.org/drm/intel/issues/1525
  [i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
  [i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155
  [i915#1568]: https://gitlab.freedesktop.org/drm/intel/issues/1568
  [i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1899]: https://gitlab.freedesktop.org/drm/intel/issues/1899
  [i915#1904]: https://gitlab.freedesktop.org/drm/intel/issues/1904
  [i915#1930]: https://gitlab.freedesktop.org/drm/intel/issues/1930
  [i915#1958]: https://gitlab.freedesktop.org/drm/intel/issues/1958
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2036]: https://gitlab.freedesktop.org/drm/intel/issues/2036
  [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
  [i915#31]: https://gitlab.freedesktop.org/drm/intel/issues/31
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#405]: https://gitlab.freedesktop.org/drm/intel/issues/405
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#468]: https://gitlab.freedesktop.org/drm/intel/issues/468
  [i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
  [i915#64]: https://gitlab.freedesktop.org/drm/intel/issues/64
  [i915#794]: https://gitlab.freedesktop.org/drm/intel/issues/794
  [i915#82]: https://gitlab.freedesktop.org/drm/intel/issues/82
  [i915#93]: https://gitlab.freedesktop.org/drm/intel/issues/93
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (11 -> 8)
------------------------------

  Missing    (3): pig-skl-6260u pig-glk-j5005 pig-icl-1065g7 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5711 -> IGTPW_4677
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_8634: 72c556b3627adef8cef3b7a47c32987b96e7f1c2 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4677: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/index.html
  IGT_5711: 90611a0c90afa4a46496c78a4faf9638a1538ac3 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/index.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [igt-dev] ✗ Fi.CI.IGT: failure for series starting with [i-g-t,1/3] lib/core: Print thred:tid with igt_log for non-main threads
  2020-06-16 18:25 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2020-06-17 13:52   ` Arkadiusz Hiler
  0 siblings, 0 replies; 12+ messages in thread
From: Arkadiusz Hiler @ 2020-06-17 13:52 UTC (permalink / raw)
  To: igt-dev

On Tue, Jun 16, 2020 at 06:25:44PM +0000, Patchwork wrote:
> == Series Details ==
> 
> Series: series starting with [i-g-t,1/3] lib/core: Print thred:tid with igt_log for non-main threads
> URL   : https://patchwork.freedesktop.org/series/78422/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_8634_full -> IGTPW_4677_full
> ====================================================
> 
> Summary
> -------
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with IGTPW_4677_full absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in IGTPW_4677_full, please notify your bug team to allow them
>   to document this new failure mode, which will reduce false positives in CI.
> 
>   External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/index.html
> 
> Possible new issues
> -------------------
> 
>   Here are the unknown changes that may have been introduced in IGTPW_4677_full:
> 
> ### IGT changes ###
> 
> #### Possible regressions ####
> 
>   * igt@gem_eio@kms:
>     - shard-hsw:          [PASS][1] -> [FAIL][2]
>    [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-hsw2/igt@gem_eio@kms.html
>    [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-hsw6/igt@gem_eio@kms.html
> 
>   * igt@gem_exec_balancer@bonded-early:
>     - shard-tglb:         [PASS][3] -> [FAIL][4]
>    [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-tglb7/igt@gem_exec_balancer@bonded-early.html
>    [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-tglb1/igt@gem_exec_balancer@bonded-early.html
> 
>   * igt@gem_mmap_offset@clear:
>     - shard-iclb:         [PASS][5] -> [DMESG-WARN][6]
>    [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-iclb6/igt@gem_mmap_offset@clear.html
>    [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-iclb1/igt@gem_mmap_offset@clear.html
> 
>   * igt@i915_pm_rpm@system-suspend-devices:
>     - shard-iclb:         [PASS][7] -> [FAIL][8]
>    [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-iclb3/igt@i915_pm_rpm@system-suspend-devices.html
>    [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-iclb6/igt@i915_pm_rpm@system-suspend-devices.html
> 
>   * igt@perf@i915-ref-count:
>     - shard-hsw:          [PASS][9] -> [INCOMPLETE][10] +1 similar issue
>    [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-hsw5/igt@perf@i915-ref-count.html
>    [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-hsw1/igt@perf@i915-ref-count.html
> 
>   
> Known issues
> ------------
> 
>   Here are the changes found in IGTPW_4677_full that come from known issues:
> 
> ### IGT changes ###
> 
> #### Issues hit ####
> 
>   * igt@gem_ctx_isolation@preservation-s3@rcs0:
>     - shard-kbl:          [PASS][11] -> [INCOMPLETE][12] ([i915#794])
>    [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl2/igt@gem_ctx_isolation@preservation-s3@rcs0.html
>    [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl4/igt@gem_ctx_isolation@preservation-s3@rcs0.html
>     - shard-iclb:         [PASS][13] -> [FAIL][14] ([fdo#103375]) +3 similar issues
>    [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-iclb5/igt@gem_ctx_isolation@preservation-s3@rcs0.html
>    [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-iclb6/igt@gem_ctx_isolation@preservation-s3@rcs0.html
> 
>   * igt@gem_exec_reloc@basic-concurrent0:
>     - shard-glk:          [PASS][15] -> [FAIL][16] ([i915#1930])
>    [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-glk2/igt@gem_exec_reloc@basic-concurrent0.html
>    [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-glk5/igt@gem_exec_reloc@basic-concurrent0.html
> 
>   * igt@i915_module_load@reload:
>     - shard-tglb:         [PASS][17] -> [DMESG-WARN][18] ([i915#402]) +6 similar issues
>    [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-tglb6/igt@i915_module_load@reload.html
>    [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-tglb2/igt@i915_module_load@reload.html
> 
>   * igt@i915_pm_dc@dc3co-vpb-simulation:
>     - shard-tglb:         [PASS][19] -> [SKIP][20] ([i915#1904])
>    [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-tglb2/igt@i915_pm_dc@dc3co-vpb-simulation.html
>    [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-tglb8/igt@i915_pm_dc@dc3co-vpb-simulation.html
> 
>   * igt@i915_pm_dc@dc5-psr:
>     - shard-iclb:         [PASS][21] -> [FAIL][22] ([i915#1899])
>    [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-iclb6/igt@i915_pm_dc@dc5-psr.html
>    [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-iclb7/igt@i915_pm_dc@dc5-psr.html
>     - shard-tglb:         [PASS][23] -> [FAIL][24] ([i915#1899])
>    [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-tglb3/igt@i915_pm_dc@dc5-psr.html
>    [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-tglb6/igt@i915_pm_dc@dc5-psr.html
> 
>   * igt@i915_pm_rc6_residency@rc6-idle:
>     - shard-tglb:         [PASS][25] -> [FAIL][26] ([i915#1568])
>    [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-tglb3/igt@i915_pm_rc6_residency@rc6-idle.html
>    [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-tglb5/igt@i915_pm_rc6_residency@rc6-idle.html
> 
>   * igt@kms_big_fb@linear-64bpp-rotate-180:
>     - shard-glk:          [PASS][27] -> [DMESG-FAIL][28] ([i915#118] / [i915#95])
>    [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-glk9/igt@kms_big_fb@linear-64bpp-rotate-180.html
>    [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-glk8/igt@kms_big_fb@linear-64bpp-rotate-180.html
> 
>   * igt@kms_big_fb@linear-8bpp-rotate-180:
>     - shard-apl:          [PASS][29] -> [DMESG-WARN][30] ([i915#1982])
>    [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-apl6/igt@kms_big_fb@linear-8bpp-rotate-180.html
>    [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-apl4/igt@kms_big_fb@linear-8bpp-rotate-180.html
> 
>   * igt@kms_color@pipe-b-ctm-max:
>     - shard-apl:          [PASS][31] -> [DMESG-WARN][32] ([i915#95]) +42 similar issues
>    [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-apl4/igt@kms_color@pipe-b-ctm-max.html
>    [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-apl1/igt@kms_color@pipe-b-ctm-max.html
> 
>   * igt@kms_cursor_crc@pipe-d-cursor-suspend:
>     - shard-tglb:         [PASS][33] -> [INCOMPLETE][34] ([i915#1602])
>    [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-tglb8/igt@kms_cursor_crc@pipe-d-cursor-suspend.html
>    [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-tglb2/igt@kms_cursor_crc@pipe-d-cursor-suspend.html
> 
>   * igt@kms_flip@flip-vs-suspend@c-dp1:
>     - shard-kbl:          [PASS][35] -> [DMESG-WARN][36] ([i915#180]) +5 similar issues
>    [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl1/igt@kms_flip@flip-vs-suspend@c-dp1.html
>    [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl1/igt@kms_flip@flip-vs-suspend@c-dp1.html
> 
>   * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-cpu:
>     - shard-iclb:         [PASS][37] -> [DMESG-WARN][38] ([i915#1982])
>    [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-cpu.html
>    [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-iclb3/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-cpu.html
> 
>   * igt@kms_plane_cursor@pipe-a-viewport-size-64:
>     - shard-kbl:          [PASS][39] -> [DMESG-FAIL][40] ([i915#95]) +1 similar issue
>    [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl6/igt@kms_plane_cursor@pipe-a-viewport-size-64.html
>    [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl6/igt@kms_plane_cursor@pipe-a-viewport-size-64.html
>     - shard-apl:          [PASS][41] -> [DMESG-FAIL][42] ([i915#95])
>    [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-apl3/igt@kms_plane_cursor@pipe-a-viewport-size-64.html
>    [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-apl8/igt@kms_plane_cursor@pipe-a-viewport-size-64.html
> 
>   * igt@kms_psr2_su@frontbuffer:
>     - shard-iclb:         [PASS][43] -> [SKIP][44] ([fdo#109642] / [fdo#111068]) +1 similar issue
>    [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-iclb2/igt@kms_psr2_su@frontbuffer.html
>    [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-iclb6/igt@kms_psr2_su@frontbuffer.html
> 
>   * igt@kms_setmode@basic:
>     - shard-kbl:          [PASS][45] -> [FAIL][46] ([i915#31])
>    [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl3/igt@kms_setmode@basic.html
>    [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl1/igt@kms_setmode@basic.html
> 
>   * igt@perf@blocking-parameterized:
>     - shard-iclb:         [PASS][47] -> [FAIL][48] ([i915#1542])
>    [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-iclb2/igt@perf@blocking-parameterized.html
>    [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-iclb1/igt@perf@blocking-parameterized.html
> 
>   * igt@syncobj_basic@bad-flags-fd-to-handle:
>     - shard-kbl:          [PASS][49] -> [DMESG-WARN][50] ([i915#93] / [i915#95]) +50 similar issues
>    [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8634/shard-kbl2/igt@syncobj_basic@bad-flags-fd-to-handle.html
>    [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4677/shard-kbl7/igt@syncobj_basic@bad-flags-fd-to-handle.html

None of those look like they have been caused by the changes in thread
behavior, even after looking at the code. I'll spin a re-run just to be sure.

-- 
Cheers,
Arek
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/3] lib/core: Print thred:tid with igt_log for non-main threads (rev2)
  2020-06-16 14:14 [igt-dev] [PATCH i-g-t 1/3] lib/core: Print thred:tid with igt_log for non-main threads Arkadiusz Hiler
                   ` (4 preceding siblings ...)
  2020-06-16 18:25 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2020-06-17 14:37 ` Patchwork
  2020-06-17 16:44 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  2020-06-18 12:51 ` [igt-dev] [PATCH i-g-t 1/3] lib/core: Print thred:tid with igt_log for non-main threads Petri Latvala
  7 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2020-06-17 14:37 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/3] lib/core: Print thred:tid with igt_log for non-main threads (rev2)
URL   : https://patchwork.freedesktop.org/series/78422/
State : success

== Summary ==

CI Bug Log - changes from IGT_5712 -> IGTPW_4679
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/index.html

Known issues
------------

  Here are the changes found in IGTPW_4679 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_close_race@basic-threads:
    - fi-pnv-d510:        [PASS][1] -> [INCOMPLETE][2] ([CI#80] / [i915#299])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/fi-pnv-d510/igt@gem_close_race@basic-threads.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/fi-pnv-d510/igt@gem_close_race@basic-threads.html

  * igt@gem_exec_suspend@basic-s0:
    - fi-tgl-u2:          [PASS][3] -> [FAIL][4] ([i915#1888])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/fi-tgl-u2/igt@gem_exec_suspend@basic-s0.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/fi-tgl-u2/igt@gem_exec_suspend@basic-s0.html

  * igt@i915_pm_backlight@basic-brightness:
    - fi-whl-u:           [PASS][5] -> [DMESG-WARN][6] ([i915#95])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/fi-whl-u/igt@i915_pm_backlight@basic-brightness.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/fi-whl-u/igt@i915_pm_backlight@basic-brightness.html

  * igt@i915_pm_rpm@module-reload:
    - fi-glk-dsi:         [PASS][7] -> [DMESG-WARN][8] ([i915#1982])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/fi-glk-dsi/igt@i915_pm_rpm@module-reload.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/fi-glk-dsi/igt@i915_pm_rpm@module-reload.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence:
    - fi-tgl-u2:          [PASS][9] -> [DMESG-WARN][10] ([i915#402])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/fi-tgl-u2/igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/fi-tgl-u2/igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence.html

  
#### Possible fixes ####

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-bsw-kefka:       [DMESG-WARN][11] ([i915#1982]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/fi-bsw-kefka/igt@i915_pm_rpm@basic-pci-d3-state.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/fi-bsw-kefka/igt@i915_pm_rpm@basic-pci-d3-state.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - fi-icl-guc:         [DMESG-WARN][13] ([i915#1982]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/fi-icl-guc/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/fi-icl-guc/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  
#### Warnings ####

  * igt@kms_force_connector_basic@force-edid:
    - fi-kbl-x1275:       [DMESG-WARN][15] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][16] ([i915#62] / [i915#92]) +3 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/fi-kbl-x1275/igt@kms_force_connector_basic@force-edid.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/fi-kbl-x1275/igt@kms_force_connector_basic@force-edid.html

  * igt@prime_vgem@basic-fence-flip:
    - fi-kbl-x1275:       [DMESG-WARN][17] ([i915#62] / [i915#92]) -> [DMESG-WARN][18] ([i915#62] / [i915#92] / [i915#95]) +2 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/fi-kbl-x1275/igt@prime_vgem@basic-fence-flip.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/fi-kbl-x1275/igt@prime_vgem@basic-fence-flip.html

  
  [CI#80]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/80
  [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#299]: https://gitlab.freedesktop.org/drm/intel/issues/299
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (48 -> 42)
------------------------------

  Missing    (6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5712 -> IGTPW_4679

  CI-20190529: 20190529
  CI_DRM_8639: 47584e59cf51ec499d68a4cefbaf447448ce2894 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4679: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/index.html
  IGT_5712: eba1135ddd35f9d3097ed91032aefe8f9a9f9d02 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/index.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [igt-dev] ✗ Fi.CI.IGT: failure for series starting with [i-g-t,1/3] lib/core: Print thred:tid with igt_log for non-main threads (rev2)
  2020-06-16 14:14 [igt-dev] [PATCH i-g-t 1/3] lib/core: Print thred:tid with igt_log for non-main threads Arkadiusz Hiler
                   ` (5 preceding siblings ...)
  2020-06-17 14:37 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/3] lib/core: Print thred:tid with igt_log for non-main threads (rev2) Patchwork
@ 2020-06-17 16:44 ` Patchwork
  2020-06-18 12:51 ` [igt-dev] [PATCH i-g-t 1/3] lib/core: Print thred:tid with igt_log for non-main threads Petri Latvala
  7 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2020-06-17 16:44 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/3] lib/core: Print thred:tid with igt_log for non-main threads (rev2)
URL   : https://patchwork.freedesktop.org/series/78422/
State : failure

== Summary ==

CI Bug Log - changes from IGT_5712_full -> IGTPW_4679_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_4679_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_4679_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_4679_full:

### IGT changes ###

#### Possible regressions ####

  * igt@gem_exec_balancer@bonded-early:
    - shard-kbl:          [PASS][1] -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-kbl4/igt@gem_exec_balancer@bonded-early.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-kbl4/igt@gem_exec_balancer@bonded-early.html

  
Known issues
------------

  Here are the changes found in IGTPW_4679_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_gttfill@all:
    - shard-glk:          [PASS][3] -> [DMESG-WARN][4] ([i915#118] / [i915#95])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-glk4/igt@gem_exec_gttfill@all.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-glk1/igt@gem_exec_gttfill@all.html

  * igt@gem_exec_schedule@implicit-boths@rcs0:
    - shard-snb:          [PASS][5] -> [INCOMPLETE][6] ([i915#82])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-snb1/igt@gem_exec_schedule@implicit-boths@rcs0.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-snb6/igt@gem_exec_schedule@implicit-boths@rcs0.html

  * igt@gem_mmap_offset@basic-uaf:
    - shard-apl:          [PASS][7] -> [DMESG-WARN][8] ([i915#95]) +41 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-apl3/igt@gem_mmap_offset@basic-uaf.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-apl4/igt@gem_mmap_offset@basic-uaf.html

  * igt@gem_mmap_wc@copy:
    - shard-kbl:          [PASS][9] -> [DMESG-WARN][10] ([i915#93] / [i915#95]) +47 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-kbl6/igt@gem_mmap_wc@copy.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-kbl6/igt@gem_mmap_wc@copy.html

  * igt@gen9_exec_parse@allowed-all:
    - shard-glk:          [PASS][11] -> [DMESG-WARN][12] ([i915#1436] / [i915#716])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-glk1/igt@gen9_exec_parse@allowed-all.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-glk6/igt@gen9_exec_parse@allowed-all.html
    - shard-kbl:          [PASS][13] -> [DMESG-WARN][14] ([i915#1436] / [i915#716])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-kbl3/igt@gen9_exec_parse@allowed-all.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-kbl6/igt@gen9_exec_parse@allowed-all.html

  * igt@i915_pm_dc@dc5-psr:
    - shard-iclb:         [PASS][15] -> [FAIL][16] ([i915#1899])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-iclb6/igt@i915_pm_dc@dc5-psr.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-iclb7/igt@i915_pm_dc@dc5-psr.html

  * igt@kms_big_fb@linear-32bpp-rotate-0:
    - shard-kbl:          [PASS][17] -> [DMESG-WARN][18] ([i915#1982]) +1 similar issue
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-kbl4/igt@kms_big_fb@linear-32bpp-rotate-0.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-kbl6/igt@kms_big_fb@linear-32bpp-rotate-0.html

  * igt@kms_big_fb@x-tiled-64bpp-rotate-0:
    - shard-glk:          [PASS][19] -> [DMESG-FAIL][20] ([i915#118] / [i915#95])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-glk7/igt@kms_big_fb@x-tiled-64bpp-rotate-0.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-glk8/igt@kms_big_fb@x-tiled-64bpp-rotate-0.html

  * igt@kms_cursor_crc@pipe-a-cursor-128x128-offscreen:
    - shard-kbl:          [PASS][21] -> [DMESG-FAIL][22] ([i915#54] / [i915#95]) +4 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-kbl1/igt@kms_cursor_crc@pipe-a-cursor-128x128-offscreen.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-kbl2/igt@kms_cursor_crc@pipe-a-cursor-128x128-offscreen.html

  * igt@kms_cursor_crc@pipe-a-cursor-dpms:
    - shard-kbl:          [PASS][23] -> [FAIL][24] ([i915#54])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-kbl4/igt@kms_cursor_crc@pipe-a-cursor-dpms.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-kbl3/igt@kms_cursor_crc@pipe-a-cursor-dpms.html
    - shard-apl:          [PASS][25] -> [FAIL][26] ([i915#54])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-apl1/igt@kms_cursor_crc@pipe-a-cursor-dpms.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-apl6/igt@kms_cursor_crc@pipe-a-cursor-dpms.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy:
    - shard-hsw:          [PASS][27] -> [FAIL][28] ([i915#96])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-hsw4/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-hsw8/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-legacy:
    - shard-glk:          [PASS][29] -> [INCOMPLETE][30] ([i915#58] / [k.org#198133])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-glk4/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-glk6/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html

  * igt@kms_draw_crc@draw-method-xrgb8888-blt-untiled:
    - shard-apl:          [PASS][31] -> [DMESG-FAIL][32] ([i915#54] / [i915#95]) +1 similar issue
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-apl7/igt@kms_draw_crc@draw-method-xrgb8888-blt-untiled.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-apl3/igt@kms_draw_crc@draw-method-xrgb8888-blt-untiled.html

  * igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a2:
    - shard-glk:          [PASS][33] -> [FAIL][34] ([i915#79])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-glk1/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a2.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-glk5/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a2.html

  * igt@kms_flip@flip-vs-suspend@c-dp1:
    - shard-kbl:          [PASS][35] -> [DMESG-WARN][36] ([i915#180]) +7 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-kbl4/igt@kms_flip@flip-vs-suspend@c-dp1.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-kbl1/igt@kms_flip@flip-vs-suspend@c-dp1.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-gtt:
    - shard-tglb:         [PASS][37] -> [DMESG-WARN][38] ([i915#1982])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-tglb5/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-gtt.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-tglb1/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-gtt.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence:
    - shard-kbl:          [PASS][39] -> [DMESG-FAIL][40] ([i915#95])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-kbl7/igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-kbl4/igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence.html

  * igt@kms_plane_cursor@pipe-a-overlay-size-64:
    - shard-apl:          [PASS][41] -> [DMESG-FAIL][42] ([i915#95]) +1 similar issue
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-apl2/igt@kms_plane_cursor@pipe-a-overlay-size-64.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-apl7/igt@kms_plane_cursor@pipe-a-overlay-size-64.html

  * igt@kms_psr@psr2_primary_mmap_gtt:
    - shard-iclb:         [PASS][43] -> [SKIP][44] ([fdo#109441]) +1 similar issue
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-iclb2/igt@kms_psr@psr2_primary_mmap_gtt.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-iclb3/igt@kms_psr@psr2_primary_mmap_gtt.html

  * igt@kms_vblank@pipe-d-ts-continuation-dpms-suspend:
    - shard-tglb:         [PASS][45] -> [INCOMPLETE][46] ([i915#1602])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-tglb2/igt@kms_vblank@pipe-d-ts-continuation-dpms-suspend.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-tglb8/igt@kms_vblank@pipe-d-ts-continuation-dpms-suspend.html

  * igt@syncobj_wait@invalid-multi-wait-all-unsubmitted-submitted:
    - shard-tglb:         [PASS][47] -> [DMESG-WARN][48] ([i915#402])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-tglb7/igt@syncobj_wait@invalid-multi-wait-all-unsubmitted-submitted.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-tglb5/igt@syncobj_wait@invalid-multi-wait-all-unsubmitted-submitted.html

  
#### Possible fixes ####

  * igt@gem_ctx_persistence@legacy-engines-mixed-process@bsd1:
    - shard-tglb:         [FAIL][49] ([i915#1528]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-tglb2/igt@gem_ctx_persistence@legacy-engines-mixed-process@bsd1.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-tglb6/igt@gem_ctx_persistence@legacy-engines-mixed-process@bsd1.html

  * igt@gem_eio@kms:
    - shard-snb:          [DMESG-WARN][51] ([i915#1982]) -> [PASS][52]
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-snb1/igt@gem_eio@kms.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-snb2/igt@gem_eio@kms.html

  * igt@gem_exec_whisper@basic-contexts:
    - shard-iclb:         [DMESG-WARN][53] ([i915#1982]) -> [PASS][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-iclb2/igt@gem_exec_whisper@basic-contexts.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-iclb8/igt@gem_exec_whisper@basic-contexts.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         [FAIL][55] ([i915#1899]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-iclb2/igt@i915_pm_dc@dc6-psr.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-iclb4/igt@i915_pm_dc@dc6-psr.html

  * igt@i915_suspend@debugfs-reader:
    - shard-tglb:         [INCOMPLETE][57] ([i915#1602] / [i915#456]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-tglb3/igt@i915_suspend@debugfs-reader.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-tglb2/igt@i915_suspend@debugfs-reader.html

  * igt@kms_addfb_basic@bad-pitch-128:
    - shard-snb:          [TIMEOUT][59] ([i915#1958]) -> [PASS][60] +4 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-snb6/igt@kms_addfb_basic@bad-pitch-128.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-snb6/igt@kms_addfb_basic@bad-pitch-128.html
    - shard-hsw:          [TIMEOUT][61] ([i915#1958]) -> [PASS][62] +4 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-hsw2/igt@kms_addfb_basic@bad-pitch-128.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-hsw2/igt@kms_addfb_basic@bad-pitch-128.html

  * igt@kms_big_fb@x-tiled-8bpp-rotate-0:
    - shard-apl:          [DMESG-WARN][63] ([i915#1982]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-apl8/igt@kms_big_fb@x-tiled-8bpp-rotate-0.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-apl6/igt@kms_big_fb@x-tiled-8bpp-rotate-0.html
    - shard-glk:          [DMESG-WARN][65] ([i915#1982]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-glk5/igt@kms_big_fb@x-tiled-8bpp-rotate-0.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-glk5/igt@kms_big_fb@x-tiled-8bpp-rotate-0.html

  * igt@kms_cursor_edge_walk@pipe-a-64x64-bottom-edge:
    - shard-apl:          [DMESG-WARN][67] ([i915#95]) -> [PASS][68] +42 similar issues
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-apl6/igt@kms_cursor_edge_walk@pipe-a-64x64-bottom-edge.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-apl7/igt@kms_cursor_edge_walk@pipe-a-64x64-bottom-edge.html

  * igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-xtiled:
    - shard-kbl:          [DMESG-WARN][69] ([i915#93] / [i915#95]) -> [PASS][70] +41 similar issues
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-kbl2/igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-xtiled.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-kbl2/igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-xtiled.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
    - shard-kbl:          [DMESG-WARN][71] ([i915#180]) -> [PASS][72] +5 similar issues
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-kbl6/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-kbl2/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt:
    - shard-apl:          [FAIL][73] ([i915#49]) -> [PASS][74]
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-apl1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-apl1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt.html
    - shard-kbl:          [FAIL][75] ([i915#49]) -> [PASS][76]
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-kbl4/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu:
    - shard-tglb:         [DMESG-WARN][77] ([i915#1982]) -> [PASS][78]
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-tglb5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-tglb3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu.html

  * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-mid:
    - shard-kbl:          [DMESG-FAIL][79] ([fdo#108145] / [i915#95]) -> [PASS][80] +1 similar issue
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-kbl1/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-mid.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-kbl2/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-mid.html

  * igt@kms_plane_alpha_blend@pipe-a-coverage-vs-premult-vs-constant:
    - shard-apl:          [DMESG-FAIL][81] ([fdo#108145] / [i915#95]) -> [PASS][82] +1 similar issue
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-apl3/igt@kms_plane_alpha_blend@pipe-a-coverage-vs-premult-vs-constant.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-apl8/igt@kms_plane_alpha_blend@pipe-a-coverage-vs-premult-vs-constant.html

  * igt@kms_psr@psr2_cursor_plane_onoff:
    - shard-iclb:         [SKIP][83] ([fdo#109441]) -> [PASS][84]
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-iclb1/igt@kms_psr@psr2_cursor_plane_onoff.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-iclb2/igt@kms_psr@psr2_cursor_plane_onoff.html

  * igt@kms_vblank@pipe-b-ts-continuation-dpms-suspend:
    - shard-apl:          [INCOMPLETE][85] -> [PASS][86]
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-apl6/igt@kms_vblank@pipe-b-ts-continuation-dpms-suspend.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-apl2/igt@kms_vblank@pipe-b-ts-continuation-dpms-suspend.html

  * igt@perf_pmu@module-unload:
    - shard-tglb:         [DMESG-WARN][87] ([i915#402]) -> [PASS][88] +1 similar issue
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-tglb1/igt@perf_pmu@module-unload.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-tglb5/igt@perf_pmu@module-unload.html

  * igt@perf_pmu@semaphore-busy@rcs0:
    - shard-kbl:          [FAIL][89] ([i915#1820] / [i915#93] / [i915#95]) -> [PASS][90]
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-kbl7/igt@perf_pmu@semaphore-busy@rcs0.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-kbl7/igt@perf_pmu@semaphore-busy@rcs0.html

  
#### Warnings ####

  * igt@gem_ctx_persistence@engines-cleanup:
    - shard-hsw:          [SKIP][91] ([fdo#109271] / [i915#1099]) -> [TIMEOUT][92] ([i915#1958])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-hsw1/igt@gem_ctx_persistence@engines-cleanup.html
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-hsw5/igt@gem_ctx_persistence@engines-cleanup.html
    - shard-snb:          [SKIP][93] ([fdo#109271] / [i915#1099]) -> [TIMEOUT][94] ([i915#1958])
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-snb6/igt@gem_ctx_persistence@engines-cleanup.html
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-snb1/igt@gem_ctx_persistence@engines-cleanup.html

  * igt@i915_pm_dc@dc3co-vpb-simulation:
    - shard-iclb:         [SKIP][95] ([i915#658]) -> [SKIP][96] ([i915#588])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-iclb6/igt@i915_pm_dc@dc3co-vpb-simulation.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-iclb2/igt@i915_pm_dc@dc3co-vpb-simulation.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-tglb:         [FAIL][97] ([i915#1899]) -> [FAIL][98] ([i915#454])
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-tglb5/igt@i915_pm_dc@dc6-psr.html
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-tglb6/igt@i915_pm_dc@dc6-psr.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-kbl:          [TIMEOUT][99] ([i915#1319] / [i915#1958]) -> [TIMEOUT][100] ([i915#1319]) +1 similar issue
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-kbl2/igt@kms_content_protection@atomic-dpms.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-kbl6/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_content_protection@lic:
    - shard-apl:          [FAIL][101] ([fdo#110321]) -> [DMESG-FAIL][102] ([fdo#110321] / [i915#95])
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-apl3/igt@kms_content_protection@lic.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-apl1/igt@kms_content_protection@lic.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-pgflip-blt:
    - shard-snb:          [SKIP][103] ([fdo#109271]) -> [TIMEOUT][104] ([i915#1958]) +4 similar issues
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-snb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-pgflip-blt.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-snb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-pgflip-blt.html
    - shard-hsw:          [SKIP][105] ([fdo#109271]) -> [TIMEOUT][106] ([i915#1958]) +4 similar issues
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-hsw4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-pgflip-blt.html
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-hsw5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-pgflip-blt.html

  * igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb:
    - shard-apl:          [FAIL][107] ([fdo#108145] / [i915#265]) -> [DMESG-FAIL][108] ([fdo#108145] / [i915#95]) +1 similar issue
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-apl6/igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb.html
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-apl3/igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb.html

  * igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb:
    - shard-apl:          [DMESG-FAIL][109] ([i915#95]) -> [FAIL][110] ([i915#265])
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-apl6/igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb.html
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-apl1/igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb.html
    - shard-kbl:          [DMESG-FAIL][111] ([i915#95]) -> [FAIL][112] ([i915#265])
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-kbl6/igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb.html
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-kbl6/igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb.html

  * igt@kms_vblank@pipe-a-ts-continuation-suspend:
    - shard-kbl:          [DMESG-WARN][113] ([i915#93] / [i915#95]) -> [DMESG-WARN][114] ([i915#180])
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5712/shard-kbl4/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/shard-kbl7/igt@kms_vblank@pipe-a-ts-continuation-suspend.html

  
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#110321]: https://bugs.freedesktop.org/show_bug.cgi?id=110321
  [i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
  [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
  [i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
  [i915#1528]: https://gitlab.freedesktop.org/drm/intel/issues/1528
  [i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1820]: https://gitlab.freedesktop.org/drm/intel/issues/1820
  [i915#1899]: https://gitlab.freedesktop.org/drm/intel/issues/1899
  [i915#1958]: https://gitlab.freedesktop.org/drm/intel/issues/1958
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#456]: https://gitlab.freedesktop.org/drm/intel/issues/456
  [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
  [i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
  [i915#58]: https://gitlab.freedesktop.org/drm/intel/issues/58
  [i915#588]: https://gitlab.freedesktop.org/drm/intel/issues/588
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#82]: https://gitlab.freedesktop.org/drm/intel/issues/82
  [i915#93]: https://gitlab.freedesktop.org/drm/intel/issues/93
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
  [i915#96]: https://gitlab.freedesktop.org/drm/intel/issues/96
  [k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133


Participating hosts (8 -> 8)
------------------------------

  No changes in participating hosts


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5712 -> IGTPW_4679

  CI-20190529: 20190529
  CI_DRM_8639: 47584e59cf51ec499d68a4cefbaf447448ce2894 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4679: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/index.html
  IGT_5712: eba1135ddd35f9d3097ed91032aefe8f9a9f9d02 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4679/index.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 1/3] lib/core: Print thred:tid with igt_log for non-main threads
  2020-06-16 14:14 [igt-dev] [PATCH i-g-t 1/3] lib/core: Print thred:tid with igt_log for non-main threads Arkadiusz Hiler
                   ` (6 preceding siblings ...)
  2020-06-17 16:44 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2020-06-18 12:51 ` Petri Latvala
  7 siblings, 0 replies; 12+ messages in thread
From: Petri Latvala @ 2020-06-18 12:51 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev

On Tue, Jun 16, 2020 at 05:14:48PM +0300, Arkadiusz Hiler wrote:
> So that we know what's the source of messages.
> 
> igt_thread.c is created to facilitate more threading-related
> functionality that will come in the following patch.
> 
> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>

"lib/core: Print thred:tid with igt_log for non-main threads"

Typo, thred -> thread

Otherwise,
Reviewed-by: Petri Latvala <petri.latvala@intel.com>

> ---
>  lib/Makefile.sources |  2 ++
>  lib/igt_core.c       | 44 +++++++++++++++++++++++++++++++++++++-------
>  lib/igt_thread.c     | 39 +++++++++++++++++++++++++++++++++++++++
>  lib/igt_thread.h     | 24 ++++++++++++++++++++++++
>  lib/meson.build      |  1 +
>  5 files changed, 103 insertions(+), 7 deletions(-)
>  create mode 100644 lib/igt_thread.c
>  create mode 100644 lib/igt_thread.h
> 
> diff --git a/lib/Makefile.sources b/lib/Makefile.sources
> index 09aedb40..00374c97 100644
> --- a/lib/Makefile.sources
> +++ b/lib/Makefile.sources
> @@ -64,6 +64,8 @@ lib_source_list =	 	\
>  	igt_sysfs.h		\
>  	igt_sysrq.c		\
>  	igt_sysrq.h		\
> +	igt_thread.c		\
> +	igt_thread.h		\
>  	igt_x86.h		\
>  	igt_x86.c		\
>  	igt_vec.c		\
> diff --git a/lib/igt_core.c b/lib/igt_core.c
> index cbcc3f4d..c95295c7 100644
> --- a/lib/igt_core.c
> +++ b/lib/igt_core.c
> @@ -72,6 +72,7 @@
>  #include "igt_rc.h"
>  #include "igt_list.h"
>  #include "igt_device_scan.h"
> +#include "igt_thread.h"
>  
>  #define UNW_LOCAL_ONLY
>  #include <libunwind.h>
> @@ -2687,6 +2688,12 @@ void igt_log(const char *domain, enum igt_log_level level, const char *format, .
>  	va_end(args);
>  }
>  
> +static pthread_key_t __vlog_line_continuation;
> +
> +igt_constructor {
> +	pthread_key_create(&__vlog_line_continuation, NULL);
> +}
> +
>  /**
>   * igt_vlog:
>   * @domain: the log domain, or NULL for no domain
> @@ -2705,6 +2712,7 @@ void igt_vlog(const char *domain, enum igt_log_level level, const char *format,
>  {
>  	FILE *file;
>  	char *line, *formatted_line;
> +	char *thread_id;
>  	const char *program_name;
>  	const char *igt_log_level_str[] = {
>  		"DEBUG",
> @@ -2713,7 +2721,8 @@ void igt_vlog(const char *domain, enum igt_log_level level, const char *format,
>  		"CRITICAL",
>  		"NONE"
>  	};
> -	static bool line_continuation = false;
> +
> +	static pthread_mutex_t print_mutex = PTHREAD_MUTEX_INITIALIZER;
>  
>  	assert(format);
>  
> @@ -2723,23 +2732,37 @@ void igt_vlog(const char *domain, enum igt_log_level level, const char *format,
>  	program_name = command_str;
>  #endif
>  
> +
> +	if (igt_thread_is_main()) {
> +		thread_id = strdup("");
> +	} else {
> +		if (asprintf(&thread_id, "[thread:%d] ", gettid()) == -1)
> +			thread_id = NULL;
> +	}
> +
> +	if (!thread_id)
> +		goto out;
> +
>  	if (list_subtests && level <= IGT_LOG_WARN)
>  		return;
>  
>  	if (vasprintf(&line, format, args) == -1)
>  		return;
>  
> -	if (line_continuation) {
> +	if (pthread_getspecific(__vlog_line_continuation)) {
>  		formatted_line = strdup(line);
>  		if (!formatted_line)
>  			goto out;
> -	} else if (asprintf(&formatted_line, "(%s:%d) %s%s%s: %s", program_name,
> -		     getpid(), (domain) ? domain : "", (domain) ? "-" : "",
> +	} else if (asprintf(&formatted_line, "(%s:%d) %s%s%s%s: %s", program_name,
> +		     getpid(), thread_id, (domain) ? domain : "", (domain) ? "-" : "",
>  		     igt_log_level_str[level], line) == -1) {
>  		goto out;
>  	}
>  
> -	line_continuation = line[strlen(line) - 1] != '\n';
> +	if (line[strlen(line) - 1] == '\n')
> +		pthread_setspecific(__vlog_line_continuation, (void*) false);
> +	else
> +		pthread_setspecific(__vlog_line_continuation, (void*) true);
>  
>  	/* append log buffer */
>  	_igt_log_buffer_append(formatted_line);
> @@ -2758,6 +2781,8 @@ void igt_vlog(const char *domain, enum igt_log_level level, const char *format,
>  			goto out;
>  	}
>  
> +	pthread_mutex_lock(&print_mutex);
> +
>  	/* use stderr for warning messages and above */
>  	if (level >= IGT_LOG_WARN) {
>  		file = stderr;
> @@ -2768,13 +2793,18 @@ void igt_vlog(const char *domain, enum igt_log_level level, const char *format,
>  
>  	/* prepend all except information messages with process, domain and log
>  	 * level information */
> -	if (level != IGT_LOG_INFO)
> +	if (level != IGT_LOG_INFO) {
>  		fwrite(formatted_line, sizeof(char), strlen(formatted_line),
>  		       file);
> -	else
> +	} else {
> +		fwrite(thread_id, sizeof(char), strlen(thread_id), file);
>  		fwrite(line, sizeof(char), strlen(line), file);
> +	}
> +
> +	pthread_mutex_unlock(&print_mutex);
>  
>  out:
> +	free(thread_id);
>  	free(line);
>  }
>  
> diff --git a/lib/igt_thread.c b/lib/igt_thread.c
> new file mode 100644
> index 00000000..deab6225
> --- /dev/null
> +++ b/lib/igt_thread.c
> @@ -0,0 +1,39 @@
> +/*
> + * Copyright © 2020 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the next
> + * paragraph) shall be included in all copies or substantial portions of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
> + * IN THE SOFTWARE.
> + */
> +
> +#include <pthread.h>
> +
> +#include "igt_core.h"
> +#include "igt_thread.h"
> +
> +static pthread_key_t __igt_is_main_thread;
> +
> +bool igt_thread_is_main(void)
> +{
> +	return pthread_getspecific(__igt_is_main_thread) != NULL;
> +}
> +
> +igt_constructor {
> +	pthread_key_create(&__igt_is_main_thread, NULL);
> +	pthread_setspecific(__igt_is_main_thread, (void*) 0x1);
> +}
> diff --git a/lib/igt_thread.h b/lib/igt_thread.h
> new file mode 100644
> index 00000000..b16f803f
> --- /dev/null
> +++ b/lib/igt_thread.h
> @@ -0,0 +1,24 @@
> +/*
> + * Copyright © 2020 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the next
> + * paragraph) shall be included in all copies or substantial portions of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
> + * IN THE SOFTWARE.
> + */
> +
> +bool igt_thread_is_main(void);
> diff --git a/lib/meson.build b/lib/meson.build
> index 6cf78663..6c71ae3d 100644
> --- a/lib/meson.build
> +++ b/lib/meson.build
> @@ -26,6 +26,7 @@ lib_sources = [
>  	'igt_syncobj.c',
>  	'igt_sysfs.c',
>  	'igt_sysrq.c',
> +	'igt_thread.c',
>  	'igt_vec.c',
>  	'igt_vgem.c',
>  	'igt_x86.c',
> -- 
> 2.25.4
> 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 2/3] lib/core: Handle asserts in threads
  2020-06-16 14:14 ` [igt-dev] [PATCH i-g-t 2/3] lib/core: Handle asserts in threads Arkadiusz Hiler
@ 2020-06-18 12:59   ` Petri Latvala
  0 siblings, 0 replies; 12+ messages in thread
From: Petri Latvala @ 2020-06-18 12:59 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev

On Tue, Jun 16, 2020 at 05:14:49PM +0300, Arkadiusz Hiler wrote:
> Since IGT is using magic control blocks (igt_subtest et al.) asserts
> jump out the them using longjmp() causing a bunch of confusing messages
> and occasionally crashing the whole process.
> 
> This is not the behavior we want :-)
> 
> With this patch:
> 
> 1. simple_main, dynamic and subtest each clears the thread failure state
>    at the start
> 
> 2. each of those blocks also asserts no thread failures at the end
> 
> 3. igt_assert() in non-main thread prints out the error + stacktrace
>    and marks that we have failed thread
> 
> Issue: https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/55
> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
> ---
>  lib/igt_core.c               |  12 +++
>  lib/igt_thread.c             |  30 ++++++
>  lib/igt_thread.h             |   4 +
>  lib/tests/igt_tests_common.h |  22 ++++
>  lib/tests/igt_thread.c       | 194 +++++++++++++++++++++++++++++++++++
>  lib/tests/meson.build        |   1 +
>  6 files changed, 263 insertions(+)
>  create mode 100644 lib/tests/igt_thread.c
> 
> diff --git a/lib/igt_core.c b/lib/igt_core.c
> index c95295c7..ccf06cf4 100644
> --- a/lib/igt_core.c
> +++ b/lib/igt_core.c
> @@ -1272,6 +1272,7 @@ bool __igt_run_subtest(const char *subtest_name, const char *file, const int lin
>  		fprintf(stderr, "Starting subtest: %s\n", subtest_name);
>  
>  	_igt_log_buffer_reset();
> +	igt_thread_clear_fail_state();
>  
>  	igt_gettime(&subtest_time);
>  	return (in_subtest = subtest_name);
> @@ -1302,6 +1303,7 @@ bool __igt_run_dynamic_subtest(const char *dynamic_subtest_name)
>  		fprintf(stderr, "Starting dynamic subtest: %s\n", dynamic_subtest_name);
>  
>  	_igt_log_buffer_reset();
> +	igt_thread_clear_fail_state();
>  
>  	_igt_dynamic_tests_executed++;
>  
> @@ -1510,6 +1512,8 @@ void __igt_skip_check(const char *file, const int line,
>   */
>  void igt_success(void)
>  {
> +	igt_thread_assert_no_failures();
> +
>  	if (in_subtest && !in_dynamic_subtest && _igt_dynamic_tests_executed >= 0) {
>  		/*
>  		 * We're exiting a dynamic container, yield a result
> @@ -1549,6 +1553,11 @@ void igt_fail(int exitcode)
>  {
>  	assert(exitcode != IGT_EXIT_SUCCESS && exitcode != IGT_EXIT_SKIP);
>  
> +	if (!igt_thread_is_main()) {
> +		igt_thread_fail();
> +		pthread_exit(NULL);
> +	}
> +
>  	igt_debug_wait_for_keypress("failure");
>  
>  	/* Exit immediately if the test is already exiting and igt_fail is
> @@ -2049,6 +2058,9 @@ void igt_exit(void)
>  {
>  	int tmp;
>  
> +	if (!test_with_subtests)
> +		igt_thread_assert_no_failures();
> +
>  	igt_exit_called = true;
>  
>  	if (igt_key_file)
> diff --git a/lib/igt_thread.c b/lib/igt_thread.c
> index deab6225..5bdda410 100644
> --- a/lib/igt_thread.c
> +++ b/lib/igt_thread.c
> @@ -22,12 +22,42 @@
>   */
>  
>  #include <pthread.h>
> +#include <stdlib.h>
> +#include <stdatomic.h>
>  
>  #include "igt_core.h"
>  #include "igt_thread.h"
>  
>  static pthread_key_t __igt_is_main_thread;
>  
> +static _Atomic(bool) __thread_failed = false;
> +
> +void igt_thread_clear_fail_state(void)
> +{
> +	assert(igt_thread_is_main());
> +
> +	__thread_failed = false;
> +}
> +
> +void igt_thread_fail(void)
> +{
> +	assert(!igt_thread_is_main());
> +
> +	__thread_failed = true;
> +}
> +
> +void igt_thread_assert_no_failures(void)
> +{
> +	assert(igt_thread_is_main());
> +
> +	if (__thread_failed) {
> +		/* so we won't get stuck in a loop */
> +		igt_thread_clear_fail_state();
> +		igt_critical("Failure in a thread!\n");
> +		igt_fail(IGT_EXIT_FAILURE);
> +	}
> +}
> +
>  bool igt_thread_is_main(void)
>  {
>  	return pthread_getspecific(__igt_is_main_thread) != NULL;
> diff --git a/lib/igt_thread.h b/lib/igt_thread.h
> index b16f803f..4b9c222d 100644
> --- a/lib/igt_thread.h
> +++ b/lib/igt_thread.h
> @@ -21,4 +21,8 @@
>   * IN THE SOFTWARE.
>   */
>  
> +void igt_thread_clear_fail_state(void);
> +void igt_thread_fail(void);
> +void igt_thread_assert_no_failures(void);
> +
>  bool igt_thread_is_main(void);
> diff --git a/lib/tests/igt_tests_common.h b/lib/tests/igt_tests_common.h
> index fa8ad920..058f6265 100644
> --- a/lib/tests/igt_tests_common.h
> +++ b/lib/tests/igt_tests_common.h
> @@ -30,6 +30,7 @@
>  #include <errno.h>
>  #include <sys/stat.h>
>  #include <fcntl.h>
> +#include <regex.h>
>  
>  /*
>   * We need to hide assert from the cocci igt test refactor spatch.
> @@ -161,4 +162,25 @@ static inline void read_whole_pipe(int fd, char *buf, size_t buflen)
>  		offset += readlen;
>  	}
>  }
> +
> +static inline bool matches(char *str, const char *regex)
> +{
> +	int ret;
> +	regex_t reg;
> +
> +	ret = regcomp(&reg, regex, REG_EXTENDED | REG_NEWLINE);
> +
> +	if (ret == 0)
> +		ret = regexec(&reg, str, 0, NULL, 0);
> +
> +	if (0 != ret && REG_NOMATCH != ret) {
> +		char err[256];
> +		regerror(ret, &reg, err, sizeof(err));
> +		printf("%s\n", err);
> +		abort();
> +	}
> +
> +	regfree(&reg);
> +	return !ret;
> +}
>  #endif
> diff --git a/lib/tests/igt_thread.c b/lib/tests/igt_thread.c
> new file mode 100644
> index 00000000..1a734e6d
> --- /dev/null
> +++ b/lib/tests/igt_thread.c
> @@ -0,0 +1,194 @@
> +/*
> + * Copyright © 2020 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the next
> + * paragraph) shall be included in all copies or substantial portions of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
> + * IN THE SOFTWARE.
> + *
> + */
> +
> +#include <pthread.h>
> +
> +#include "drmtest.h"
> +#include "igt_core.h"
> +#include "igt_tests_common.h"
> +
> +char prog[] = "igt_thread";
> +char *fake_argv[] = { prog };
> +int fake_argc = ARRAY_SIZE(fake_argv);
> +
> +static void *succes_thread(void *data)

Typo in the name: succes -> success

Otherwise,
Reviewed-by: Petri Latvala <petri.latvala@intel.com>

> +{
> +	return NULL;
> +}
> +
> +static void *failure_thread(void *data)
> +{
> +	igt_assert(false);
> +	return NULL;
> +}
> +
> +static void one_subtest_fail(void) {
> +	igt_subtest_init(fake_argc, fake_argv);
> +
> +	igt_subtest("subtest-a") {
> +		pthread_t thread;
> +		pthread_create(&thread, 0, failure_thread, NULL);
> +		pthread_join(thread, NULL);
> +	}
> +
> +	igt_subtest("subtest-b") {
> +		pthread_t thread;
> +		pthread_create(&thread, 0, succes_thread, NULL);
> +		pthread_join(thread, NULL);
> +	}
> +
> +	igt_exit();
> +}
> +
> +static void one_dynamic_fail(void) {
> +	igt_subtest_init(fake_argc, fake_argv);
> +
> +	igt_subtest_with_dynamic("dynamic-container") {
> +		igt_dynamic("dynamic-a") {
> +			pthread_t thread;
> +			pthread_create(&thread, 0, failure_thread, NULL);
> +			pthread_join(thread, NULL);
> +		}
> +
> +		igt_dynamic("dynamic-b") {
> +			pthread_t thread;
> +			pthread_create(&thread, 0, succes_thread, NULL);
> +			pthread_join(thread, NULL);
> +		}
> +	}
> +
> +	igt_exit();
> +}
> +
> +static void simple_success(void) {
> +	pthread_t thread;
> +
> +	igt_simple_init(fake_argc, fake_argv);
> +
> +	pthread_create(&thread, 0, succes_thread, NULL);
> +	pthread_join(thread, NULL);
> +
> +	igt_exit();
> +}
> +
> +static void simple_failure(void) {
> +	pthread_t thread;
> +
> +	igt_simple_init(fake_argc, fake_argv);
> +
> +	pthread_create(&thread, 0, failure_thread, NULL);
> +	pthread_join(thread, NULL);
> +
> +	igt_exit();
> +}
> +
> +int main(int argc, char **argv)
> +{
> +	int status;
> +	int outfd;
> +	pid_t pid;
> +
> +	/* failing should be limited just to a single subtest */ {
> +		static char out[4096];
> +
> +		pid = do_fork_bg_with_pipes(one_subtest_fail, &outfd, NULL);
> +
> +		read_whole_pipe(outfd, out, sizeof(out));
> +
> +		internal_assert(safe_wait(pid, &status) != -1);
> +		internal_assert_wexited(status, IGT_EXIT_FAILURE);
> +
> +		internal_assert(matches(out, "\\[thread:.*\\] Stack trace"));
> +		internal_assert(strstr(out, "Subtest subtest-a: FAIL"));
> +		internal_assert(strstr(out, "Subtest subtest-b: SUCCESS"));
> +
> +		close(outfd);
> +	}
> +
> +	/* failing should be limited just to a dynamic subsubtest */ {
> +		static char out[4096];
> +
> +		pid = do_fork_bg_with_pipes(one_dynamic_fail, &outfd, NULL);
> +
> +		read_whole_pipe(outfd, out, sizeof(out));
> +
> +		internal_assert(safe_wait(pid, &status) != -1);
> +		internal_assert_wexited(status, IGT_EXIT_FAILURE);
> +
> +		internal_assert(matches(out, "\\[thread:.*\\] Stack trace"));
> +		internal_assert(strstr(out, "Dynamic subtest dynamic-a: FAIL"));
> +		internal_assert(strstr(out, "Dynamic subtest dynamic-b: SUCCESS"));
> +
> +		close(outfd);
> +	}
> +
> +	/* success in a simple test */ {
> +		static char out[4096];
> +
> +		pid = do_fork_bg_with_pipes(simple_success, &outfd, NULL);
> +
> +		read_whole_pipe(outfd, out, sizeof(out));
> +
> +		internal_assert(safe_wait(pid, &status) != -1);
> +		internal_assert_wexited(status, IGT_EXIT_SUCCESS);
> +
> +
> +		internal_assert(matches(out, "^SUCCESS"));
> +
> +		close(outfd);
> +	}
> +
> +	/* success in a simple test */ {
> +		static char out[4096];
> +
> +		pid = do_fork_bg_with_pipes(simple_success, &outfd, NULL);
> +
> +		read_whole_pipe(outfd, out, sizeof(out));
> +
> +		internal_assert(safe_wait(pid, &status) != -1);
> +		internal_assert_wexited(status, IGT_EXIT_SUCCESS);
> +
> +		internal_assert(matches(out, "^SUCCESS"));
> +
> +		close(outfd);
> +	}
> +
> +	/* failure in a simple test */ {
> +		static char out[4096];
> +
> +		pid = do_fork_bg_with_pipes(simple_failure, &outfd, NULL);
> +
> +		read_whole_pipe(outfd, out, sizeof(out));
> +
> +		internal_assert(safe_wait(pid, &status) != -1);
> +		internal_assert_wexited(status, IGT_EXIT_FAILURE);
> +
> +		internal_assert(matches(out, "\\[thread:.*\\] Stack trace"));
> +		internal_assert(matches(out, "^FAIL"));
> +
> +		close(outfd);
> +	}
> +
> +	return 0;
> +}
> diff --git a/lib/tests/meson.build b/lib/tests/meson.build
> index 47ef303a..9cf5ff47 100644
> --- a/lib/tests/meson.build
> +++ b/lib/tests/meson.build
> @@ -18,6 +18,7 @@ lib_tests = [
>  	'igt_simulation',
>  	'igt_stats',
>  	'igt_subtest_group',
> +	'igt_thread',
>  	'i915_perf_data_alignment',
>  ]
>  
> -- 
> 2.25.4
> 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 3/3] igt/core: Disallow igt_require/skip in non-main threads
  2020-06-16 14:14 ` [igt-dev] [PATCH i-g-t 3/3] igt/core: Disallow igt_require/skip in non-main threads Arkadiusz Hiler
@ 2020-06-18 12:59   ` Petri Latvala
  0 siblings, 0 replies; 12+ messages in thread
From: Petri Latvala @ 2020-06-18 12:59 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev

On Tue, Jun 16, 2020 at 05:14:50PM +0300, Arkadiusz Hiler wrote:
> Handling magic control blocks and longjmp() out of them  in threads is
> hard.
> 
> The test should state the requirements before it starts spinning
> threads.
> 
> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>

Reviewed-by: Petri Latvala <petri.latvala@intel.com>


> ---
>  lib/igt_core.c         |  3 +++
>  lib/tests/igt_thread.c | 34 +++++++++++++++++++++++++++++++++-
>  2 files changed, 36 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/igt_core.c b/lib/igt_core.c
> index ccf06cf4..cedd8168 100644
> --- a/lib/igt_core.c
> +++ b/lib/igt_core.c
> @@ -1475,6 +1475,9 @@ void __igt_skip_check(const char *file, const int line,
>  	int err = errno;
>  	char *err_str = NULL;
>  
> +	if (!igt_thread_is_main())
> +		assert(!"igt_require/skip allowed only in the main thread!");
> +
>  	if (err)
>  		igt_assert_neq(asprintf(&err_str, "Last errno: %i, %s\n", err, strerror(err)),
>  			       -1);
> diff --git a/lib/tests/igt_thread.c b/lib/tests/igt_thread.c
> index 1a734e6d..3fb90416 100644
> --- a/lib/tests/igt_thread.c
> +++ b/lib/tests/igt_thread.c
> @@ -43,6 +43,12 @@ static void *failure_thread(void *data)
>  	return NULL;
>  }
>  
> +static void *require_thread(void *data)
> +{
> +	igt_require(false);
> +	return NULL;
> +}
> +
>  static void one_subtest_fail(void) {
>  	igt_subtest_init(fake_argc, fake_argv);
>  
> @@ -103,10 +109,21 @@ static void simple_failure(void) {
>  	igt_exit();
>  }
>  
> +static void require_non_main_thread(void) {
> +	pthread_t thread;
> +
> +	igt_simple_init(fake_argc, fake_argv);
> +
> +	pthread_create(&thread, 0, require_thread, NULL);
> +	pthread_join(thread, NULL);
> +
> +	igt_exit();
> +}
> +
>  int main(int argc, char **argv)
>  {
>  	int status;
> -	int outfd;
> +	int outfd, errfd;
>  	pid_t pid;
>  
>  	/* failing should be limited just to a single subtest */ {
> @@ -190,5 +207,20 @@ int main(int argc, char **argv)
>  		close(outfd);
>  	}
>  
> +	/* require in a thread should SIGABRT */ {
> +		static char err[4096];
> +
> +		pid = do_fork_bg_with_pipes(require_non_main_thread, NULL, &errfd);
> +
> +		read_whole_pipe(errfd, err, sizeof(err));
> +
> +		internal_assert(safe_wait(pid, &status) != -1);
> +		internal_assert_wsignaled(status, SIGABRT);
> +
> +		internal_assert(strstr(err, "allowed only in the main thread"));
> +
> +		close(errfd);
> +	}
> +
>  	return 0;
>  }
> -- 
> 2.25.4
> 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2020-06-18 12:59 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-16 14:14 [igt-dev] [PATCH i-g-t 1/3] lib/core: Print thred:tid with igt_log for non-main threads Arkadiusz Hiler
2020-06-16 14:14 ` [igt-dev] [PATCH i-g-t 2/3] lib/core: Handle asserts in threads Arkadiusz Hiler
2020-06-18 12:59   ` Petri Latvala
2020-06-16 14:14 ` [igt-dev] [PATCH i-g-t 3/3] igt/core: Disallow igt_require/skip in non-main threads Arkadiusz Hiler
2020-06-18 12:59   ` Petri Latvala
2020-06-16 16:55 ` [igt-dev] ✗ GitLab.Pipeline: warning for series starting with [i-g-t,1/3] lib/core: Print thred:tid with igt_log for " Patchwork
2020-06-16 17:06 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
2020-06-16 18:25 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2020-06-17 13:52   ` Arkadiusz Hiler
2020-06-17 14:37 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/3] lib/core: Print thred:tid with igt_log for non-main threads (rev2) Patchwork
2020-06-17 16:44 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2020-06-18 12:51 ` [igt-dev] [PATCH i-g-t 1/3] lib/core: Print thred:tid with igt_log for non-main threads Petri Latvala

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox