[igt-dev] [PATCH i-g-t] runner: Make sure oom-killer doesn't kill the runner
Petri Latvala
petri.latvala at intel.com
Thu Apr 11 09:40:12 UTC 2019
Tests that eat all of the RAM and then some to invoke the oom-killer
deliberately sometimes cause extra casualties. Make sure the runner
stays alive.
Signed-off-by: Petri Latvala <petri.latvala at intel.com>
---
runner/executor.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/runner/executor.c b/runner/executor.c
index 0e91b7ab..7e5fbe8f 100644
--- a/runner/executor.c
+++ b/runner/executor.c
@@ -1221,6 +1221,22 @@ static void write_abort_file(int resdirfd,
}
}
+static void oom_immortal(void)
+{
+ int fd;
+ const char never_kill[] = "-1000";
+
+ fd = open("/proc/self/oom_score_adj", O_WRONLY);
+ if (fd < 0) {
+ fprintf(stderr, "Warning: Cannot adjust oom score.\n");
+ return;
+ }
+ if (write(fd, never_kill, sizeof(never_kill)) != sizeof(never_kill))
+ fprintf(stderr, "Warning: Adjusting oom score failed.\n");
+
+ close(fd);
+}
+
bool execute(struct execute_state *state,
struct settings *settings,
struct job_list *job_list)
@@ -1268,6 +1284,8 @@ bool execute(struct execute_state *state,
close(timefd);
}
+ oom_immortal();
+
init_watchdogs(settings);
if (!uname(&unamebuf)) {
--
2.19.1
More information about the igt-dev
mailing list