* [igt-dev] [PATCH i-g-t 1/2] runner: Refactor timeouting
@ 2020-02-17 14:50 Petri Latvala
2020-02-17 14:50 ` [igt-dev] [PATCH i-g-t 2/2] runner: Introduce per-test timeouts Petri Latvala
` (5 more replies)
0 siblings, 6 replies; 11+ messages in thread
From: Petri Latvala @ 2020-02-17 14:50 UTC (permalink / raw)
To: igt-dev; +Cc: Petri Latvala
Instead of aiming for inactivity_timeout and splitting that into
suitable intervals for watchdog pinging, replace the whole logic with
one-second select() timeouts and checking if we're reaching a timeout
condition based on current time and the time passed since a particular
event, be it the last activity or the time of signaling the child
processes.
With the refactoring, we gain a couple of new features for free:
- use-watchdog now makes sense even without
inactivity-timeout. Previously use-watchdog was silently ignored if
inactivity-timeout was not set. Now, watchdogs will be used always if
configured so, effectively ensuring the device gets rebooted if
userspace dies without other timeout tracking.
- Killing tests early on kernel taint now happens even
earlier. Previously on an inactive system we possibly waited for some
tens of seconds before checking kernel taints.
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
---
runner/executor.c | 224 +++++++++++++++++++++++-----------------------
1 file changed, 113 insertions(+), 111 deletions(-)
diff --git a/runner/executor.c b/runner/executor.c
index 3ea5d167..33610c9e 100644
--- a/runner/executor.c
+++ b/runner/executor.c
@@ -93,7 +93,7 @@ static void init_watchdogs(struct settings *settings)
memset(&watchdogs, 0, sizeof(watchdogs));
- if (!settings->use_watchdog || settings->inactivity_timeout <= 0)
+ if (!settings->use_watchdog)
return;
if (settings->log_level >= LOG_LEVEL_VERBOSE) {
@@ -672,6 +672,69 @@ static void show_kernel_task_state(void)
sysrq('t');
}
+static const char *need_to_timeout(struct settings *settings,
+ int killed,
+ unsigned long taints,
+ double time_since_activity,
+ double time_since_kill)
+{
+ if (killed) {
+ /*
+ * Timeout after being killed is a hardcoded amount
+ * depending on which signal we already used. The
+ * exception is SIGKILL which just immediately bails
+ * out if the kernel is tainted, because there's
+ * little to no hope of the process dying gracefully
+ * or at all.
+ *
+ * Note that if killed == SIGKILL, the caller needs
+ * special handling anyway and should ignore the
+ * actual string returned.
+ */
+ const double kill_timeout = killed == SIGKILL ? 20.0 : 120.0;
+
+ if ((killed == SIGKILL && is_tainted(taints)) ||
+ time_since_kill > kill_timeout)
+ return "Timeout. Killing the current test with SIGKILL.\n";
+
+ /*
+ * We don't care for the other reasons to timeout if
+ * we're already killing the test.
+ */
+ return NULL;
+ }
+
+ /*
+ * If we're configured to care about taints, kill the
+ * test if there's a taint.
+ */
+ if (settings->abort_mask & ABORT_TAINT &&
+ is_tainted(taints))
+ return "Killing the test because the kernel is tainted.\n";
+
+ if (settings->inactivity_timeout != 0 &&
+ time_since_activity > settings->inactivity_timeout) {
+ show_kernel_task_state();
+ return "Timeout. Killing the current test with SIGQUIT.\n";
+ }
+
+ return NULL;
+}
+
+static int next_kill_signal(int killed)
+{
+ switch (killed) {
+ case 0:
+ return SIGQUIT;
+ case SIGQUIT:
+ return SIGKILL;
+ case SIGKILL:
+ default:
+ assert(!"Unreachable");
+ return SIGKILL;
+ }
+}
+
/*
* Returns:
* =0 - Success
@@ -693,18 +756,15 @@ static int monitor_output(pid_t child,
ssize_t s;
int n, status;
int nfds = outfd;
- int timeout = settings->inactivity_timeout;
- int timeout_intervals = 1, intervals_left;
- int wd_extra = 10;
+ const int interval_length = 1;
+ int wd_timeout;
int killed = 0; /* 0 if not killed, signal number otherwise */
- int sigkill_timeout = 120;
- int sigkill_interval = 20;
- int sigkill_intervals_left = sigkill_timeout / sigkill_interval;
- struct timespec time_beg, time_end;
+ struct timespec time_beg, time_now, time_last_activity, time_killed;
unsigned long taints = 0;
bool aborting = false;
igt_gettime(&time_beg);
+ time_last_activity = time_killed = time_beg;
if (errfd > nfds)
nfds = errfd;
@@ -714,32 +774,32 @@ static int monitor_output(pid_t child,
nfds = sigfd;
nfds++;
- if (timeout > 0) {
+ /*
+ * If we're still alive, we want to kill the test process
+ * instead of cutting power. Use a healthy 2 minute watchdog
+ * timeout that gets automatically reduced if the device
+ * doesn't support it.
+ *
+ * watchdogs_set_timeout() is a no-op and returns the given
+ * timeout if we don't have use_watchdog set in settings.
+ */
+ wd_timeout = watchdogs_set_timeout(120);
+
+ if (wd_timeout < 120) {
/*
- * Use original timeout plus some leeway. If we're still
- * alive, we want to kill the test process instead of cutting
- * power.
+ * Watchdog timeout smaller, warn the user. With the
+ * short select() timeout we're using we're able to
+ * ping the watchdog regardless.
*/
- int wd_timeout = watchdogs_set_timeout(timeout + wd_extra);
-
- if (wd_timeout < timeout + wd_extra) {
- /* Watchdog timeout smaller, so ping it more often */
- if (wd_timeout - wd_extra < 0)
- wd_extra = wd_timeout / 2;
- timeout_intervals = timeout / (wd_timeout - wd_extra);
- timeout /= timeout_intervals;
-
- if (settings->log_level >= LOG_LEVEL_VERBOSE) {
- outf("Watchdog doesn't support the timeout we requested (shortened to %d seconds). Using %d intervals of %d seconds.\n",
- wd_timeout, timeout_intervals, timeout);
- }
+ if (settings->log_level >= LOG_LEVEL_VERBOSE) {
+ outf("Watchdog doesn't support the timeout we requested (shortened to %d seconds).\n",
+ wd_timeout);
}
}
- intervals_left = timeout_intervals;
-
while (outfd >= 0 || errfd >= 0 || sigfd >= 0) {
- struct timeval tv = { .tv_sec = timeout };
+ const char *timeout_reason;
+ struct timeval tv = { .tv_sec = interval_length };
FD_ZERO(&set);
if (outfd >= 0)
@@ -751,7 +811,7 @@ static int monitor_output(pid_t child,
if (sigfd >= 0)
FD_SET(sigfd, &set);
- n = select(nfds, &set, NULL, NULL, timeout == 0 ? NULL : &tv);
+ n = select(nfds, &set, NULL, NULL, &tv);
ping_watchdogs();
if (n < 0) {
@@ -759,86 +819,18 @@ static int monitor_output(pid_t child,
return -1;
}
- /*
- * If we're configured to care about taints, kill the
- * test if there's a taint. But only if we didn't
- * already kill it, and make sure we still process the
- * fds select() marked for us.
- */
- if (settings->abort_mask & ABORT_TAINT &&
- tainted(&taints) &&
- killed == 0) {
- if (settings->log_level >= LOG_LEVEL_NORMAL) {
- outf("Killing the test because the kernel is tainted.\n");
- fflush(stdout);
- }
-
- killed = SIGQUIT;
- if (!kill_child(killed, child))
- return -1;
-
- /*
- * Now continue the loop and let the
- * dying child be handled normally.
- */
- timeout = 20;
- watchdogs_set_timeout(120);
- intervals_left = timeout_intervals = 1;
- } else if (n == 0) {
- if (--intervals_left)
- continue;
+ igt_gettime(&time_now);
- switch (killed) {
- case 0:
- show_kernel_task_state();
- if (settings->log_level >= LOG_LEVEL_NORMAL) {
- outf("Timeout. Killing the current test with SIGQUIT.\n");
- fflush(stdout);
- }
-
- killed = SIGQUIT;
- if (!kill_child(killed, child))
- return -1;
-
- /*
- * Now continue the loop and let the
- * dying child be handled normally.
- */
- timeout = 20;
- watchdogs_set_timeout(120);
- intervals_left = timeout_intervals = 1;
- break;
- case SIGQUIT:
- if (settings->log_level >= LOG_LEVEL_NORMAL) {
- outf("Timeout. Killing the current test with SIGKILL.\n");
- fflush(stdout);
- }
-
- killed = SIGKILL;
- if (!kill_child(killed, child))
- return -1;
-
- /*
- * Allow the test two minutes to die
- * on SIGKILL. If it takes more than
- * that, we're quite likely in a
- * scenario where we want to reboot
- * the machine anyway.
- */
- watchdogs_set_timeout(sigkill_timeout);
- timeout = sigkill_interval;
- intervals_left = 1; /* Intervals handled separately for sigkill */
- break;
- case SIGKILL:
- if (!is_tainted(taints) && --sigkill_intervals_left) {
- intervals_left = 1;
- break;
- }
+ timeout_reason = need_to_timeout(settings, killed, tainted(&taints),
+ igt_time_elapsed(&time_last_activity, &time_now),
+ igt_time_elapsed(&time_killed, &time_now));
+ if (timeout_reason) {
+ if (killed == SIGKILL) {
/* Nothing that can be done, really. Let's tell the caller we want to abort. */
if (settings->log_level >= LOG_LEVEL_NORMAL) {
- errf("Child refuses to die, tainted %lx. Aborting.\n",
+ errf("Child refuses to die, tainted 0x%lx. Aborting.\n",
taints);
if (kill(child, 0) && errno == ESRCH)
errf("The test process no longer exists, "
@@ -853,15 +845,23 @@ static int monitor_output(pid_t child,
return -1;
}
- continue;
- }
+ if (settings->log_level >= LOG_LEVEL_NORMAL) {
+ outf("%s", timeout_reason);
+ fflush(stdout);
+ }
- intervals_left = timeout_intervals;
+ killed = next_kill_signal(killed);
+ if (!kill_child(killed, child))
+ return -1;
+ time_killed = time_now;
+ }
/* TODO: Refactor these handlers to their own functions */
if (outfd >= 0 && FD_ISSET(outfd, &set)) {
char *newline;
+ time_last_activity = time_now;
+
s = read(outfd, buf, sizeof(buf));
if (s <= 0) {
if (s < 0) {
@@ -929,6 +929,8 @@ static int monitor_output(pid_t child,
out_end:
if (errfd >= 0 && FD_ISSET(errfd, &set)) {
+ time_last_activity = time_now;
+
s = read(errfd, buf, sizeof(buf));
if (s <= 0) {
if (s < 0) {
@@ -945,6 +947,8 @@ static int monitor_output(pid_t child,
}
if (kmsgfd >= 0 && FD_ISSET(kmsgfd, &set)) {
+ time_last_activity = time_now;
+
s = read(kmsgfd, buf, sizeof(buf));
if (s < 0) {
if (errno != EPIPE && errno != EINVAL) {
@@ -995,17 +999,15 @@ static int monitor_output(pid_t child,
}
aborting = true;
- timeout = 2;
killed = SIGQUIT;
if (!kill_child(killed, child))
return -1;
+ time_killed = time_now;
continue;
}
- igt_gettime(&time_end);
-
- time = igt_time_elapsed(&time_beg, &time_end);
+ time = igt_time_elapsed(&time_beg, &time_now);
if (time < 0.0)
time = 0.0;
--
2.20.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 11+ messages in thread* [igt-dev] [PATCH i-g-t 2/2] runner: Introduce per-test timeouts 2020-02-17 14:50 [igt-dev] [PATCH i-g-t 1/2] runner: Refactor timeouting Petri Latvala @ 2020-02-17 14:50 ` Petri Latvala 2020-02-18 10:24 ` Chris Wilson 2020-02-17 16:47 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [i-g-t,1/2] runner: Refactor timeouting Patchwork ` (4 subsequent siblings) 5 siblings, 1 reply; 11+ messages in thread From: Petri Latvala @ 2020-02-17 14:50 UTC (permalink / raw) To: igt-dev; +Cc: Petri Latvala A new config option, --per-test-timeout, sets a time a single test cannot exceed without getting itself killed. The time resets when starting a subtest or a dynamic subtest, so an execution with --per-test-timeout=20 can indeed go over 20 seconds a long as it launches a dynamic subtest within that time. As a bonus, verbose log level from runner now also prints dynamic subtest begin/result. Signed-off-by: Petri Latvala <petri.latvala@intel.com> --- runner/executor.c | 34 +++++++++++++++++++++++++++++++--- runner/runner_tests.c | 6 ++++++ runner/settings.c | 11 +++++++++++ runner/settings.h | 1 + 4 files changed, 49 insertions(+), 3 deletions(-) diff --git a/runner/executor.c b/runner/executor.c index 33610c9e..72e45b65 100644 --- a/runner/executor.c +++ b/runner/executor.c @@ -676,6 +676,7 @@ static const char *need_to_timeout(struct settings *settings, int killed, unsigned long taints, double time_since_activity, + double time_since_subtest, double time_since_kill) { if (killed) { @@ -712,10 +713,16 @@ static const char *need_to_timeout(struct settings *settings, is_tainted(taints)) return "Killing the test because the kernel is tainted.\n"; + if (settings->per_test_timeout != 0 && + time_since_subtest > settings->per_test_timeout) { + show_kernel_task_state(); + return "Per-test timeout exceeded. Killing the current test with SIGQUIT.\n"; + } + if (settings->inactivity_timeout != 0 && time_since_activity > settings->inactivity_timeout) { show_kernel_task_state(); - return "Timeout. Killing the current test with SIGQUIT.\n"; + return "Inactivity timeout exceeded. Killing the current test with SIGQUIT.\n"; } return NULL; @@ -759,12 +766,12 @@ static int monitor_output(pid_t child, const int interval_length = 1; int wd_timeout; int killed = 0; /* 0 if not killed, signal number otherwise */ - struct timespec time_beg, time_now, time_last_activity, time_killed; + struct timespec time_beg, time_now, time_last_activity, time_last_subtest, time_killed; unsigned long taints = 0; bool aborting = false; igt_gettime(&time_beg); - time_last_activity = time_killed = time_beg; + time_last_activity = time_last_subtest = time_killed = time_beg; if (errfd > nfds) nfds = errfd; @@ -823,6 +830,7 @@ static int monitor_output(pid_t child, timeout_reason = need_to_timeout(settings, killed, tainted(&taints), igt_time_elapsed(&time_last_activity, &time_now), + igt_time_elapsed(&time_last_subtest, &time_now), igt_time_elapsed(&time_killed, &time_now)); if (timeout_reason) { @@ -893,6 +901,8 @@ static int monitor_output(pid_t child, linelen - strlen(STARTING_SUBTEST)); current_subtest[linelen - strlen(STARTING_SUBTEST)] = '\0'; + time_last_subtest = time_now; + if (settings->log_level >= LOG_LEVEL_VERBOSE) { fwrite(outbuf, 1, linelen, stdout); } @@ -921,6 +931,24 @@ static int monitor_output(pid_t child, } } } + if (linelen > strlen(STARTING_DYNAMIC_SUBTEST) && + !memcmp(outbuf, STARTING_DYNAMIC_SUBTEST, strlen(STARTING_DYNAMIC_SUBTEST))) { + time_last_subtest = time_now; + + if (settings->log_level >= LOG_LEVEL_VERBOSE) { + fwrite(outbuf, 1, linelen, stdout); + } + } + if (linelen > strlen(DYNAMIC_SUBTEST_RESULT) && + !memcmp(outbuf, DYNAMIC_SUBTEST_RESULT, strlen(DYNAMIC_SUBTEST_RESULT))) { + char *delim = memchr(outbuf, ':', linelen); + + if (delim != NULL) { + if (settings->log_level >= LOG_LEVEL_VERBOSE) { + fwrite(outbuf, 1, linelen, stdout); + } + } + } memmove(outbuf, newline + 1, outbufsize - linelen); outbufsize -= linelen; diff --git a/runner/runner_tests.c b/runner/runner_tests.c index ed30b3f9..2f4e0abb 100644 --- a/runner/runner_tests.c +++ b/runner/runner_tests.c @@ -173,6 +173,7 @@ static void assert_settings_equal(struct settings *one, struct settings *two) igt_assert_eq(one->overwrite, two->overwrite); igt_assert_eq(one->multiple_mode, two->multiple_mode); igt_assert_eq(one->inactivity_timeout, two->inactivity_timeout); + igt_assert_eq(one->per_test_timeout, two->per_test_timeout); igt_assert_eq(one->use_watchdog, two->use_watchdog); igt_assert_eqstr(one->test_root, two->test_root); igt_assert_eqstr(one->results_path, two->results_path); @@ -261,6 +262,7 @@ igt_main igt_assert(!settings->overwrite); igt_assert(!settings->multiple_mode); igt_assert_eq(settings->inactivity_timeout, 0); + igt_assert_eq(settings->per_test_timeout, 0); igt_assert_eq(settings->overall_timeout, 0); igt_assert(!settings->use_watchdog); igt_assert(strstr(settings->test_root, "test-root-dir") != NULL); @@ -378,6 +380,7 @@ igt_main igt_assert(!settings->overwrite); igt_assert(!settings->multiple_mode); igt_assert_eq(settings->inactivity_timeout, 0); + igt_assert_eq(settings->per_test_timeout, 0); igt_assert_eq(settings->overall_timeout, 0); igt_assert(!settings->use_watchdog); igt_assert(strstr(settings->test_root, testdatadir) != NULL); @@ -408,6 +411,7 @@ igt_main "--overwrite", "--multiple-mode", "--inactivity-timeout", "27", + "--per-test-timeout", "72", "--overall-timeout", "360", "--use-watchdog", "--piglit-style-dmesg", @@ -438,6 +442,7 @@ igt_main igt_assert(settings->overwrite); igt_assert(settings->multiple_mode); igt_assert_eq(settings->inactivity_timeout, 27); + igt_assert_eq(settings->per_test_timeout, 72); igt_assert_eq(settings->overall_timeout, 360); igt_assert(settings->use_watchdog); igt_assert(strstr(settings->test_root, "test-root-dir") != NULL); @@ -827,6 +832,7 @@ igt_main "--overwrite", "--multiple-mode", "--inactivity-timeout", "27", + "--per-test-timeout", "72", "--overall-timeout", "360", "--use-watchdog", "--piglit-style-dmesg", diff --git a/runner/settings.c b/runner/settings.c index d601cd11..32840307 100644 --- a/runner/settings.c +++ b/runner/settings.c @@ -20,6 +20,7 @@ enum { OPT_PIGLIT_DMESG, OPT_DMESG_WARN_LEVEL, OPT_OVERALL_TIMEOUT, + OPT_PER_TEST_TIMEOUT, OPT_HELP = 'h', OPT_NAME = 'n', OPT_DRY_RUN = 'd', @@ -163,6 +164,10 @@ static const char *usage_str = " --inactivity-timeout <seconds>\n" " Kill the running test after <seconds> of inactivity in\n" " the test's stdout, stderr, or dmesg\n" + " --per-test-timeout <seconds>\n" + " Kill the running test after <seconds>. This timeout is per\n" + " subtest, or dynamic subtest. In other words, every subtest,\n" + " even when running in multiple-mode, must finish in <seconds>.\n" " --overall-timeout <seconds>\n" " Don't execute more tests after <seconds> has elapsed\n" " --use-watchdog Use hardware watchdog for lethal enforcement of the\n" @@ -325,6 +330,7 @@ bool parse_options(int argc, char **argv, {"ignore-missing", no_argument, NULL, OPT_IGNORE_MISSING}, {"multiple-mode", no_argument, NULL, OPT_MULTIPLE}, {"inactivity-timeout", required_argument, NULL, OPT_TIMEOUT}, + {"per-test-timeout", required_argument, NULL, OPT_PER_TEST_TIMEOUT}, {"overall-timeout", required_argument, NULL, OPT_OVERALL_TIMEOUT}, {"use-watchdog", no_argument, NULL, OPT_WATCHDOG}, {"piglit-style-dmesg", no_argument, NULL, OPT_PIGLIT_DMESG}, @@ -388,6 +394,9 @@ bool parse_options(int argc, char **argv, case OPT_TIMEOUT: settings->inactivity_timeout = atoi(optarg); break; + case OPT_PER_TEST_TIMEOUT: + settings->per_test_timeout = atoi(optarg); + break; case OPT_OVERALL_TIMEOUT: settings->overall_timeout = atoi(optarg); break; @@ -617,6 +626,7 @@ bool serialize_settings(struct settings *settings) SERIALIZE_LINE(f, settings, overwrite, "%d"); SERIALIZE_LINE(f, settings, multiple_mode, "%d"); SERIALIZE_LINE(f, settings, inactivity_timeout, "%d"); + SERIALIZE_LINE(f, settings, per_test_timeout, "%d"); SERIALIZE_LINE(f, settings, overall_timeout, "%d"); SERIALIZE_LINE(f, settings, use_watchdog, "%d"); SERIALIZE_LINE(f, settings, piglit_style_dmesg, "%d"); @@ -662,6 +672,7 @@ bool read_settings_from_file(struct settings *settings, FILE *f) PARSE_LINE(settings, name, val, overwrite, numval); PARSE_LINE(settings, name, val, multiple_mode, numval); PARSE_LINE(settings, name, val, inactivity_timeout, numval); + PARSE_LINE(settings, name, val, per_test_timeout, numval); PARSE_LINE(settings, name, val, overall_timeout, numval); PARSE_LINE(settings, name, val, use_watchdog, numval); PARSE_LINE(settings, name, val, piglit_style_dmesg, numval); diff --git a/runner/settings.h b/runner/settings.h index 13409f04..5203ec6e 100644 --- a/runner/settings.h +++ b/runner/settings.h @@ -38,6 +38,7 @@ struct settings { bool overwrite; bool multiple_mode; int inactivity_timeout; + int per_test_timeout; int overall_timeout; bool use_watchdog; char *test_root; -- 2.20.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] runner: Introduce per-test timeouts 2020-02-17 14:50 ` [igt-dev] [PATCH i-g-t 2/2] runner: Introduce per-test timeouts Petri Latvala @ 2020-02-18 10:24 ` Chris Wilson 2020-02-18 11:26 ` Petri Latvala 0 siblings, 1 reply; 11+ messages in thread From: Chris Wilson @ 2020-02-18 10:24 UTC (permalink / raw) To: Petri Latvala, igt-dev; +Cc: Petri Latvala Quoting Petri Latvala (2020-02-17 14:50:42) > A new config option, --per-test-timeout, sets a time a single test > cannot exceed without getting itself killed. The time resets when > starting a subtest or a dynamic subtest, so an execution with > --per-test-timeout=20 can indeed go over 20 seconds a long as it > launches a dynamic subtest within that time. > > As a bonus, verbose log level from runner now also prints dynamic > subtest begin/result. > > Signed-off-by: Petri Latvala <petri.latvala@intel.com> I wish igt had a pipe back to the runner so there was a clear protocol for this rather than trying to re-interpret the user output. (What's that you could pass commands from individual tests back to the runner, such as changing the dmesg filters, timeouts etc, etc) Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> -Chris _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] runner: Introduce per-test timeouts 2020-02-18 10:24 ` Chris Wilson @ 2020-02-18 11:26 ` Petri Latvala 0 siblings, 0 replies; 11+ messages in thread From: Petri Latvala @ 2020-02-18 11:26 UTC (permalink / raw) To: Chris Wilson; +Cc: igt-dev On Tue, Feb 18, 2020 at 10:24:12AM +0000, Chris Wilson wrote: > Quoting Petri Latvala (2020-02-17 14:50:42) > > A new config option, --per-test-timeout, sets a time a single test > > cannot exceed without getting itself killed. The time resets when > > starting a subtest or a dynamic subtest, so an execution with > > --per-test-timeout=20 can indeed go over 20 seconds a long as it > > launches a dynamic subtest within that time. > > > > As a bonus, verbose log level from runner now also prints dynamic > > subtest begin/result. > > > > Signed-off-by: Petri Latvala <petri.latvala@intel.com> > > I wish igt had a pipe back to the runner so there was a clear protocol > for this rather than trying to re-interpret the user output. (What's > that you could pass commands from individual tests back to the runner, > such as changing the dmesg filters, timeouts etc, etc) Stop spying on my local branches. -- Petri Latvala _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 11+ messages in thread
* [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [i-g-t,1/2] runner: Refactor timeouting 2020-02-17 14:50 [igt-dev] [PATCH i-g-t 1/2] runner: Refactor timeouting Petri Latvala 2020-02-17 14:50 ` [igt-dev] [PATCH i-g-t 2/2] runner: Introduce per-test timeouts Petri Latvala @ 2020-02-17 16:47 ` Patchwork 2020-02-18 11:29 ` Petri Latvala 2020-02-18 9:08 ` [igt-dev] [PATCH i-g-t 1/2] " Petri Latvala ` (3 subsequent siblings) 5 siblings, 1 reply; 11+ messages in thread From: Patchwork @ 2020-02-17 16:47 UTC (permalink / raw) To: Petri Latvala; +Cc: igt-dev == Series Details == Series: series starting with [i-g-t,1/2] runner: Refactor timeouting URL : https://patchwork.freedesktop.org/series/73539/ State : failure == Summary == CI Bug Log - changes from CI_DRM_7955 -> IGTPW_4166 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_4166 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_4166, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/index.html Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_4166: ### IGT changes ### #### Possible regressions #### * igt@gem_exec_suspend@basic-s0: - fi-kbl-7500u: NOTRUN -> [INCOMPLETE][1] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/fi-kbl-7500u/igt@gem_exec_suspend@basic-s0.html #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@gem_exec_suspend@basic-s0: - {fi-kbl-7560u}: NOTRUN -> [INCOMPLETE][2] [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/fi-kbl-7560u/igt@gem_exec_suspend@basic-s0.html Known issues ------------ Here are the changes found in IGTPW_4166 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_close_race@basic-threads: - fi-hsw-peppy: [PASS][3] -> [INCOMPLETE][4] ([i915#694] / [i915#816]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/fi-hsw-peppy/igt@gem_close_race@basic-threads.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/fi-hsw-peppy/igt@gem_close_race@basic-threads.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694 [i915#816]: https://gitlab.freedesktop.org/drm/intel/issues/816 [i915#937]: https://gitlab.freedesktop.org/drm/intel/issues/937 Participating hosts (51 -> 46) ------------------------------ Additional (2): fi-kbl-7560u fi-kbl-7500u Missing (7): fi-hsw-4770r fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_5445 -> IGTPW_4166 CI-20190529: 20190529 CI_DRM_7955: 429740c5a92b11e3b649edb3ed4fd66237bd323e @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_4166: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/index.html IGT_5445: 21e523814d692978d6d04ba85eadd67fcbd88b7e @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/index.html _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [i-g-t,1/2] runner: Refactor timeouting 2020-02-17 16:47 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [i-g-t,1/2] runner: Refactor timeouting Patchwork @ 2020-02-18 11:29 ` Petri Latvala 0 siblings, 0 replies; 11+ messages in thread From: Petri Latvala @ 2020-02-18 11:29 UTC (permalink / raw) To: igt-dev, Lakshminarayana Vudum On Mon, Feb 17, 2020 at 04:47:08PM +0000, Patchwork wrote: > == Series Details == > > Series: series starting with [i-g-t,1/2] runner: Refactor timeouting > URL : https://patchwork.freedesktop.org/series/73539/ > State : failure > > == Summary == > > CI Bug Log - changes from CI_DRM_7955 -> IGTPW_4166 > ==================================================== > > Summary > ------- > > **FAILURE** > > Serious unknown changes coming with IGTPW_4166 absolutely need to be > verified manually. > > If you think the reported changes have nothing to do with the changes > introduced in IGTPW_4166, please notify your bug team to allow them > to document this new failure mode, which will reduce false positives in CI. > > External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/index.html > > Possible new issues > ------------------- > > Here are the unknown changes that may have been introduced in IGTPW_4166: > > ### IGT changes ### > > #### Possible regressions #### > > * igt@gem_exec_suspend@basic-s0: > - fi-kbl-7500u: NOTRUN -> [INCOMPLETE][1] > [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/fi-kbl-7500u/igt@gem_exec_suspend@basic-s0.html > Lakshmi, false positive above. This is the rc2 explosion. -- Petri Latvala > > #### Suppressed #### > > The following results come from untrusted machines, tests, or statuses. > They do not affect the overall result. > > * igt@gem_exec_suspend@basic-s0: > - {fi-kbl-7560u}: NOTRUN -> [INCOMPLETE][2] > [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/fi-kbl-7560u/igt@gem_exec_suspend@basic-s0.html > > > Known issues > ------------ > > Here are the changes found in IGTPW_4166 that come from known issues: > > ### IGT changes ### > > #### Issues hit #### > > * igt@gem_close_race@basic-threads: > - fi-hsw-peppy: [PASS][3] -> [INCOMPLETE][4] ([i915#694] / [i915#816]) > [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/fi-hsw-peppy/igt@gem_close_race@basic-threads.html > [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/fi-hsw-peppy/igt@gem_close_race@basic-threads.html > > > {name}: This element is suppressed. This means it is ignored when computing > the status of the difference (SUCCESS, WARNING, or FAILURE). > > [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694 > [i915#816]: https://gitlab.freedesktop.org/drm/intel/issues/816 > [i915#937]: https://gitlab.freedesktop.org/drm/intel/issues/937 > > > Participating hosts (51 -> 46) > ------------------------------ > > Additional (2): fi-kbl-7560u fi-kbl-7500u > Missing (7): fi-hsw-4770r fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus > > > Build changes > ------------- > > * CI: CI-20190529 -> None > * IGT: IGT_5445 -> IGTPW_4166 > > CI-20190529: 20190529 > CI_DRM_7955: 429740c5a92b11e3b649edb3ed4fd66237bd323e @ git://anongit.freedesktop.org/gfx-ci/linux > IGTPW_4166: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/index.html > IGT_5445: 21e523814d692978d6d04ba85eadd67fcbd88b7e @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools > > == Logs == > > For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/index.html _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/2] runner: Refactor timeouting 2020-02-17 14:50 [igt-dev] [PATCH i-g-t 1/2] runner: Refactor timeouting Petri Latvala 2020-02-17 14:50 ` [igt-dev] [PATCH i-g-t 2/2] runner: Introduce per-test timeouts Petri Latvala 2020-02-17 16:47 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [i-g-t,1/2] runner: Refactor timeouting Patchwork @ 2020-02-18 9:08 ` Petri Latvala 2020-02-18 10:21 ` Chris Wilson ` (2 subsequent siblings) 5 siblings, 0 replies; 11+ messages in thread From: Petri Latvala @ 2020-02-18 9:08 UTC (permalink / raw) To: igt-dev On Mon, Feb 17, 2020 at 04:50:41PM +0200, Petri Latvala wrote: > Instead of aiming for inactivity_timeout and splitting that into > suitable intervals for watchdog pinging, replace the whole logic with > one-second select() timeouts and checking if we're reaching a timeout > condition based on current time and the time passed since a particular > event, be it the last activity or the time of signaling the child > processes. > > With the refactoring, we gain a couple of new features for free: > > - use-watchdog now makes sense even without > inactivity-timeout. Previously use-watchdog was silently ignored if > inactivity-timeout was not set. Now, watchdogs will be used always if > configured so, effectively ensuring the device gets rebooted if > userspace dies without other timeout tracking. > > - Killing tests early on kernel taint now happens even > earlier. Previously on an inactive system we possibly waited for some > tens of seconds before checking kernel taints. > > Signed-off-by: Petri Latvala <petri.latvala@intel.com> > --- > runner/executor.c | 224 +++++++++++++++++++++++----------------------- > 1 file changed, 113 insertions(+), 111 deletions(-) > > diff --git a/runner/executor.c b/runner/executor.c > index 3ea5d167..33610c9e 100644 > --- a/runner/executor.c > +++ b/runner/executor.c > @@ -93,7 +93,7 @@ static void init_watchdogs(struct settings *settings) > > memset(&watchdogs, 0, sizeof(watchdogs)); > > - if (!settings->use_watchdog || settings->inactivity_timeout <= 0) > + if (!settings->use_watchdog) > return; > > if (settings->log_level >= LOG_LEVEL_VERBOSE) { > @@ -672,6 +672,69 @@ static void show_kernel_task_state(void) > sysrq('t'); > } > > +static const char *need_to_timeout(struct settings *settings, > + int killed, > + unsigned long taints, > + double time_since_activity, > + double time_since_kill) > +{ > + if (killed) { > + /* > + * Timeout after being killed is a hardcoded amount > + * depending on which signal we already used. The > + * exception is SIGKILL which just immediately bails > + * out if the kernel is tainted, because there's > + * little to no hope of the process dying gracefully > + * or at all. > + * > + * Note that if killed == SIGKILL, the caller needs > + * special handling anyway and should ignore the > + * actual string returned. > + */ > + const double kill_timeout = killed == SIGKILL ? 20.0 : 120.0; Executing this code in my head a few times I realized that before this patch, while we did have the exact same values for the timeout, we waited forever for a killed test to die as long as it (or the kernel) produced output within that time. Now we don't. I consider that a bugfix. -- Petri Latvala _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/2] runner: Refactor timeouting 2020-02-17 14:50 [igt-dev] [PATCH i-g-t 1/2] runner: Refactor timeouting Petri Latvala ` (2 preceding siblings ...) 2020-02-18 9:08 ` [igt-dev] [PATCH i-g-t 1/2] " Petri Latvala @ 2020-02-18 10:21 ` Chris Wilson 2020-02-18 15:38 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] " Patchwork 2020-02-19 7:09 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork 5 siblings, 0 replies; 11+ messages in thread From: Chris Wilson @ 2020-02-18 10:21 UTC (permalink / raw) To: Petri Latvala, igt-dev; +Cc: Petri Latvala Quoting Petri Latvala (2020-02-17 14:50:41) > Instead of aiming for inactivity_timeout and splitting that into > suitable intervals for watchdog pinging, replace the whole logic with > one-second select() timeouts and checking if we're reaching a timeout > condition based on current time and the time passed since a particular > event, be it the last activity or the time of signaling the child > processes. > > With the refactoring, we gain a couple of new features for free: > > - use-watchdog now makes sense even without > inactivity-timeout. Previously use-watchdog was silently ignored if > inactivity-timeout was not set. Now, watchdogs will be used always if > configured so, effectively ensuring the device gets rebooted if > userspace dies without other timeout tracking. > > - Killing tests early on kernel taint now happens even > earlier. Previously on an inactive system we possibly waited for some > tens of seconds before checking kernel taints. > > Signed-off-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> -Chris _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 11+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] runner: Refactor timeouting 2020-02-17 14:50 [igt-dev] [PATCH i-g-t 1/2] runner: Refactor timeouting Petri Latvala ` (3 preceding siblings ...) 2020-02-18 10:21 ` Chris Wilson @ 2020-02-18 15:38 ` Patchwork 2020-02-19 7:09 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork 5 siblings, 0 replies; 11+ messages in thread From: Patchwork @ 2020-02-18 15:38 UTC (permalink / raw) To: Petri Latvala; +Cc: igt-dev == Series Details == Series: series starting with [i-g-t,1/2] runner: Refactor timeouting URL : https://patchwork.freedesktop.org/series/73539/ State : success == Summary == CI Bug Log - changes from CI_DRM_7955 -> IGTPW_4166 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/index.html Known issues ------------ Here are the changes found in IGTPW_4166 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_close_race@basic-threads: - fi-hsw-peppy: [PASS][1] -> [INCOMPLETE][2] ([i915#694] / [i915#816]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/fi-hsw-peppy/igt@gem_close_race@basic-threads.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/fi-hsw-peppy/igt@gem_close_race@basic-threads.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694 [i915#816]: https://gitlab.freedesktop.org/drm/intel/issues/816 [i915#937]: https://gitlab.freedesktop.org/drm/intel/issues/937 Participating hosts (51 -> 46) ------------------------------ Additional (2): fi-kbl-7560u fi-kbl-7500u Missing (7): fi-hsw-4770r fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_5445 -> IGTPW_4166 CI-20190529: 20190529 CI_DRM_7955: 429740c5a92b11e3b649edb3ed4fd66237bd323e @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_4166: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/index.html IGT_5445: 21e523814d692978d6d04ba85eadd67fcbd88b7e @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/index.html _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 11+ messages in thread
* [igt-dev] ✗ Fi.CI.IGT: failure for series starting with [i-g-t,1/2] runner: Refactor timeouting 2020-02-17 14:50 [igt-dev] [PATCH i-g-t 1/2] runner: Refactor timeouting Petri Latvala ` (4 preceding siblings ...) 2020-02-18 15:38 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] " Patchwork @ 2020-02-19 7:09 ` Patchwork 2020-02-19 10:39 ` Petri Latvala 5 siblings, 1 reply; 11+ messages in thread From: Patchwork @ 2020-02-19 7:09 UTC (permalink / raw) To: Petri Latvala; +Cc: igt-dev == Series Details == Series: series starting with [i-g-t,1/2] runner: Refactor timeouting URL : https://patchwork.freedesktop.org/series/73539/ State : failure == Summary == CI Bug Log - changes from CI_DRM_7955_full -> IGTPW_4166_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_4166_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_4166_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/index.html Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_4166_full: ### IGT changes ### #### Possible regressions #### * igt@gem_exec_suspend@basic-s3: - shard-iclb: NOTRUN -> [INCOMPLETE][1] +4 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-iclb1/igt@gem_exec_suspend@basic-s3.html #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * {igt@kms_hdr@bpc-switch-suspend}: - shard-iclb: NOTRUN -> [INCOMPLETE][2] [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-iclb5/igt@kms_hdr@bpc-switch-suspend.html - shard-tglb: NOTRUN -> [INCOMPLETE][3] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-tglb7/igt@kms_hdr@bpc-switch-suspend.html Known issues ------------ Here are the changes found in IGTPW_4166_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_ctx_isolation@rcs0-s3: - shard-apl: [PASS][4] -> [DMESG-WARN][5] ([i915#180]) +2 similar issues [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-apl4/igt@gem_ctx_isolation@rcs0-s3.html [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-apl3/igt@gem_ctx_isolation@rcs0-s3.html * igt@gem_ctx_isolation@vcs1-s3: - shard-kbl: [PASS][6] -> [INCOMPLETE][7] ([fdo#103665]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-kbl1/igt@gem_ctx_isolation@vcs1-s3.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-kbl3/igt@gem_ctx_isolation@vcs1-s3.html * igt@gem_exec_parallel@rcs0-fds: - shard-hsw: [PASS][8] -> [INCOMPLETE][9] ([i915#61] / [i915#694]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-hsw6/igt@gem_exec_parallel@rcs0-fds.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-hsw4/igt@gem_exec_parallel@rcs0-fds.html * igt@gem_exec_parallel@vcs1: - shard-iclb: [PASS][10] -> [SKIP][11] ([fdo#112080]) +2 similar issues [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-iclb1/igt@gem_exec_parallel@vcs1.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-iclb7/igt@gem_exec_parallel@vcs1.html * igt@gem_exec_schedule@independent-bsd: - shard-iclb: [PASS][12] -> [SKIP][13] ([fdo#112146]) +1 similar issue [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-iclb3/igt@gem_exec_schedule@independent-bsd.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-iclb2/igt@gem_exec_schedule@independent-bsd.html * igt@gem_exec_schedule@pi-shared-iova-bsd2: - shard-iclb: [PASS][14] -> [SKIP][15] ([fdo#109276]) +7 similar issues [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-iclb2/igt@gem_exec_schedule@pi-shared-iova-bsd2.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-iclb3/igt@gem_exec_schedule@pi-shared-iova-bsd2.html * igt@gem_linear_blits@normal: - shard-hsw: [PASS][16] -> [FAIL][17] ([i915#694]) +2 similar issues [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-hsw8/igt@gem_linear_blits@normal.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-hsw5/igt@gem_linear_blits@normal.html * igt@gem_mmap_gtt@basic-write-gtt: - shard-snb: [PASS][18] -> [DMESG-WARN][19] ([i915#478]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-snb2/igt@gem_mmap_gtt@basic-write-gtt.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-snb7/igt@gem_mmap_gtt@basic-write-gtt.html * igt@gen9_exec_parse@allowed-all: - shard-kbl: [PASS][20] -> [DMESG-WARN][21] ([i915#716]) [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-kbl1/igt@gen9_exec_parse@allowed-all.html [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-kbl1/igt@gen9_exec_parse@allowed-all.html * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy: - shard-hsw: [PASS][22] -> [FAIL][23] ([i915#96]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-hsw2/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-hsw8/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html * igt@kms_plane_lowres@pipe-a-tiling-x: - shard-glk: [PASS][24] -> [FAIL][25] ([i915#899]) [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-glk8/igt@kms_plane_lowres@pipe-a-tiling-x.html [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-glk7/igt@kms_plane_lowres@pipe-a-tiling-x.html * igt@kms_psr@no_drrs: - shard-iclb: [PASS][26] -> [FAIL][27] ([i915#173]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-iclb7/igt@kms_psr@no_drrs.html [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-iclb1/igt@kms_psr@no_drrs.html * igt@kms_psr@psr2_primary_render: - shard-tglb: [PASS][28] -> [SKIP][29] ([i915#668]) [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-tglb5/igt@kms_psr@psr2_primary_render.html [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-tglb2/igt@kms_psr@psr2_primary_render.html * igt@kms_vblank@pipe-c-ts-continuation-suspend: - shard-kbl: [PASS][30] -> [DMESG-WARN][31] ([i915#180]) +1 similar issue [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-kbl4/igt@kms_vblank@pipe-c-ts-continuation-suspend.html [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-kbl7/igt@kms_vblank@pipe-c-ts-continuation-suspend.html #### Possible fixes #### * igt@gem_ctx_isolation@vcs1-reset: - shard-iclb: [SKIP][32] ([fdo#112080]) -> [PASS][33] +1 similar issue [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-iclb8/igt@gem_ctx_isolation@vcs1-reset.html [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-iclb1/igt@gem_ctx_isolation@vcs1-reset.html * igt@gem_ctx_shared@exec-single-timeline-bsd: - shard-iclb: [SKIP][34] ([fdo#110841]) -> [PASS][35] [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-iclb1/igt@gem_ctx_shared@exec-single-timeline-bsd.html [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-iclb7/igt@gem_ctx_shared@exec-single-timeline-bsd.html * igt@gem_exec_async@concurrent-writes-bsd: - shard-iclb: [SKIP][36] ([fdo#112146]) -> [PASS][37] +5 similar issues [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-iclb2/igt@gem_exec_async@concurrent-writes-bsd.html [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-iclb3/igt@gem_exec_async@concurrent-writes-bsd.html * igt@gem_exec_balancer@hang: - shard-tglb: [TIMEOUT][38] ([fdo#112271]) -> [PASS][39] [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-tglb6/igt@gem_exec_balancer@hang.html [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-tglb5/igt@gem_exec_balancer@hang.html * igt@gem_exec_schedule@pi-shared-iova-bsd1: - shard-iclb: [SKIP][40] ([fdo#109276]) -> [PASS][41] +3 similar issues [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-iclb8/igt@gem_exec_schedule@pi-shared-iova-bsd1.html [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-iclb1/igt@gem_exec_schedule@pi-shared-iova-bsd1.html * igt@gem_ppgtt@flink-and-close-vma-leak: - shard-glk: [FAIL][42] ([i915#644]) -> [PASS][43] [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-glk1/igt@gem_ppgtt@flink-and-close-vma-leak.html [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-glk2/igt@gem_ppgtt@flink-and-close-vma-leak.html * igt@gem_userptr_blits@sync-unmap-after-close: - shard-snb: [DMESG-WARN][44] ([fdo#111870] / [i915#478]) -> [PASS][45] [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-snb2/igt@gem_userptr_blits@sync-unmap-after-close.html [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-snb4/igt@gem_userptr_blits@sync-unmap-after-close.html * igt@kms_cursor_crc@pipe-a-cursor-suspend: - shard-kbl: [DMESG-WARN][46] ([i915#180]) -> [PASS][47] +7 similar issues [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-kbl4/igt@kms_cursor_crc@pipe-a-cursor-suspend.html [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-kbl6/igt@kms_cursor_crc@pipe-a-cursor-suspend.html * igt@kms_flip@2x-flip-vs-blocking-wf-vblank: - shard-hsw: [INCOMPLETE][48] ([i915#61]) -> [PASS][49] [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-hsw5/igt@kms_flip@2x-flip-vs-blocking-wf-vblank.html [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-hsw2/igt@kms_flip@2x-flip-vs-blocking-wf-vblank.html * igt@kms_flip@flip-vs-expired-vblank-interruptible: - shard-apl: [FAIL][50] ([i915#79]) -> [PASS][51] [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-apl7/igt@kms_flip@flip-vs-expired-vblank-interruptible.html [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-apl7/igt@kms_flip@flip-vs-expired-vblank-interruptible.html * igt@kms_flip@flip-vs-suspend-interruptible: - shard-apl: [DMESG-WARN][52] ([i915#180]) -> [PASS][53] +3 similar issues [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-apl1/igt@kms_flip@flip-vs-suspend-interruptible.html [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-apl4/igt@kms_flip@flip-vs-suspend-interruptible.html * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-blt: - shard-glk: [FAIL][54] ([i915#49]) -> [PASS][55] +1 similar issue [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-glk6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-blt.html [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-glk8/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-blt.html * igt@kms_plane_lowres@pipe-a-tiling-y: - shard-glk: [FAIL][56] ([i915#899]) -> [PASS][57] [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-glk6/igt@kms_plane_lowres@pipe-a-tiling-y.html [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-glk5/igt@kms_plane_lowres@pipe-a-tiling-y.html #### Warnings #### * igt@gem_tiled_blits@interruptible: - shard-hsw: [FAIL][58] ([i915#694]) -> [FAIL][59] ([i915#818]) [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-hsw4/igt@gem_tiled_blits@interruptible.html [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-hsw2/igt@gem_tiled_blits@interruptible.html * igt@gem_tiled_blits@normal: - shard-hsw: [FAIL][60] ([i915#818]) -> [INCOMPLETE][61] ([i915#61]) [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-hsw1/igt@gem_tiled_blits@normal.html [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-hsw1/igt@gem_tiled_blits@normal.html * igt@gem_userptr_blits@dmabuf-unsync: - shard-snb: [DMESG-WARN][62] ([fdo#110789] / [fdo#111870] / [i915#478]) -> [DMESG-WARN][63] ([fdo#111870] / [i915#478]) [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-snb7/igt@gem_userptr_blits@dmabuf-unsync.html [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-snb6/igt@gem_userptr_blits@dmabuf-unsync.html * igt@runner@aborted: - shard-kbl: [FAIL][64] ([i915#974]) -> ([FAIL][65], [FAIL][66]) ([i915#716] / [i915#974]) [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7955/shard-kbl1/igt@runner@aborted.html [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-kbl1/igt@runner@aborted.html [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-kbl1/igt@runner@aborted.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665 [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276 [fdo#110789]: https://bugs.freedesktop.org/show_bug.cgi?id=110789 [fdo#110841]: https://bugs.freedesktop.org/show_bug.cgi?id=110841 [fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870 [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080 [fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146 [fdo#112271]: https://bugs.freedesktop.org/show_bug.cgi?id=112271 [i915#173]: https://gitlab.freedesktop.org/drm/intel/issues/173 [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 [i915#478]: https://gitlab.freedesktop.org/drm/intel/issues/478 [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49 [i915#61]: https://gitlab.freedesktop.org/drm/intel/issues/61 [i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644 [i915#668]: https://gitlab.freedesktop.org/drm/intel/issues/668 [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694 [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716 [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79 [i915#818]: https://gitlab.freedesktop.org/drm/intel/issues/818 [i915#899]: https://gitlab.freedesktop.org/drm/intel/issues/899 [i915#96]: https://gitlab.freedesktop.org/drm/intel/issues/96 [i915#974]: https://gitlab.freedesktop.org/drm/intel/issues/974 Participating hosts (10 -> 8) ------------------------------ Missing (2): pig-skl-6260u pig-glk-j5005 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_5445 -> IGTPW_4166 * Piglit: piglit_4509 -> None CI-20190529: 20190529 CI_DRM_7955: 429740c5a92b11e3b649edb3ed4fd66237bd323e @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_4166: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/index.html IGT_5445: 21e523814d692978d6d04ba85eadd67fcbd88b7e @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/index.html _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [igt-dev] ✗ Fi.CI.IGT: failure for series starting with [i-g-t,1/2] runner: Refactor timeouting 2020-02-19 7:09 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork @ 2020-02-19 10:39 ` Petri Latvala 0 siblings, 0 replies; 11+ messages in thread From: Petri Latvala @ 2020-02-19 10:39 UTC (permalink / raw) To: igt-dev On Wed, Feb 19, 2020 at 07:09:53AM +0000, Patchwork wrote: > == Series Details == > > Series: series starting with [i-g-t,1/2] runner: Refactor timeouting > URL : https://patchwork.freedesktop.org/series/73539/ > State : failure > > == Summary == > > CI Bug Log - changes from CI_DRM_7955_full -> IGTPW_4166_full > ==================================================== > > Summary > ------- > > **FAILURE** > > Serious unknown changes coming with IGTPW_4166_full absolutely need to be > verified manually. > > If you think the reported changes have nothing to do with the changes > introduced in IGTPW_4166_full, please notify your bug team to allow them > to document this new failure mode, which will reduce false positives in CI. > > External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/index.html > > Possible new issues > ------------------- > > Here are the unknown changes that may have been introduced in IGTPW_4166_full: > > ### IGT changes ### > > #### Possible regressions #### > > * igt@gem_exec_suspend@basic-s3: > - shard-iclb: NOTRUN -> [INCOMPLETE][1] +4 similar issues > [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4166/shard-iclb1/igt@gem_exec_suspend@basic-s3.html rc2 fallout, so merged. -- Petri Latvala _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2020-02-19 10:39 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-02-17 14:50 [igt-dev] [PATCH i-g-t 1/2] runner: Refactor timeouting Petri Latvala 2020-02-17 14:50 ` [igt-dev] [PATCH i-g-t 2/2] runner: Introduce per-test timeouts Petri Latvala 2020-02-18 10:24 ` Chris Wilson 2020-02-18 11:26 ` Petri Latvala 2020-02-17 16:47 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [i-g-t,1/2] runner: Refactor timeouting Patchwork 2020-02-18 11:29 ` Petri Latvala 2020-02-18 9:08 ` [igt-dev] [PATCH i-g-t 1/2] " Petri Latvala 2020-02-18 10:21 ` Chris Wilson 2020-02-18 15:38 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] " Patchwork 2020-02-19 7:09 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork 2020-02-19 10:39 ` Petri Latvala
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox