From: Lennart Poettering Date: Sat, 25 Sep 2010 12:35:34 +0000 (+0200) Subject: readahead: make candidate for early OOM kill X-Git-Tag: v11~85 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=75a010e0b790a2cf3c26408f99927bdb37011a32;hp=408b85df83ad5711eeb959dd657b967447892c56 readahead: make candidate for early OOM kill --- diff --git a/src/readahead-collect.c b/src/readahead-collect.c index 6705615d1..47095b1f7 100644 --- a/src/readahead-collect.c +++ b/src/readahead-collect.c @@ -57,7 +57,6 @@ * - read ahead directories * - sd_readahead_cancel * - gzip? - * - oom adjust * - remount rw * - are filenames from anotify normalized regards /../ and // and /./? * - does ioprio_set work with fadvise()? @@ -216,6 +215,8 @@ static int collect(const char *root) { assert(root); + write_one_line_file("/proc/self/oom_score_adj", "1000"); + if (ioprio_set(IOPRIO_WHO_PROCESS, getpid(), IOPRIO_PRIO_VALUE(IOPRIO_CLASS_IDLE, 0)) < 0) log_warning("Failed to set IDLE IO priority class: %m"); diff --git a/src/readahead-replay.c b/src/readahead-replay.c index c01f73e6a..2fa5c182c 100644 --- a/src/readahead-replay.c +++ b/src/readahead-replay.c @@ -119,6 +119,8 @@ static int replay(const char *root) { assert(root); + write_one_line_file("/proc/self/oom_score_adj", "1000"); + if (asprintf(&pack_fn, "%s/.readahead", root) < 0) { log_error("Out of memory"); r = -ENOMEM;