Loading lmkd/Android.bp +8 −0 Original line number Original line Diff line number Diff line Loading @@ -10,4 +10,12 @@ cc_binary { cflags: ["-Werror"], cflags: ["-Werror"], init_rc: ["lmkd.rc"], init_rc: ["lmkd.rc"], product_variables: { debuggable: { cflags: [ "-DLMKD_TRACE_KILLS" ], }, }, } } lmkd/lmkd.c +23 −0 Original line number Original line Diff line number Diff line Loading @@ -37,6 +37,25 @@ #include <log/log.h> #include <log/log.h> #include <processgroup/processgroup.h> #include <processgroup/processgroup.h> /* * Define LMKD_TRACE_KILLS to record lmkd kills in kernel traces * to profile and correlate with OOM kills */ #ifdef LMKD_TRACE_KILLS #define ATRACE_TAG ATRACE_TAG_ALWAYS #include <cutils/trace.h> #define TRACE_KILL_START(pid) ATRACE_INT(__FUNCTION__, pid); #define TRACE_KILL_END() ATRACE_INT(__FUNCTION__, 0); #else /* LMKD_TRACE_KILLS */ #define TRACE_KILL_START(pid) #define TRACE_KILL_END() #endif /* LMKD_TRACE_KILLS */ #ifndef __unused #ifndef __unused #define __unused __attribute__((__unused__)) #define __unused __attribute__((__unused__)) #endif #endif Loading Loading @@ -638,6 +657,8 @@ static int kill_one_process(struct proc* procp, int min_score_adj, return -1; return -1; } } TRACE_KILL_START(pid); r = kill(pid, SIGKILL); r = kill(pid, SIGKILL); ALOGI( ALOGI( "Killing '%s' (%d), uid %d, adj %d\n" "Killing '%s' (%d), uid %d, adj %d\n" Loading @@ -646,6 +667,8 @@ static int kill_one_process(struct proc* procp, int min_score_adj, level_name[level], min_score_adj); level_name[level], min_score_adj); pid_remove(pid); pid_remove(pid); TRACE_KILL_END(); if (r) { if (r) { ALOGE("kill(%d): errno=%d", procp->pid, errno); ALOGE("kill(%d): errno=%d", procp->pid, errno); return -1; return -1; Loading Loading
lmkd/Android.bp +8 −0 Original line number Original line Diff line number Diff line Loading @@ -10,4 +10,12 @@ cc_binary { cflags: ["-Werror"], cflags: ["-Werror"], init_rc: ["lmkd.rc"], init_rc: ["lmkd.rc"], product_variables: { debuggable: { cflags: [ "-DLMKD_TRACE_KILLS" ], }, }, } }
lmkd/lmkd.c +23 −0 Original line number Original line Diff line number Diff line Loading @@ -37,6 +37,25 @@ #include <log/log.h> #include <log/log.h> #include <processgroup/processgroup.h> #include <processgroup/processgroup.h> /* * Define LMKD_TRACE_KILLS to record lmkd kills in kernel traces * to profile and correlate with OOM kills */ #ifdef LMKD_TRACE_KILLS #define ATRACE_TAG ATRACE_TAG_ALWAYS #include <cutils/trace.h> #define TRACE_KILL_START(pid) ATRACE_INT(__FUNCTION__, pid); #define TRACE_KILL_END() ATRACE_INT(__FUNCTION__, 0); #else /* LMKD_TRACE_KILLS */ #define TRACE_KILL_START(pid) #define TRACE_KILL_END() #endif /* LMKD_TRACE_KILLS */ #ifndef __unused #ifndef __unused #define __unused __attribute__((__unused__)) #define __unused __attribute__((__unused__)) #endif #endif Loading Loading @@ -638,6 +657,8 @@ static int kill_one_process(struct proc* procp, int min_score_adj, return -1; return -1; } } TRACE_KILL_START(pid); r = kill(pid, SIGKILL); r = kill(pid, SIGKILL); ALOGI( ALOGI( "Killing '%s' (%d), uid %d, adj %d\n" "Killing '%s' (%d), uid %d, adj %d\n" Loading @@ -646,6 +667,8 @@ static int kill_one_process(struct proc* procp, int min_score_adj, level_name[level], min_score_adj); level_name[level], min_score_adj); pid_remove(pid); pid_remove(pid); TRACE_KILL_END(); if (r) { if (r) { ALOGE("kill(%d): errno=%d", procp->pid, errno); ALOGE("kill(%d): errno=%d", procp->pid, errno); return -1; return -1; Loading