library: trade a deprecated oomem field for proper one

Now that the conditional OOMEM_ENABLE has been removed
and, after reviewing current library support, it turns
out we've been using a deprecated /proc/<pid>/oom_adj.

What we should use instead is that more recent tunable
/proc/<pid>/oom_score_adj. This new field will provide
a range of -1000 thru +1000 (former was -17 thru +15).

Reference(s):
. removal of misguided OOMEM_ENABLE
commit 64238730fa
. linux, partial oom_adj revert (Nov, 2012)
commit fa0cbbf145aabbf29c6f28f8a11935c0b0fd86fc
. linux, removal oom_adj (Oct, 2012)
commit 01dc52ebdf472f77cca623ca693ca24cfc0f1bbe

Signed-off-by: Jim Warner <james.warner@comcast.net>
This commit is contained in:
Jim Warner 2016-04-15 00:00:00 -05:00 committed by Craig Small
parent 0c78f4f954
commit 67bf272f5d

View File

@ -474,12 +474,12 @@ static void supgrps_from_supgids (proc_t *p) {
} }
/////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////
static void oomscore2proc(const char* S, proc_t *restrict P) static inline void oomscore2proc(const char* S, proc_t *restrict P)
{ {
sscanf(S, "%d", &P->oom_score); sscanf(S, "%d", &P->oom_score);
} }
static void oomadj2proc(const char* S, proc_t *restrict P) static inline void oomadj2proc(const char* S, proc_t *restrict P)
{ {
sscanf(S, "%d", &P->oom_adj); sscanf(S, "%d", &P->oom_adj);
} }
@ -962,7 +962,7 @@ static proc_t* simple_readproc(PROCTAB *restrict const PT, proc_t *restrict cons
if (unlikely(flags & PROC_FILLOOM)) { if (unlikely(flags & PROC_FILLOOM)) {
if (likely(file2str(path, "oom_score", &ub) != -1)) if (likely(file2str(path, "oom_score", &ub) != -1))
oomscore2proc(ub.buf, p); oomscore2proc(ub.buf, p);
if (likely(file2str(path, "oom_adj", &ub) != -1)) if (likely(file2str(path, "oom_score_adj", &ub) != -1))
oomadj2proc(ub.buf, p); oomadj2proc(ub.buf, p);
} }
@ -1120,7 +1120,7 @@ static proc_t* simple_readtask(PROCTAB *restrict const PT, const proc_t *restric
if (unlikely(flags & PROC_FILLOOM)) { if (unlikely(flags & PROC_FILLOOM)) {
if (likely(file2str(path, "oom_score", &ub) != -1)) if (likely(file2str(path, "oom_score", &ub) != -1))
oomscore2proc(ub.buf, t); oomscore2proc(ub.buf, t);
if (likely(file2str(path, "oom_adj", &ub) != -1)) if (likely(file2str(path, "oom_score_adj", &ub) != -1))
oomadj2proc(ub.buf, t); oomadj2proc(ub.buf, t);
} }