init: set oom_adj early before fork vendor_init
right now vendor_init is forked before we set oom_adj for init which
leaves a chance vendor_init could be killed in heavy memory pressure.
this CL set the oom_adj before forking everything to ensure all native
have correct oom_adj settings.
Fixes: 130824864
Test: procrank -o
(cherry picked from commit 45d8174fe7)
Change-Id: I68c18f9db24d55239f7f0608592fcc702f04542e
This commit is contained in:
parent
84ababefb7
commit
bb2bc1586d
2 changed files with 5 additions and 3 deletions
|
|
@ -630,6 +630,11 @@ int SecondStageMain(int argc, char** argv) {
|
|||
InitKernelLogging(argv, InitAborter);
|
||||
LOG(INFO) << "init second stage started!";
|
||||
|
||||
// Set init and its forked children's oom_adj.
|
||||
if (auto result = WriteFile("/proc/1/oom_score_adj", "-1000"); !result) {
|
||||
LOG(ERROR) << "Unable to write -1000 to /proc/1/oom_score_adj: " << result.error();
|
||||
}
|
||||
|
||||
// Enable seccomp if global boot option was passed (otherwise it is enabled in zygote).
|
||||
GlobalSeccomp();
|
||||
|
||||
|
|
|
|||
|
|
@ -13,9 +13,6 @@ import /init.${ro.zygote}.rc
|
|||
|
||||
# Cgroups are mounted right before early-init using list from /etc/cgroups.json
|
||||
on early-init
|
||||
# Set init and its forked children's oom_adj.
|
||||
write /proc/1/oom_score_adj -1000
|
||||
|
||||
# Disable sysrq from keyboard
|
||||
write /proc/sys/kernel/sysrq 0
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue