Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 334d2187 authored by Suren Baghdasaryan's avatar Suren Baghdasaryan Committed by Android (Google) Code Review
Browse files

Merge "lmkd: Add ability to trace lmkd kills"

parents 9e555f66 c7135599
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -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"
            ],
        },
    },
}
}
+23 −0
Original line number Original line Diff line number Diff line
@@ -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
@@ -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"
@@ -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;