OSDN Git Service

dumpstate: change OOM adjustment proc interface for modern kernel
authorWei Wang <wvw@google.com>
Tue, 28 Jun 2016 21:32:35 +0000 (14:32 -0700)
committerWei Wang <wvw@google.com>
Tue, 28 Jun 2016 21:34:35 +0000 (14:34 -0700)
Bug: 29831067
Change-Id: I72e2862daad5da99e7d767d7e41bde96750840ce

cmds/dumpstate/dumpstate.cpp

index 47e9f62..279c010 100644 (file)
@@ -1118,10 +1118,18 @@ int main(int argc, char *argv[]) {
 
     /* set as high priority, and protect from OOM killer */
     setpriority(PRIO_PROCESS, 0, -20);
-    FILE *oom_adj = fopen("/proc/self/oom_adj", "we");
+
+    FILE *oom_adj = fopen("/proc/self/oom_score_adj", "we");
     if (oom_adj) {
-        fputs("-17", oom_adj);
+        fputs("-1000", oom_adj);
         fclose(oom_adj);
+    } else {
+        /* fallback to kernels <= 2.6.35 */
+        oom_adj = fopen("/proc/self/oom_adj", "we");
+        if (oom_adj) {
+            fputs("-17", oom_adj);
+            fclose(oom_adj);
+        }
     }
 
     /* parse arguments */