diff options
author | Akilesh Kailash <akailash@google.com> | 2022-06-02 23:18:52 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-06-02 23:18:52 +0000 |
commit | ae2837d80cfc64ae0c5a12737d4b480a479adb20 (patch) | |
tree | 487ab29813e2534e577b81467850802a3cfa6b46 | |
parent | 71100bbc44d01913bdbb9629e3fe87bf17f08a96 (diff) | |
parent | 1a2f870cb3012af551d05edbe460e1056ef24d12 (diff) | |
download | core-ae2837d80cfc64ae0c5a12737d4b480a479adb20.tar.gz |
Merge "init: Set oom_score_adj to snapuserd process" into tm-dev
-rw-r--r-- | init/snapuserd_transition.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/init/snapuserd_transition.cpp b/init/snapuserd_transition.cpp index 5deaf3156..5c821b05c 100644 --- a/init/snapuserd_transition.cpp +++ b/init/snapuserd_transition.cpp @@ -29,6 +29,7 @@ #include <android-base/file.h> #include <android-base/logging.h> #include <android-base/parseint.h> +#include <android-base/stringprintf.h> #include <android-base/strings.h> #include <android-base/unique_fd.h> #include <cutils/sockets.h> @@ -40,6 +41,7 @@ #include <snapuserd/snapuserd_client.h> #include "block_dev_initializer.h" +#include "lmkd_service.h" #include "service_utils.h" #include "util.h" @@ -320,6 +322,14 @@ void SnapuserdSelinuxHelper::RelaunchFirstStageSnapuserd() { LOG(INFO) << "Relaunched snapuserd with pid: " << pid; + // Since daemon is not started as a service, we have + // to explicitly set the OOM score to default which is unkillable + std::string oom_str = std::to_string(DEFAULT_OOM_SCORE_ADJUST); + std::string oom_file = android::base::StringPrintf("/proc/%d/oom_score_adj", pid); + if (!android::base::WriteStringToFile(oom_str, oom_file)) { + PLOG(ERROR) << "couldn't write oom_score_adj to snapuserd daemon with pid: " << pid; + } + if (!TestSnapuserdIsReady()) { PLOG(FATAL) << "snapuserd daemon failed to launch"; } else { |