All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 1/5] tests/sw_sync: use igt_fork_helper
@ 2018-01-18 13:59 ` Daniel Vetter
  0 siblings, 0 replies; 18+ messages in thread
From: Daniel Vetter @ 2018-01-18 13:59 UTC (permalink / raw)
  To: IGT development; +Cc: Daniel Vetter, Intel Graphics Development, Daniel Vetter

I'll need to wrap a bit of magic around all the fork() calls in our
tests. Simplest way to get there is to roll out the existing helpers,
which even saves a bit of boilerplate code.

Cc: Robert Foss <robert.foss@collabora.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 tests/sw_sync.c | 54 ++++++++++++++++++------------------------------------
 1 file changed, 18 insertions(+), 36 deletions(-)

diff --git a/tests/sw_sync.c b/tests/sw_sync.c
index 20dfbbb98f58..24974a2f5e4e 100644
--- a/tests/sw_sync.c
+++ b/tests/sw_sync.c
@@ -175,6 +175,7 @@ static void test_sync_busy_fork_unixsocket(void)
 	int timeline;
 	int skip = 0;
 	int sv[2];
+	struct igt_helper_process proc;
 
 
 	timeline = sw_sync_timeline_create();
@@ -185,9 +186,7 @@ static void test_sync_busy_fork_unixsocket(void)
 		goto out;
 	}
 
-	switch (fork()) {
-	case 0:
-	{
+	igt_fork_helper(&proc) {
 		/* Child process */
 		int socket = sv[1];
 		int socket_timeline;
@@ -213,17 +212,8 @@ static void test_sync_busy_fork_unixsocket(void)
 
 		/* Advance timeline from 0 -> 1 */
 		sw_sync_timeline_inc(socket_timeline, 1);
-
-		_Exit(0);
-		break;
-	}
-	case -1:
-	{
-		/* Failed fork */
-		skip = 1;
-		break;
 	}
-	default:
+
 	{
 		/* Parent process */
 		int socket = sv[0];
@@ -252,15 +242,14 @@ static void test_sync_busy_fork_unixsocket(void)
 
 		if (sendmsg(socket, &msg, 0) < 0) {
 		    skip = 1;
-		    goto out;
+		} else {
+			igt_assert_f(sync_fence_wait(fence, 2*1000) == 0,
+				     "Fence not signaled (timeline value 1 fence seqno 1)\n");
 		}
-
-		igt_assert_f(sync_fence_wait(fence, 2*1000) == 0,
-			     "Fence not signaled (timeline value 1 fence seqno 1)\n");
-		break;
-	}
 	}
 
+	igt_stop_helper(&proc);
+
 out:
 	close(fence);
 	close(timeline);
@@ -272,32 +261,25 @@ static void test_sync_busy_fork(void)
 	int fence;
 	int timeline;
 	int skip = 0;
+	struct igt_helper_process proc;
 
 	timeline = sw_sync_timeline_create();
 	fence = sw_sync_timeline_create_fence(timeline, 1);
 
-	switch (fork()) {
-	case 0:
-		/* Child process */
+	igt_fork_helper(&proc) {
 		usleep(1*1000*1000);
 		/* Advance timeline from 0 -> 1 */
 		sw_sync_timeline_inc(timeline, 1);
-		_Exit(0);
-		break;
-	case -1:
-		/* Failed fork */
-		skip = 1;
-		break;
-	default:
-		/* Parent process */
-		igt_assert_f(sync_fence_wait(fence, 0) == -ETIME,
-			     "Fence signaled (it should not have been signalled yet)\n");
-
-		igt_assert_f(sync_fence_wait(fence, 2*1000) == 0,
-			     "Fence not signaled (timeline value 1 fence seqno 1)\n");
-		break;
 	}
 
+	igt_assert_f(sync_fence_wait(fence, 0) == -ETIME,
+		     "Fence signaled (it should not have been signalled yet)\n");
+
+	igt_assert_f(sync_fence_wait(fence, 2*1000) == 0,
+		     "Fence not signaled (timeline value 1 fence seqno 1)\n");
+
+	igt_stop_helper(&proc);
+
 	close(fence);
 	close(timeline);
 	igt_require(!skip);
-- 
2.14.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [igt-dev] [RFC PATCH 1/5] tests/sw_sync: use igt_fork_helper
@ 2018-01-18 13:59 ` Daniel Vetter
  0 siblings, 0 replies; 18+ messages in thread
From: Daniel Vetter @ 2018-01-18 13:59 UTC (permalink / raw)
  To: IGT development; +Cc: Robert Foss, Intel Graphics Development, Daniel Vetter

I'll need to wrap a bit of magic around all the fork() calls in our
tests. Simplest way to get there is to roll out the existing helpers,
which even saves a bit of boilerplate code.

Cc: Robert Foss <robert.foss@collabora.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 tests/sw_sync.c | 54 ++++++++++++++++++------------------------------------
 1 file changed, 18 insertions(+), 36 deletions(-)

diff --git a/tests/sw_sync.c b/tests/sw_sync.c
index 20dfbbb98f58..24974a2f5e4e 100644
--- a/tests/sw_sync.c
+++ b/tests/sw_sync.c
@@ -175,6 +175,7 @@ static void test_sync_busy_fork_unixsocket(void)
 	int timeline;
 	int skip = 0;
 	int sv[2];
+	struct igt_helper_process proc;
 
 
 	timeline = sw_sync_timeline_create();
@@ -185,9 +186,7 @@ static void test_sync_busy_fork_unixsocket(void)
 		goto out;
 	}
 
-	switch (fork()) {
-	case 0:
-	{
+	igt_fork_helper(&proc) {
 		/* Child process */
 		int socket = sv[1];
 		int socket_timeline;
@@ -213,17 +212,8 @@ static void test_sync_busy_fork_unixsocket(void)
 
 		/* Advance timeline from 0 -> 1 */
 		sw_sync_timeline_inc(socket_timeline, 1);
-
-		_Exit(0);
-		break;
-	}
-	case -1:
-	{
-		/* Failed fork */
-		skip = 1;
-		break;
 	}
-	default:
+
 	{
 		/* Parent process */
 		int socket = sv[0];
@@ -252,15 +242,14 @@ static void test_sync_busy_fork_unixsocket(void)
 
 		if (sendmsg(socket, &msg, 0) < 0) {
 		    skip = 1;
-		    goto out;
+		} else {
+			igt_assert_f(sync_fence_wait(fence, 2*1000) == 0,
+				     "Fence not signaled (timeline value 1 fence seqno 1)\n");
 		}
-
-		igt_assert_f(sync_fence_wait(fence, 2*1000) == 0,
-			     "Fence not signaled (timeline value 1 fence seqno 1)\n");
-		break;
-	}
 	}
 
+	igt_stop_helper(&proc);
+
 out:
 	close(fence);
 	close(timeline);
@@ -272,32 +261,25 @@ static void test_sync_busy_fork(void)
 	int fence;
 	int timeline;
 	int skip = 0;
+	struct igt_helper_process proc;
 
 	timeline = sw_sync_timeline_create();
 	fence = sw_sync_timeline_create_fence(timeline, 1);
 
-	switch (fork()) {
-	case 0:
-		/* Child process */
+	igt_fork_helper(&proc) {
 		usleep(1*1000*1000);
 		/* Advance timeline from 0 -> 1 */
 		sw_sync_timeline_inc(timeline, 1);
-		_Exit(0);
-		break;
-	case -1:
-		/* Failed fork */
-		skip = 1;
-		break;
-	default:
-		/* Parent process */
-		igt_assert_f(sync_fence_wait(fence, 0) == -ETIME,
-			     "Fence signaled (it should not have been signalled yet)\n");
-
-		igt_assert_f(sync_fence_wait(fence, 2*1000) == 0,
-			     "Fence not signaled (timeline value 1 fence seqno 1)\n");
-		break;
 	}
 
+	igt_assert_f(sync_fence_wait(fence, 0) == -ETIME,
+		     "Fence signaled (it should not have been signalled yet)\n");
+
+	igt_assert_f(sync_fence_wait(fence, 2*1000) == 0,
+		     "Fence not signaled (timeline value 1 fence seqno 1)\n");
+
+	igt_stop_helper(&proc);
+
 	close(fence);
 	close(timeline);
 	igt_require(!skip);
-- 
2.14.3

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

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

* [RFC PATCH 2/5] lib/core: make logging pthread vs. fork safe
  2018-01-18 13:59 ` [igt-dev] " Daniel Vetter
@ 2018-01-18 13:59   ` Daniel Vetter
  -1 siblings, 0 replies; 18+ messages in thread
From: Daniel Vetter @ 2018-01-18 13:59 UTC (permalink / raw)
  To: IGT development; +Cc: Daniel Vetter, Intel Graphics Development, Daniel Vetter

fork() is a pretty thing in a multithreaded program, it's essentially
as bad as handling signals: When we fork the memory snapshot we can
interrupts all other threads at any place, including while they're
holding mutexes and other fun stuff.

libc itself has some internal fork handlers to clear caches and make
sure locks stay in a safe place (we've had plenty of fun with e.g. the
pid/tid caches when a signal happens too fast).

I want to put dmesg capture into igt, into a separate thread (so that
dmesg capture nicely interleaves what the test is doing, +/- races),
and stuff all the dmesg output into the igt logger. Which means we
need to make sure that the log_buffer_mutex is in a predictable state.

Since we have 2 calls to fork() extract a little helper for this.

v2: Stop using fflush(NULL) - somehow this manages to hit a bug in
libc when using a FILE in a separate thread (for capturing dmesg).
Instead explicitly flush stderr and stdout only.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 lib/igt_core.c | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index 558a538d35e8..8e7f0da8a44b 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -1518,6 +1518,21 @@ static void fork_helper_exit_handler(int sig)
 	assert(helper_process_count == 0);
 }
 
+static pid_t __igt_fork_wrapper(void)
+{
+	pid_t ret;
+
+	/* ensure any buffers are flushed before fork */
+	fflush(stdout);
+	fflush(stderr);
+
+	pthread_mutex_lock(&log_buffer_mutex);
+	ret = fork();
+	pthread_mutex_unlock(&log_buffer_mutex);
+
+	return ret;
+}
+
 bool __igt_fork_helper(struct igt_helper_process *proc)
 {
 	pid_t pid;
@@ -1540,10 +1555,7 @@ bool __igt_fork_helper(struct igt_helper_process *proc)
 	tmp_count = exit_handler_count;
 	exit_handler_count = 0;
 
-	/* ensure any buffers are flushed before fork */
-	fflush(NULL);
-
-	switch (pid = fork()) {
+	switch (pid = __igt_fork_wrapper()) {
 	case -1:
 		exit_handler_count = tmp_count;
 		igt_assert(0);
@@ -1642,10 +1654,7 @@ bool __igt_fork(void)
 		igt_assert(test_children);
 	}
 
-	/* ensure any buffers are flushed before fork */
-	fflush(NULL);
-
-	switch (test_children[num_test_children++] = fork()) {
+	switch (test_children[num_test_children++] = __igt_fork_wrapper()) {
 	case -1:
 		igt_assert(0);
 	case 0:
-- 
2.14.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [igt-dev] [RFC PATCH 2/5] lib/core: make logging pthread vs. fork safe
@ 2018-01-18 13:59   ` Daniel Vetter
  0 siblings, 0 replies; 18+ messages in thread
From: Daniel Vetter @ 2018-01-18 13:59 UTC (permalink / raw)
  To: IGT development; +Cc: Intel Graphics Development, Daniel Vetter

fork() is a pretty thing in a multithreaded program, it's essentially
as bad as handling signals: When we fork the memory snapshot we can
interrupts all other threads at any place, including while they're
holding mutexes and other fun stuff.

libc itself has some internal fork handlers to clear caches and make
sure locks stay in a safe place (we've had plenty of fun with e.g. the
pid/tid caches when a signal happens too fast).

I want to put dmesg capture into igt, into a separate thread (so that
dmesg capture nicely interleaves what the test is doing, +/- races),
and stuff all the dmesg output into the igt logger. Which means we
need to make sure that the log_buffer_mutex is in a predictable state.

Since we have 2 calls to fork() extract a little helper for this.

v2: Stop using fflush(NULL) - somehow this manages to hit a bug in
libc when using a FILE in a separate thread (for capturing dmesg).
Instead explicitly flush stderr and stdout only.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 lib/igt_core.c | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index 558a538d35e8..8e7f0da8a44b 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -1518,6 +1518,21 @@ static void fork_helper_exit_handler(int sig)
 	assert(helper_process_count == 0);
 }
 
+static pid_t __igt_fork_wrapper(void)
+{
+	pid_t ret;
+
+	/* ensure any buffers are flushed before fork */
+	fflush(stdout);
+	fflush(stderr);
+
+	pthread_mutex_lock(&log_buffer_mutex);
+	ret = fork();
+	pthread_mutex_unlock(&log_buffer_mutex);
+
+	return ret;
+}
+
 bool __igt_fork_helper(struct igt_helper_process *proc)
 {
 	pid_t pid;
@@ -1540,10 +1555,7 @@ bool __igt_fork_helper(struct igt_helper_process *proc)
 	tmp_count = exit_handler_count;
 	exit_handler_count = 0;
 
-	/* ensure any buffers are flushed before fork */
-	fflush(NULL);
-
-	switch (pid = fork()) {
+	switch (pid = __igt_fork_wrapper()) {
 	case -1:
 		exit_handler_count = tmp_count;
 		igt_assert(0);
@@ -1642,10 +1654,7 @@ bool __igt_fork(void)
 		igt_assert(test_children);
 	}
 
-	/* ensure any buffers are flushed before fork */
-	fflush(NULL);
-
-	switch (test_children[num_test_children++] = fork()) {
+	switch (test_children[num_test_children++] = __igt_fork_wrapper()) {
 	case -1:
 		igt_assert(0);
 	case 0:
-- 
2.14.3

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

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

* [RFC PATCH 3/5] lib/core: Don't hide non-debug message when filtering for a debug log domain
  2018-01-18 13:59 ` [igt-dev] " Daniel Vetter
@ 2018-01-18 13:59   ` Daniel Vetter
  -1 siblings, 0 replies; 18+ messages in thread
From: Daniel Vetter @ 2018-01-18 13:59 UTC (permalink / raw)
  To: IGT development; +Cc: Daniel Vetter, Intel Graphics Development

I think this is the more sensible semantics, since this allows you to
still follow what's going on with the test at a high level, while
filtering for a specific (or multiple specific) debug log domains.

For non-debug messages log-domains technically exist, but we're not
making much use of them really.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 lib/igt_core.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index 8e7f0da8a44b..aaafc1df6b46 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -291,7 +291,7 @@ enum {
 static int igt_exitcode = IGT_EXIT_SUCCESS;
 static const char *command_str;
 
-static char* igt_log_domain_filter;
+static char* igt_debug_log_domain_filter;
 static struct {
 	char *entries[256];
 	uint8_t start, end;
@@ -757,7 +757,7 @@ static int common_init(int *argc, char **argv,
 		case OPT_DEBUG:
 			igt_log_level = IGT_LOG_DEBUG;
 			if (optarg && strlen(optarg) > 0)
-				igt_log_domain_filter = strdup(optarg);
+				igt_debug_log_domain_filter = strdup(optarg);
 			break;
 		case OPT_LIST_SUBTESTS:
 			if (!run_single_subtest)
@@ -2104,12 +2104,12 @@ void igt_vlog(const char *domain, enum igt_log_level level, const char *format,
 		goto out;
 
 	/* check domain filter */
-	if (igt_log_domain_filter) {
+	if (level == IGT_LOG_DEBUG && igt_debug_log_domain_filter) {
 		/* if null domain and filter is not "application", return */
-		if (!domain && strcmp(igt_log_domain_filter, "application"))
+		if (!domain && strcmp(igt_debug_log_domain_filter, "application"))
 			goto out;
 		/* else if domain and filter do not match, return */
-		else if (domain && strcmp(igt_log_domain_filter, domain))
+		else if (domain && strcmp(igt_debug_log_domain_filter, domain))
 			goto out;
 	}
 
-- 
2.14.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [igt-dev] [RFC PATCH 3/5] lib/core: Don't hide non-debug message when filtering for a debug log domain
@ 2018-01-18 13:59   ` Daniel Vetter
  0 siblings, 0 replies; 18+ messages in thread
From: Daniel Vetter @ 2018-01-18 13:59 UTC (permalink / raw)
  To: IGT development; +Cc: Intel Graphics Development

I think this is the more sensible semantics, since this allows you to
still follow what's going on with the test at a high level, while
filtering for a specific (or multiple specific) debug log domains.

For non-debug messages log-domains technically exist, but we're not
making much use of them really.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 lib/igt_core.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index 8e7f0da8a44b..aaafc1df6b46 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -291,7 +291,7 @@ enum {
 static int igt_exitcode = IGT_EXIT_SUCCESS;
 static const char *command_str;
 
-static char* igt_log_domain_filter;
+static char* igt_debug_log_domain_filter;
 static struct {
 	char *entries[256];
 	uint8_t start, end;
@@ -757,7 +757,7 @@ static int common_init(int *argc, char **argv,
 		case OPT_DEBUG:
 			igt_log_level = IGT_LOG_DEBUG;
 			if (optarg && strlen(optarg) > 0)
-				igt_log_domain_filter = strdup(optarg);
+				igt_debug_log_domain_filter = strdup(optarg);
 			break;
 		case OPT_LIST_SUBTESTS:
 			if (!run_single_subtest)
@@ -2104,12 +2104,12 @@ void igt_vlog(const char *domain, enum igt_log_level level, const char *format,
 		goto out;
 
 	/* check domain filter */
-	if (igt_log_domain_filter) {
+	if (level == IGT_LOG_DEBUG && igt_debug_log_domain_filter) {
 		/* if null domain and filter is not "application", return */
-		if (!domain && strcmp(igt_log_domain_filter, "application"))
+		if (!domain && strcmp(igt_debug_log_domain_filter, "application"))
 			goto out;
 		/* else if domain and filter do not match, return */
-		else if (domain && strcmp(igt_log_domain_filter, domain))
+		else if (domain && strcmp(igt_debug_log_domain_filter, domain))
 			goto out;
 	}
 
-- 
2.14.3

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

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

* [RFC PATCH 4/5] igt/core: Initial simple interleaved kmsg filtering
  2018-01-18 13:59 ` [igt-dev] " Daniel Vetter
@ 2018-01-18 13:59   ` Daniel Vetter
  -1 siblings, 0 replies; 18+ messages in thread
From: Daniel Vetter @ 2018-01-18 13:59 UTC (permalink / raw)
  To: IGT development; +Cc: Daniel Vetter, Intel Graphics Development

Needs to be beefed up so that dmesg warning (and worse) are re-emmitted
as IGT_LOG_WARN. But only if they match one of our filters (which we
should probably allow to be extended, e.g. depending upon which driver
has been openened). This also requires that we at least parse the
basic of kmsg lines (adjusting the timestamp to match our own would be
real cool).

v2:
- Seek to the end of the kmsg buffer before starting the capturing.
- Increase linebuffer to avoid dmesg drowning out all the tests
  messages.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 lib/igt_core.c | 41 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 40 insertions(+), 1 deletion(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index aaafc1df6b46..65b394581e8f 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -293,7 +293,7 @@ static const char *command_str;
 
 static char* igt_debug_log_domain_filter;
 static struct {
-	char *entries[256];
+	char *entries[2000];
 	uint8_t start, end;
 } log_buffer;
 static pthread_mutex_t log_buffer_mutex = PTHREAD_MUTEX_INITIALIZER;
@@ -581,6 +581,43 @@ static void oom_adjust_for_doom(void)
 
 }
 
+static void *kmsg_capture(void *arg)
+{
+	int kmsg_capture_fd = (uintptr_t) arg;
+	FILE *kmsg_file = fdopen(kmsg_capture_fd, "r");
+	char *line = NULL;
+	size_t line_len = 0;
+	ssize_t read;
+
+	while ((read = getline(&line, &line_len, kmsg_file))) {
+		/* FIXME: Set IGT_LOG_WARN for dmesg-warnings */
+		igt_log("dmesg", IGT_LOG_DEBUG, "%i, %s", line[0], line+1);
+	}
+
+	igt_warn("ran out of dmesg, this shouldn't happen\n");
+
+	return NULL;
+}
+
+static void start_kmsg_recording(void)
+{
+	static pthread_t kmsg_capture_thread;
+	int kmsg_capture_fd;
+
+	kmsg_capture_fd = open("/dev/kmsg",
+			       O_RDONLY | O_CLOEXEC);
+
+	if (kmsg_capture_fd < 0) {
+		igt_info("no dmesg capturing\n");
+		return;
+	}
+
+	lseek(kmsg_capture_fd, 0, SEEK_END);
+
+	pthread_create(&kmsg_capture_thread, NULL,
+		       kmsg_capture, (void *)(uintptr_t) kmsg_capture_fd);
+}
+
 #ifdef HAVE_GLIB
 static void common_init_config(void)
 {
@@ -814,6 +851,8 @@ out:
 		kmsg(KERN_INFO "[IGT] %s: executing\n", command_str);
 		print_version();
 
+		start_kmsg_recording();
+
 		sync();
 		oom_adjust_for_doom();
 		ftrace_dump_on_oops(true);
-- 
2.14.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [igt-dev] [RFC PATCH 4/5] igt/core: Initial simple interleaved kmsg filtering
@ 2018-01-18 13:59   ` Daniel Vetter
  0 siblings, 0 replies; 18+ messages in thread
From: Daniel Vetter @ 2018-01-18 13:59 UTC (permalink / raw)
  To: IGT development; +Cc: Intel Graphics Development

Needs to be beefed up so that dmesg warning (and worse) are re-emmitted
as IGT_LOG_WARN. But only if they match one of our filters (which we
should probably allow to be extended, e.g. depending upon which driver
has been openened). This also requires that we at least parse the
basic of kmsg lines (adjusting the timestamp to match our own would be
real cool).

v2:
- Seek to the end of the kmsg buffer before starting the capturing.
- Increase linebuffer to avoid dmesg drowning out all the tests
  messages.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 lib/igt_core.c | 41 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 40 insertions(+), 1 deletion(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index aaafc1df6b46..65b394581e8f 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -293,7 +293,7 @@ static const char *command_str;
 
 static char* igt_debug_log_domain_filter;
 static struct {
-	char *entries[256];
+	char *entries[2000];
 	uint8_t start, end;
 } log_buffer;
 static pthread_mutex_t log_buffer_mutex = PTHREAD_MUTEX_INITIALIZER;
@@ -581,6 +581,43 @@ static void oom_adjust_for_doom(void)
 
 }
 
+static void *kmsg_capture(void *arg)
+{
+	int kmsg_capture_fd = (uintptr_t) arg;
+	FILE *kmsg_file = fdopen(kmsg_capture_fd, "r");
+	char *line = NULL;
+	size_t line_len = 0;
+	ssize_t read;
+
+	while ((read = getline(&line, &line_len, kmsg_file))) {
+		/* FIXME: Set IGT_LOG_WARN for dmesg-warnings */
+		igt_log("dmesg", IGT_LOG_DEBUG, "%i, %s", line[0], line+1);
+	}
+
+	igt_warn("ran out of dmesg, this shouldn't happen\n");
+
+	return NULL;
+}
+
+static void start_kmsg_recording(void)
+{
+	static pthread_t kmsg_capture_thread;
+	int kmsg_capture_fd;
+
+	kmsg_capture_fd = open("/dev/kmsg",
+			       O_RDONLY | O_CLOEXEC);
+
+	if (kmsg_capture_fd < 0) {
+		igt_info("no dmesg capturing\n");
+		return;
+	}
+
+	lseek(kmsg_capture_fd, 0, SEEK_END);
+
+	pthread_create(&kmsg_capture_thread, NULL,
+		       kmsg_capture, (void *)(uintptr_t) kmsg_capture_fd);
+}
+
 #ifdef HAVE_GLIB
 static void common_init_config(void)
 {
@@ -814,6 +851,8 @@ out:
 		kmsg(KERN_INFO "[IGT] %s: executing\n", command_str);
 		print_version();
 
+		start_kmsg_recording();
+
 		sync();
 		oom_adjust_for_doom();
 		ftrace_dump_on_oops(true);
-- 
2.14.3

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

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

* [RFC PATCH 5/5] lib/core: report subtests that hit an igt_warning as WARNING
  2018-01-18 13:59 ` [igt-dev] " Daniel Vetter
@ 2018-01-18 13:59   ` Daniel Vetter
  -1 siblings, 0 replies; 18+ messages in thread
From: Daniel Vetter @ 2018-01-18 13:59 UTC (permalink / raw)
  To: IGT development; +Cc: Daniel Vetter, Intel Graphics Development

This is another piece of prep work to push the detection of dmesg
warnings into igt itself, so that we can correctly report dmesg
issue on a per-subtest basis even when running the entire binary.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 lib/igt_core.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index 65b394581e8f..d61d32295bb2 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -1021,6 +1021,7 @@ void __igt_subtest_group_restore(int save)
 static bool skipped_one = false;
 static bool succeeded_one = false;
 static bool failed_one = false;
+static bool warned = false;
 
 static void exit_subtest(const char *) __attribute__((noreturn));
 static void exit_subtest(const char *result)
@@ -1037,6 +1038,7 @@ static void exit_subtest(const char *result)
 	igt_terminate_spin_batches();
 
 	in_subtest = NULL;
+	warned = false;
 	siglongjmp(igt_subtest_jmpbuf, 1);
 }
 
@@ -1126,7 +1128,7 @@ void igt_success(void)
 {
 	succeeded_one = true;
 	if (in_subtest)
-		exit_subtest("SUCCESS");
+		exit_subtest(warned ? "WARNING" : "SUCCESS");
 }
 
 /**
@@ -2120,6 +2122,9 @@ void igt_vlog(const char *domain, enum igt_log_level level, const char *format,
 	if (list_subtests && level <= IGT_LOG_WARN)
 		return;
 
+	if (level >= IGT_LOG_WARN)
+		warned = true;
+
 	if (vasprintf(&line, format, args) == -1)
 		return;
 
-- 
2.14.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [igt-dev] [RFC PATCH 5/5] lib/core: report subtests that hit an igt_warning as WARNING
@ 2018-01-18 13:59   ` Daniel Vetter
  0 siblings, 0 replies; 18+ messages in thread
From: Daniel Vetter @ 2018-01-18 13:59 UTC (permalink / raw)
  To: IGT development; +Cc: Intel Graphics Development

This is another piece of prep work to push the detection of dmesg
warnings into igt itself, so that we can correctly report dmesg
issue on a per-subtest basis even when running the entire binary.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 lib/igt_core.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index 65b394581e8f..d61d32295bb2 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -1021,6 +1021,7 @@ void __igt_subtest_group_restore(int save)
 static bool skipped_one = false;
 static bool succeeded_one = false;
 static bool failed_one = false;
+static bool warned = false;
 
 static void exit_subtest(const char *) __attribute__((noreturn));
 static void exit_subtest(const char *result)
@@ -1037,6 +1038,7 @@ static void exit_subtest(const char *result)
 	igt_terminate_spin_batches();
 
 	in_subtest = NULL;
+	warned = false;
 	siglongjmp(igt_subtest_jmpbuf, 1);
 }
 
@@ -1126,7 +1128,7 @@ void igt_success(void)
 {
 	succeeded_one = true;
 	if (in_subtest)
-		exit_subtest("SUCCESS");
+		exit_subtest(warned ? "WARNING" : "SUCCESS");
 }
 
 /**
@@ -2120,6 +2122,9 @@ void igt_vlog(const char *domain, enum igt_log_level level, const char *format,
 	if (list_subtests && level <= IGT_LOG_WARN)
 		return;
 
+	if (level >= IGT_LOG_WARN)
+		warned = true;
+
 	if (vasprintf(&line, format, args) == -1)
 		return;
 
-- 
2.14.3

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

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

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [RFC,1/5] tests/sw_sync: use igt_fork_helper
  2018-01-18 13:59 ` [igt-dev] " Daniel Vetter
                   ` (4 preceding siblings ...)
  (?)
@ 2018-01-18 14:21 ` Patchwork
  -1 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2018-01-18 14:21 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: igt-dev

== Series Details ==

Series: series starting with [RFC,1/5] tests/sw_sync: use igt_fork_helper
URL   : https://patchwork.freedesktop.org/series/36693/
State : success

== Summary ==

IGT patchset tested on top of latest successful build
aff8aa16762b190fef51738f5a36e94d3ebda091 igt/pm_rps: Increase load for waitboosting

with latest DRM-Tip kernel build CI_DRM_3644
68669ade8e50 drm-tip: 2018y-01m-18d-12h-01m-38s UTC integration manifest

No testlist changes.

Test debugfs_test:
        Subgroup read_all_entries:
                dmesg-fail -> DMESG-WARN (fi-elk-e7500) fdo#103989
                incomplete -> PASS       (fi-snb-2520m) fdo#103713 +1

fdo#103989 https://bugs.freedesktop.org/show_bug.cgi?id=103989
fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713

fi-bdw-5557u     total:288  pass:267  dwarn:0   dfail:0   fail:0   skip:21  time:423s
fi-bdw-gvtdvm    total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  time:427s
fi-blb-e6850     total:288  pass:223  dwarn:1   dfail:0   fail:0   skip:64  time:373s
fi-bsw-n3050     total:288  pass:242  dwarn:0   dfail:0   fail:0   skip:46  time:491s
fi-bwr-2160      total:288  pass:183  dwarn:0   dfail:0   fail:0   skip:105 time:283s
fi-bxt-dsi       total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  time:485s
fi-bxt-j4205     total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  time:486s
fi-byt-j1900     total:288  pass:253  dwarn:0   dfail:0   fail:0   skip:35  time:471s
fi-byt-n2820     total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  time:470s
fi-elk-e7500     total:224  pass:168  dwarn:10  dfail:0   fail:0   skip:45 
fi-gdg-551       total:288  pass:179  dwarn:0   dfail:0   fail:1   skip:108 time:276s
fi-glk-1         total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  time:514s
fi-hsw-4770      total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:394s
fi-hsw-4770r     total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:402s
fi-ilk-650       total:288  pass:228  dwarn:0   dfail:0   fail:0   skip:60  time:412s
fi-ivb-3520m     total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  time:460s
fi-ivb-3770      total:288  pass:255  dwarn:0   dfail:0   fail:0   skip:33  time:420s
fi-kbl-7500u     total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  time:457s
fi-kbl-7560u     total:288  pass:269  dwarn:0   dfail:0   fail:0   skip:19  time:501s
fi-kbl-7567u     total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:455s
fi-kbl-r         total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:505s
fi-pnv-d510      total:288  pass:222  dwarn:1   dfail:0   fail:0   skip:65  time:579s
fi-skl-6260u     total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:434s
fi-skl-6600u     total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:510s
fi-skl-6700hq    total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  time:530s
fi-skl-6700k2    total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  time:498s
fi-skl-6770hq    total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:492s
fi-skl-gvtdvm    total:288  pass:265  dwarn:0   dfail:0   fail:0   skip:23  time:434s
fi-snb-2520m     total:245  pass:211  dwarn:0   dfail:0   fail:0   skip:33 
fi-snb-2600      total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  time:399s
Blacklisted hosts:
fi-cfl-s2        total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  time:572s
fi-glk-dsi       total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  time:478s
fi-skl-guc       total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  time:417s

== Logs ==

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

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

* [RFC PATCH] igt/core: Initial simple interleaved kmsg filtering
  2018-01-18 13:59   ` [igt-dev] " Daniel Vetter
@ 2018-01-18 14:27     ` Daniel Vetter
  -1 siblings, 0 replies; 18+ messages in thread
From: Daniel Vetter @ 2018-01-18 14:27 UTC (permalink / raw)
  To: IGT development; +Cc: Daniel Vetter, Intel Graphics Development

Needs to be beefed up so that dmesg warning (and worse) are re-emmitted
as IGT_LOG_WARN. But only if they match one of our filters (which we
should probably allow to be extended, e.g. depending upon which driver
has been openened). This also requires that we at least parse the
basic of kmsg lines (adjusting the timestamp to match our own would be
real cool).

v2:
- Seek to the end of the kmsg buffer before starting the capturing.
- Increase linebuffer to avoid dmesg drowning out all the tests
  messages.

v3: Unlazy slightly and implement semi-correct kmsg parsing.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 lib/igt_core.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 55 insertions(+), 1 deletion(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index aaafc1df6b46..bcdc8abb41a7 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -293,7 +293,7 @@ static const char *command_str;
 
 static char* igt_debug_log_domain_filter;
 static struct {
-	char *entries[256];
+	char *entries[2000];
 	uint8_t start, end;
 } log_buffer;
 static pthread_mutex_t log_buffer_mutex = PTHREAD_MUTEX_INITIALIZER;
@@ -581,6 +581,58 @@ static void oom_adjust_for_doom(void)
 
 }
 
+static void *kmsg_capture(void *arg)
+{
+	int kmsg_capture_fd = (uintptr_t) arg;
+	FILE *kmsg_file = fdopen(kmsg_capture_fd, "r");
+	char *line = NULL;
+	size_t line_len = 0;
+	ssize_t read;
+
+	while ((read = getline(&line, &line_len, kmsg_file))) {
+		unsigned flags;
+		unsigned long long seq, ts_usec;
+		char continuation;
+		enum igt_log_level level;
+
+		sscanf(line, "%u,%llu,%llu,%c;", &flags,
+		       &seq, &ts_usec, &continuation);
+
+		if ((flags & 0x7) <= 4)
+			level = IGT_LOG_WARN;
+		else
+			level = IGT_LOG_DEBUG;
+
+		igt_log("dmesg", level, "[%llu.%06llu], %s",
+			ts_usec / 1000000,
+			ts_usec % 1000000,
+			index(line, ';') + 1);
+	}
+
+	igt_warn("ran out of dmesg, this shouldn't happen\n");
+
+	return NULL;
+}
+
+static void start_kmsg_recording(void)
+{
+	static pthread_t kmsg_capture_thread;
+	int kmsg_capture_fd;
+
+	kmsg_capture_fd = open("/dev/kmsg",
+			       O_RDONLY | O_CLOEXEC);
+
+	if (kmsg_capture_fd < 0) {
+		igt_info("no dmesg capturing\n");
+		return;
+	}
+
+	lseek(kmsg_capture_fd, 0, SEEK_END);
+
+	pthread_create(&kmsg_capture_thread, NULL,
+		       kmsg_capture, (void *)(uintptr_t) kmsg_capture_fd);
+}
+
 #ifdef HAVE_GLIB
 static void common_init_config(void)
 {
@@ -814,6 +866,8 @@ out:
 		kmsg(KERN_INFO "[IGT] %s: executing\n", command_str);
 		print_version();
 
+		start_kmsg_recording();
+
 		sync();
 		oom_adjust_for_doom();
 		ftrace_dump_on_oops(true);
-- 
2.14.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [igt-dev] [RFC PATCH] igt/core: Initial simple interleaved kmsg filtering
@ 2018-01-18 14:27     ` Daniel Vetter
  0 siblings, 0 replies; 18+ messages in thread
From: Daniel Vetter @ 2018-01-18 14:27 UTC (permalink / raw)
  To: IGT development; +Cc: Intel Graphics Development

Needs to be beefed up so that dmesg warning (and worse) are re-emmitted
as IGT_LOG_WARN. But only if they match one of our filters (which we
should probably allow to be extended, e.g. depending upon which driver
has been openened). This also requires that we at least parse the
basic of kmsg lines (adjusting the timestamp to match our own would be
real cool).

v2:
- Seek to the end of the kmsg buffer before starting the capturing.
- Increase linebuffer to avoid dmesg drowning out all the tests
  messages.

v3: Unlazy slightly and implement semi-correct kmsg parsing.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 lib/igt_core.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 55 insertions(+), 1 deletion(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index aaafc1df6b46..bcdc8abb41a7 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -293,7 +293,7 @@ static const char *command_str;
 
 static char* igt_debug_log_domain_filter;
 static struct {
-	char *entries[256];
+	char *entries[2000];
 	uint8_t start, end;
 } log_buffer;
 static pthread_mutex_t log_buffer_mutex = PTHREAD_MUTEX_INITIALIZER;
@@ -581,6 +581,58 @@ static void oom_adjust_for_doom(void)
 
 }
 
+static void *kmsg_capture(void *arg)
+{
+	int kmsg_capture_fd = (uintptr_t) arg;
+	FILE *kmsg_file = fdopen(kmsg_capture_fd, "r");
+	char *line = NULL;
+	size_t line_len = 0;
+	ssize_t read;
+
+	while ((read = getline(&line, &line_len, kmsg_file))) {
+		unsigned flags;
+		unsigned long long seq, ts_usec;
+		char continuation;
+		enum igt_log_level level;
+
+		sscanf(line, "%u,%llu,%llu,%c;", &flags,
+		       &seq, &ts_usec, &continuation);
+
+		if ((flags & 0x7) <= 4)
+			level = IGT_LOG_WARN;
+		else
+			level = IGT_LOG_DEBUG;
+
+		igt_log("dmesg", level, "[%llu.%06llu], %s",
+			ts_usec / 1000000,
+			ts_usec % 1000000,
+			index(line, ';') + 1);
+	}
+
+	igt_warn("ran out of dmesg, this shouldn't happen\n");
+
+	return NULL;
+}
+
+static void start_kmsg_recording(void)
+{
+	static pthread_t kmsg_capture_thread;
+	int kmsg_capture_fd;
+
+	kmsg_capture_fd = open("/dev/kmsg",
+			       O_RDONLY | O_CLOEXEC);
+
+	if (kmsg_capture_fd < 0) {
+		igt_info("no dmesg capturing\n");
+		return;
+	}
+
+	lseek(kmsg_capture_fd, 0, SEEK_END);
+
+	pthread_create(&kmsg_capture_thread, NULL,
+		       kmsg_capture, (void *)(uintptr_t) kmsg_capture_fd);
+}
+
 #ifdef HAVE_GLIB
 static void common_init_config(void)
 {
@@ -814,6 +866,8 @@ out:
 		kmsg(KERN_INFO "[IGT] %s: executing\n", command_str);
 		print_version();
 
+		start_kmsg_recording();
+
 		sync();
 		oom_adjust_for_doom();
 		ftrace_dump_on_oops(true);
-- 
2.14.3

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

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

* [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [RFC,1/5] tests/sw_sync: use igt_fork_helper (rev2)
  2018-01-18 13:59 ` [igt-dev] " Daniel Vetter
                   ` (5 preceding siblings ...)
  (?)
@ 2018-01-18 15:05 ` Patchwork
  -1 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2018-01-18 15:05 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: igt-dev

== Series Details ==

Series: series starting with [RFC,1/5] tests/sw_sync: use igt_fork_helper (rev2)
URL   : https://patchwork.freedesktop.org/series/36693/
State : failure

== Summary ==

IGT patchset tested on top of latest successful build
aff8aa16762b190fef51738f5a36e94d3ebda091 igt/pm_rps: Increase load for waitboosting

with latest DRM-Tip kernel build CI_DRM_3645
88e8ed1dc691 drm-tip: 2018y-01m-18d-14h-19m-46s UTC integration manifest

No testlist changes.

Test debugfs_test:
        Subgroup read_all_entries:
                pass       -> FAIL       (fi-elk-e7500) fdo#103989 +12
                pass       -> FAIL       (fi-skl-6700k2)
                pass       -> FAIL       (fi-glk-1)
Test drv_hangman:
        Subgroup error-state-basic:
                pass       -> FAIL       (fi-gdg-551)
                pass       -> FAIL       (fi-blb-e6850)
                pass       -> FAIL       (fi-pnv-d510)
                pass       -> FAIL       (fi-bwr-2160)
                pass       -> CRASH      (fi-elk-e7500)
                pass       -> FAIL       (fi-ilk-650)
                pass       -> FAIL       (fi-snb-2520m)
                pass       -> FAIL       (fi-snb-2600)
                pass       -> CRASH      (fi-ivb-3520m)
                pass       -> FAIL       (fi-ivb-3770)
                pass       -> CRASH      (fi-byt-j1900)
                pass       -> CRASH      (fi-byt-n2820)
                pass       -> CRASH      (fi-hsw-4770)
                pass       -> CRASH      (fi-hsw-4770r)
Test gem_busy:
        Subgroup basic-busy-default:
                pass       -> WARN       (fi-blb-e6850)
                pass       -> WARN       (fi-pnv-d510)
                pass       -> WARN       (fi-elk-e7500)
                pass       -> WARN       (fi-ilk-650)
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-hsw-4770r)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
        Subgroup basic-hang-default:
                pass       -> FAIL       (fi-blb-e6850)
                pass       -> FAIL       (fi-pnv-d510)
                pass       -> FAIL       (fi-elk-e7500)
                pass       -> FAIL       (fi-ilk-650)
                pass       -> FAIL       (fi-snb-2520m)
                pass       -> FAIL       (fi-snb-2600)
                pass       -> FAIL       (fi-ivb-3520m)
                pass       -> FAIL       (fi-ivb-3770)
                pass       -> CRASH      (fi-byt-j1900)
                pass       -> FAIL       (fi-byt-n2820)
                pass       -> CRASH      (fi-hsw-4770)
                pass       -> FAIL       (fi-hsw-4770r)
                pass       -> CRASH      (fi-bdw-5557u)
                pass       -> CRASH      (fi-bdw-gvtdvm)
                pass       -> CRASH      (fi-bsw-n3050)
                pass       -> CRASH      (fi-skl-6260u) fdo#104108 +15
                pass       -> FAIL       (fi-skl-6700hq)
                pass       -> FAIL       (fi-bxt-dsi)
                pass       -> FAIL       (fi-bxt-j4205)
                pass       -> FAIL       (fi-kbl-7500u)
                pass       -> CRASH      (fi-kbl-7560u)
                pass       -> FAIL       (fi-kbl-7567u)
                pass       -> FAIL       (fi-kbl-r)
                pass       -> FAIL       (fi-glk-1)
Test gem_close_race:
        Subgroup basic-process:
                pass       -> WARN       (fi-gdg-551)
                pass       -> WARN       (fi-blb-e6850)
                pass       -> WARN       (fi-pnv-d510)
                pass       -> WARN       (fi-bwr-2160)
                pass       -> WARN       (fi-elk-e7500)
                pass       -> WARN       (fi-ilk-650)
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-hsw-4770r)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
        Subgroup basic-threads:
                pass       -> WARN       (fi-gdg-551)
                pass       -> WARN       (fi-blb-e6850)
                pass       -> WARN       (fi-pnv-d510)
                pass       -> WARN       (fi-bwr-2160)
                pass       -> WARN       (fi-elk-e7500)
                pass       -> WARN       (fi-ilk-650)
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-hsw-4770r)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
Test gem_ctx_create:
        Subgroup basic:
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-hsw-4770r)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
        Subgroup basic-files:
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-hsw-4770r)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
Test gem_ctx_switch:
        Subgroup basic-default:
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-hsw-4770r)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
        Subgroup basic-default-heavy:
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-hsw-4770r)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
Test gem_exec_basic:
        Subgroup basic-blt:
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-hsw-4770r)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
        Subgroup basic-bsd:
                pass       -> WARN       (fi-elk-e7500)
                pass       -> WARN       (fi-ilk-650)
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-hsw-4770r)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
        Subgroup basic-bsd1:
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
        Subgroup basic-bsd2:
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
        Subgroup basic-default:
                pass       -> WARN       (fi-gdg-551)
                pass       -> WARN       (fi-blb-e6850)
                pass       -> WARN       (fi-pnv-d510)
                pass       -> WARN       (fi-bwr-2160)
                pass       -> WARN       (fi-elk-e7500)
                pass       -> WARN       (fi-ilk-650)
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-hsw-4770r)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
        Subgroup basic-render:
                pass       -> WARN       (fi-gdg-551)
                pass       -> WARN       (fi-blb-e6850)
                pass       -> WARN       (fi-pnv-d510)
                pass       -> WARN       (fi-bwr-2160)
                pass       -> WARN       (fi-elk-e7500)
                pass       -> WARN       (fi-ilk-650)
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-hsw-4770r)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-gvtdvm)
                pas

== Logs ==

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

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

* [igt-dev] [RFC PATCH v3 4/5] igt/core: Initial simple interleaved kmsg filtering
  2018-01-18 14:27     ` [igt-dev] " Daniel Vetter
  (?)
@ 2018-02-20 11:30     ` Petri Latvala
  2018-02-20 11:50       ` Daniel Vetter
  -1 siblings, 1 reply; 18+ messages in thread
From: Petri Latvala @ 2018-02-20 11:30 UTC (permalink / raw)
  To: igt-dev

From: Daniel Vetter <daniel.vetter@ffwll.ch>

Needs to be beefed up so that dmesg warning (and worse) are re-emmitted
as IGT_LOG_WARN. But only if they match one of our filters (which we
should probably allow to be extended, e.g. depending upon which driver
has been openened). This also requires that we at least parse the
basic of kmsg lines (adjusting the timestamp to match our own would be
real cool).

v2:
- Seek to the end of the kmsg buffer before starting the capturing.
- Increase linebuffer to avoid dmesg drowning out all the tests
  messages.

v3: Unlazy slightly and implement semi-correct kmsg parsing.

v4 (Petri): Handle continuation lines instead of crashing on them

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
---
 lib/igt_core.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 64 insertions(+), 1 deletion(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index aaafc1df..27686276 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -293,7 +293,7 @@ static const char *command_str;
 
 static char* igt_debug_log_domain_filter;
 static struct {
-	char *entries[256];
+	char *entries[2000];
 	uint8_t start, end;
 } log_buffer;
 static pthread_mutex_t log_buffer_mutex = PTHREAD_MUTEX_INITIALIZER;
@@ -581,6 +581,67 @@ static void oom_adjust_for_doom(void)
 
 }
 
+static void *kmsg_capture(void *arg)
+{
+	int kmsg_capture_fd = (uintptr_t) arg;
+	FILE *kmsg_file = fdopen(kmsg_capture_fd, "r");
+	char *line = NULL;
+	size_t line_len = 0;
+	ssize_t read;
+
+	while ((read = getline(&line, &line_len, kmsg_file))) {
+		int s;
+		unsigned flags;
+		unsigned long long seq, ts_usec;
+		char continuation;
+		enum igt_log_level level;
+
+		s = sscanf(line, "%u,%llu,%llu,%c;", &flags,
+			   &seq, &ts_usec, &continuation);
+
+		if (s == 4) {
+			if ((flags & 0x7) <= 4)
+				level = IGT_LOG_WARN;
+			else
+				level = IGT_LOG_DEBUG;
+
+			igt_log("dmesg", level, "[%llu.%06llu], %s",
+				ts_usec / 1000000,
+				ts_usec % 1000000,
+				index(line, ';') + 1);
+		} else if (line[0] == ' ') {
+			/* continuation line; ignore */
+		} else {
+			igt_warn("Cannot parse kmsg line: %s\n", line);
+		}
+	}
+
+	igt_warn("ran out of dmesg, this shouldn't happen\n");
+
+	free(line);
+	fclose(kmsg_file);
+	return NULL;
+}
+
+static void start_kmsg_recording(void)
+{
+	static pthread_t kmsg_capture_thread;
+	int kmsg_capture_fd;
+
+	kmsg_capture_fd = open("/dev/kmsg",
+			       O_RDONLY | O_CLOEXEC);
+
+	if (kmsg_capture_fd < 0) {
+		igt_info("no dmesg capturing\n");
+		return;
+	}
+
+	lseek(kmsg_capture_fd, 0, SEEK_END);
+
+	pthread_create(&kmsg_capture_thread, NULL,
+		       kmsg_capture, (void *)(uintptr_t) kmsg_capture_fd);
+}
+
 #ifdef HAVE_GLIB
 static void common_init_config(void)
 {
@@ -814,6 +875,8 @@ out:
 		kmsg(KERN_INFO "[IGT] %s: executing\n", command_str);
 		print_version();
 
+		start_kmsg_recording();
+
 		sync();
 		oom_adjust_for_doom();
 		ftrace_dump_on_oops(true);
-- 
2.11.0

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

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

* Re: [igt-dev] [RFC PATCH v3 4/5] igt/core: Initial simple interleaved kmsg filtering
  2018-02-20 11:30     ` [igt-dev] [RFC PATCH v3 4/5] " Petri Latvala
@ 2018-02-20 11:50       ` Daniel Vetter
  2018-02-20 12:09         ` Daniel Vetter
  0 siblings, 1 reply; 18+ messages in thread
From: Daniel Vetter @ 2018-02-20 11:50 UTC (permalink / raw)
  To: Petri Latvala; +Cc: igt-dev

On Tue, Feb 20, 2018 at 01:30:41PM +0200, Petri Latvala wrote:
> From: Daniel Vetter <daniel.vetter@ffwll.ch>
> 
> Needs to be beefed up so that dmesg warning (and worse) are re-emmitted
> as IGT_LOG_WARN. But only if they match one of our filters (which we
> should probably allow to be extended, e.g. depending upon which driver
> has been openened). This also requires that we at least parse the
> basic of kmsg lines (adjusting the timestamp to match our own would be
> real cool).
> 
> v2:
> - Seek to the end of the kmsg buffer before starting the capturing.
> - Increase linebuffer to avoid dmesg drowning out all the tests
>   messages.
> 
> v3: Unlazy slightly and implement semi-correct kmsg parsing.
> 
> v4 (Petri): Handle continuation lines instead of crashing on them
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Petri Latvala <petri.latvala@intel.com>
> ---
>  lib/igt_core.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 64 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/igt_core.c b/lib/igt_core.c
> index aaafc1df..27686276 100644
> --- a/lib/igt_core.c
> +++ b/lib/igt_core.c
> @@ -293,7 +293,7 @@ static const char *command_str;
>  
>  static char* igt_debug_log_domain_filter;
>  static struct {
> -	char *entries[256];
> +	char *entries[2000];
>  	uint8_t start, end;
>  } log_buffer;
>  static pthread_mutex_t log_buffer_mutex = PTHREAD_MUTEX_INITIALIZER;
> @@ -581,6 +581,67 @@ static void oom_adjust_for_doom(void)
>  
>  }
>  
> +static void *kmsg_capture(void *arg)
> +{
> +	int kmsg_capture_fd = (uintptr_t) arg;
> +	FILE *kmsg_file = fdopen(kmsg_capture_fd, "r");
> +	char *line = NULL;
> +	size_t line_len = 0;
> +	ssize_t read;

Please add

	/* See Documentation/ABI/testing/dev-kmsg in the kernel sources */

for dummies like me who tried to reverse-engineer the uapi from the
chardev sources :-)

> +
> +	while ((read = getline(&line, &line_len, kmsg_file))) {
> +		int s;
> +		unsigned flags;
> +		unsigned long long seq, ts_usec;
> +		char continuation;
> +		enum igt_log_level level;

Reading docs we also need to handle -EPIPE:
		if (read == -1)
			if (errno = EPIPE)
				continue; /* we can get -EPIPE on buffer overflow */
			else
				break;

With those 2 changes Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
on your version.

Thanks for testing this.
-Daniel

> +
> +		s = sscanf(line, "%u,%llu,%llu,%c;", &flags,
> +			   &seq, &ts_usec, &continuation);
> +
> +		if (s == 4) {
> +			if ((flags & 0x7) <= 4)
> +				level = IGT_LOG_WARN;
> +			else
> +				level = IGT_LOG_DEBUG;
> +
> +			igt_log("dmesg", level, "[%llu.%06llu], %s",
> +				ts_usec / 1000000,
> +				ts_usec % 1000000,
> +				index(line, ';') + 1);
> +		} else if (line[0] == ' ') {
> +			/* continuation line; ignore */
> +		} else {
> +			igt_warn("Cannot parse kmsg line: %s\n", line);
> +		}
> +	}
> +
> +	igt_warn("ran out of dmesg, this shouldn't happen\n");
> +
> +	free(line);
> +	fclose(kmsg_file);
> +	return NULL;
> +}
> +
> +static void start_kmsg_recording(void)
> +{
> +	static pthread_t kmsg_capture_thread;
> +	int kmsg_capture_fd;
> +
> +	kmsg_capture_fd = open("/dev/kmsg",
> +			       O_RDONLY | O_CLOEXEC);
> +
> +	if (kmsg_capture_fd < 0) {
> +		igt_info("no dmesg capturing\n");
> +		return;
> +	}
> +
> +	lseek(kmsg_capture_fd, 0, SEEK_END);
> +
> +	pthread_create(&kmsg_capture_thread, NULL,
> +		       kmsg_capture, (void *)(uintptr_t) kmsg_capture_fd);
> +}
> +
>  #ifdef HAVE_GLIB
>  static void common_init_config(void)
>  {
> @@ -814,6 +875,8 @@ out:
>  		kmsg(KERN_INFO "[IGT] %s: executing\n", command_str);
>  		print_version();
>  
> +		start_kmsg_recording();
> +
>  		sync();
>  		oom_adjust_for_doom();
>  		ftrace_dump_on_oops(true);
> -- 
> 2.11.0
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [RFC PATCH v3 4/5] igt/core: Initial simple interleaved kmsg filtering
  2018-02-20 11:50       ` Daniel Vetter
@ 2018-02-20 12:09         ` Daniel Vetter
  0 siblings, 0 replies; 18+ messages in thread
From: Daniel Vetter @ 2018-02-20 12:09 UTC (permalink / raw)
  To: Petri Latvala; +Cc: igt-dev

On Tue, Feb 20, 2018 at 12:50:45PM +0100, Daniel Vetter wrote:
> On Tue, Feb 20, 2018 at 01:30:41PM +0200, Petri Latvala wrote:
> > From: Daniel Vetter <daniel.vetter@ffwll.ch>
> > 
> > Needs to be beefed up so that dmesg warning (and worse) are re-emmitted
> > as IGT_LOG_WARN. But only if they match one of our filters (which we
> > should probably allow to be extended, e.g. depending upon which driver
> > has been openened). This also requires that we at least parse the
> > basic of kmsg lines (adjusting the timestamp to match our own would be
> > real cool).
> > 
> > v2:
> > - Seek to the end of the kmsg buffer before starting the capturing.
> > - Increase linebuffer to avoid dmesg drowning out all the tests
> >   messages.
> > 
> > v3: Unlazy slightly and implement semi-correct kmsg parsing.
> > 
> > v4 (Petri): Handle continuation lines instead of crashing on them
> > 
> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> > Signed-off-by: Petri Latvala <petri.latvala@intel.com>
> > ---
> >  lib/igt_core.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
> >  1 file changed, 64 insertions(+), 1 deletion(-)
> > 
> > diff --git a/lib/igt_core.c b/lib/igt_core.c
> > index aaafc1df..27686276 100644
> > --- a/lib/igt_core.c
> > +++ b/lib/igt_core.c
> > @@ -293,7 +293,7 @@ static const char *command_str;
> >  
> >  static char* igt_debug_log_domain_filter;
> >  static struct {
> > -	char *entries[256];
> > +	char *entries[2000];
> >  	uint8_t start, end;
> >  } log_buffer;
> >  static pthread_mutex_t log_buffer_mutex = PTHREAD_MUTEX_INITIALIZER;
> > @@ -581,6 +581,67 @@ static void oom_adjust_for_doom(void)
> >  
> >  }
> >  
> > +static void *kmsg_capture(void *arg)
> > +{
> > +	int kmsg_capture_fd = (uintptr_t) arg;
> > +	FILE *kmsg_file = fdopen(kmsg_capture_fd, "r");
> > +	char *line = NULL;
> > +	size_t line_len = 0;
> > +	ssize_t read;
> 
> Please add
> 
> 	/* See Documentation/ABI/testing/dev-kmsg in the kernel sources */
> 
> for dummies like me who tried to reverse-engineer the uapi from the
> chardev sources :-)
> 
> > +
> > +	while ((read = getline(&line, &line_len, kmsg_file))) {
> > +		int s;
> > +		unsigned flags;
> > +		unsigned long long seq, ts_usec;
> > +		char continuation;
> > +		enum igt_log_level level;
> 
> Reading docs we also need to handle -EPIPE:
> 		if (read == -1)
> 			if (errno = EPIPE)
> 				continue; /* we can get -EPIPE on buffer overflow */
> 			else
> 				break;
> 
> With those 2 changes Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> on your version.
> 
> Thanks for testing this.
> -Daniel
> 
> > +
> > +		s = sscanf(line, "%u,%llu,%llu,%c;", &flags,
> > +			   &seq, &ts_usec, &continuation);
> > +
> > +		if (s == 4) {
> > +			if ((flags & 0x7) <= 4)
> > +				level = IGT_LOG_WARN;
> > +			else
> > +				level = IGT_LOG_DEBUG;

As a precaution against KERN_CONT lines we might want to clamp the log
level here:

			if (c == '+')
				level = IGT_LOG_DEBUG;

Assuming I'm reading the docs correctly. This should avoid continuation
lines being logged at the wrong (default = WARN) level.
-Daniel

> > +
> > +			igt_log("dmesg", level, "[%llu.%06llu], %s",
> > +				ts_usec / 1000000,
> > +				ts_usec % 1000000,
> > +				index(line, ';') + 1);
> > +		} else if (line[0] == ' ') {
> > +			/* continuation line; ignore */
> > +		} else {
> > +			igt_warn("Cannot parse kmsg line: %s\n", line);
> > +		}
> > +	}
> > +
> > +	igt_warn("ran out of dmesg, this shouldn't happen\n");
> > +
> > +	free(line);
> > +	fclose(kmsg_file);
> > +	return NULL;
> > +}
> > +
> > +static void start_kmsg_recording(void)
> > +{
> > +	static pthread_t kmsg_capture_thread;
> > +	int kmsg_capture_fd;
> > +
> > +	kmsg_capture_fd = open("/dev/kmsg",
> > +			       O_RDONLY | O_CLOEXEC);
> > +
> > +	if (kmsg_capture_fd < 0) {
> > +		igt_info("no dmesg capturing\n");
> > +		return;
> > +	}
> > +
> > +	lseek(kmsg_capture_fd, 0, SEEK_END);
> > +
> > +	pthread_create(&kmsg_capture_thread, NULL,
> > +		       kmsg_capture, (void *)(uintptr_t) kmsg_capture_fd);
> > +}
> > +
> >  #ifdef HAVE_GLIB
> >  static void common_init_config(void)
> >  {
> > @@ -814,6 +875,8 @@ out:
> >  		kmsg(KERN_INFO "[IGT] %s: executing\n", command_str);
> >  		print_version();
> >  
> > +		start_kmsg_recording();
> > +
> >  		sync();
> >  		oom_adjust_for_doom();
> >  		ftrace_dump_on_oops(true);
> > -- 
> > 2.11.0
> > 
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✗ Fi.CI.BAT: warning for series starting with [RFC,1/5] tests/sw_sync: use igt_fork_helper (rev3)
  2018-01-18 13:59 ` [igt-dev] " Daniel Vetter
                   ` (6 preceding siblings ...)
  (?)
@ 2018-02-20 15:22 ` Patchwork
  -1 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2018-02-20 15:22 UTC (permalink / raw)
  To: Petri Latvala; +Cc: igt-dev

== Series Details ==

Series: series starting with [RFC,1/5] tests/sw_sync: use igt_fork_helper (rev3)
URL   : https://patchwork.freedesktop.org/series/36693/
State : warning

== Summary ==

IGT patchset tested on top of latest successful build
8a57f685e1640422ee202433e6378bf5f741163c tests/kms_chv_cursor_fail: Use igt_display_reset() and igt_pipe_crc_drain()

with latest DRM-Tip kernel build CI_DRM_3807
337c900251d6 drm-tip: 2018y-02m-20d-14h-06m-44s UTC integration manifest

No testlist changes.

Test debugfs_test:
        Subgroup read_all_entries:
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-guc)
Test gem_busy:
        Subgroup basic-busy-default:
                pass       -> WARN       (fi-blb-e6850)
                pass       -> WARN       (fi-pnv-d510)
                pass       -> WARN       (fi-elk-e7500)
                pass       -> WARN       (fi-ilk-650)
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-guc)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
                pass       -> WARN       (fi-cfl-s2)
        Subgroup basic-hang-default:
                pass       -> WARN       (fi-blb-e6850)
                pass       -> WARN       (fi-pnv-d510)
                pass       -> WARN       (fi-elk-e7500)
                pass       -> WARN       (fi-ilk-650)
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u) fdo#104108 +20
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-guc)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
                pass       -> WARN       (fi-cfl-s2)
Test gem_close_race:
        Subgroup basic-process:
                pass       -> WARN       (fi-gdg-551)
                pass       -> WARN       (fi-blb-e6850)
                pass       -> WARN       (fi-pnv-d510)
                pass       -> WARN       (fi-bwr-2160)
                pass       -> WARN       (fi-elk-e7500)
                pass       -> WARN       (fi-ilk-650)
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-guc)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
                pass       -> WARN       (fi-cfl-s2)
        Subgroup basic-threads:
                pass       -> WARN       (fi-gdg-551)
                pass       -> WARN       (fi-blb-e6850)
                pass       -> WARN       (fi-pnv-d510)
                pass       -> WARN       (fi-bwr-2160)
                pass       -> WARN       (fi-elk-e7500)
                pass       -> WARN       (fi-ilk-650)
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-guc)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
                pass       -> WARN       (fi-cfl-s2)
Test gem_ctx_create:
        Subgroup basic:
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-guc)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
                pass       -> WARN       (fi-cfl-s2)
        Subgroup basic-files:
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-guc)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
                pass       -> WARN       (fi-cfl-s2)
Test gem_ctx_switch:
        Subgroup basic-default:
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-guc)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
                pass       -> WARN       (fi-cfl-s2)
        Subgroup basic-default-heavy:
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-guc)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
                pass       -> WARN       (fi-cfl-s2)
Test gem_exec_basic:
        Subgroup basic-blt:
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-guc)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
                pass       -> WARN       (fi-cfl-s2)
        Subgroup basic-bsd:
                pass       -> WARN       (fi-elk-e7500)
                pass       -> WARN       (fi-ilk-650)
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-guc)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
                pass       -> WARN       (fi-cfl-s2)
        Subgroup basic-bsd1:
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
        Subgroup basic-bsd2:
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
        Subgroup basic-default:
                pass       -> WARN       (fi-gdg-551)
                pass       -> WARN       (fi-blb-e6850)
                pass       -> WARN       (fi-pnv-d510)
                pass       -> WARN       (fi-bwr-2160)
                pass       -> WARN       (fi-elk-e7500)
                pass       -> WARN       (fi-ilk-650)
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-guc)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kbl-r)
                pass       -> WARN       (fi-glk-1)
                pass       -> WARN       (fi-cfl-s2)
        Subgroup basic-render:
                pass       -> WARN       (fi-gdg-551)
                pass       -> WARN       (fi-blb-e6850)
                pass       -> WARN       (fi-pnv-d510)
                pass       -> WARN       (fi-bwr-2160)
                pass       -> WARN       (fi-elk-e7500)
                pass       -> WARN       (fi-ilk-650)
                pass       -> WARN       (fi-snb-2520m)
                pass       -> WARN       (fi-snb-2600)
                pass       -> WARN       (fi-ivb-3520m)
                pass       -> WARN       (fi-ivb-3770)
                pass       -> WARN       (fi-byt-j1900)
                pass       -> WARN       (fi-byt-n2820)
                pass       -> WARN       (fi-hsw-4770)
                pass       -> WARN       (fi-bdw-5557u)
                pass       -> WARN       (fi-bdw-gvtdvm)
                pass       -> WARN       (fi-bsw-n3050)
                pass       -> WARN       (fi-skl-6260u)
                pass       -> WARN       (fi-skl-6600u)
                pass       -> WARN       (fi-skl-6700hq)
                pass       -> WARN       (fi-skl-6700k2)
                pass       -> WARN       (fi-skl-6770hq)
                pass       -> WARN       (fi-skl-guc)
                pass       -> WARN       (fi-skl-gvtdvm)
                pass       -> WARN       (fi-bxt-dsi)
                pass       -> WARN       (fi-bxt-j4205)
                pass       -> WARN       (fi-kbl-7500u)
                pass       -> WARN       (fi-kbl-7560u)
                pass       -> WARN       (fi-kbl-7567u)
                pass       -> WARN       (fi-kb

== Logs ==

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

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

end of thread, other threads:[~2018-02-20 15:22 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-18 13:59 [RFC PATCH 1/5] tests/sw_sync: use igt_fork_helper Daniel Vetter
2018-01-18 13:59 ` [igt-dev] " Daniel Vetter
2018-01-18 13:59 ` [RFC PATCH 2/5] lib/core: make logging pthread vs. fork safe Daniel Vetter
2018-01-18 13:59   ` [igt-dev] " Daniel Vetter
2018-01-18 13:59 ` [RFC PATCH 3/5] lib/core: Don't hide non-debug message when filtering for a debug log domain Daniel Vetter
2018-01-18 13:59   ` [igt-dev] " Daniel Vetter
2018-01-18 13:59 ` [RFC PATCH 4/5] igt/core: Initial simple interleaved kmsg filtering Daniel Vetter
2018-01-18 13:59   ` [igt-dev] " Daniel Vetter
2018-01-18 14:27   ` [RFC PATCH] " Daniel Vetter
2018-01-18 14:27     ` [igt-dev] " Daniel Vetter
2018-02-20 11:30     ` [igt-dev] [RFC PATCH v3 4/5] " Petri Latvala
2018-02-20 11:50       ` Daniel Vetter
2018-02-20 12:09         ` Daniel Vetter
2018-01-18 13:59 ` [RFC PATCH 5/5] lib/core: report subtests that hit an igt_warning as WARNING Daniel Vetter
2018-01-18 13:59   ` [igt-dev] " Daniel Vetter
2018-01-18 14:21 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [RFC,1/5] tests/sw_sync: use igt_fork_helper Patchwork
2018-01-18 15:05 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [RFC,1/5] tests/sw_sync: use igt_fork_helper (rev2) Patchwork
2018-02-20 15:22 ` [igt-dev] ✗ Fi.CI.BAT: warning for series starting with [RFC,1/5] tests/sw_sync: use igt_fork_helper (rev3) Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.