Add support for oom_score_adj
/proc/<pid>/oom_adj has been deprecated (kernel v2.6.36) due to the rework of the badness heuristic; oom_score_adj is the replacement. Keep a fallback to the old interface for compatibility with older kernels. See http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=a63d83f427fbce97a6cea0db2e64b0eb8435cd10 Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
This commit is contained in:
parent
13f90be7a3
commit
c61eea9459
15
udev/udevd.c
15
udev/udevd.c
|
@ -1285,12 +1285,19 @@ int main(int argc, char *argv[])
|
|||
fclose(f);
|
||||
}
|
||||
|
||||
/* OOM_DISABLE == -17 */
|
||||
fd = open("/proc/self/oom_adj", O_RDWR);
|
||||
fd = open("/proc/self/oom_score_adj", O_RDWR);
|
||||
if (fd < 0) {
|
||||
err(udev, "error disabling OOM: %m\n");
|
||||
/* Fallback to old interface */
|
||||
fd = open("/proc/self/oom_adj", O_RDWR);
|
||||
if (fd < 0) {
|
||||
err(udev, "error disabling OOM: %m\n");
|
||||
} else {
|
||||
/* OOM_DISABLE == -17 */
|
||||
write(fd, "-17", 3);
|
||||
close(fd);
|
||||
}
|
||||
} else {
|
||||
write(fd, "-17", 3);
|
||||
write(fd, "-1000", 5);
|
||||
close(fd);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue