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

Commit 209c1cda authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "OomKillRecord: Track new oom/mark_victim tracepoint fields" into main

parents 22be9ae7 835b8f33
Loading
Loading
Loading
Loading
+17 −3
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ import com.android.internal.util.FrameworkStatsLog;
 * Note that this class fields' should be equivalent to the struct
 * <b>OomKill</b> inside
 * <pre>
 * system/memory/libmeminfo/libmemevents/include/memevents.h
 * system/memory/libmeminfo/libmemevents/include/memevents/bpf_types.h
 * </pre>
 *
 * @hide
@@ -36,14 +36,27 @@ public final class OomKillRecord {
    private int mUid;
    private String mProcessName;
    private short mOomScoreAdj;
    private long mTotalVmInKb;
    private long mAnonRssInKb;
    private long mFileRssInKb;
    private long mShmemRssInKb;
    private long mPgTablesInKb;

    public OomKillRecord(long timeStampInMillis, int pid, int uid,
                            String processName, short oomScoreAdj) {
                            String processName, short oomScoreAdj,
                            long totalVmInKb, long anonRssInKb,
                            long fileRssInKb, long shmemRssInKb,
                            long pgTablesInKb) {
        this.mTimeStampInMillis = timeStampInMillis;
        this.mPid = pid;
        this.mUid = uid;
        this.mProcessName = processName;
        this.mOomScoreAdj = oomScoreAdj;
        this.mTotalVmInKb = totalVmInKb;
        this.mAnonRssInKb = anonRssInKb;
        this.mFileRssInKb = fileRssInKb;
        this.mShmemRssInKb = shmemRssInKb;
        this.mPgTablesInKb = pgTablesInKb;
    }

    /**
@@ -55,7 +68,8 @@ public final class OomKillRecord {
        FrameworkStatsLog.write(
                FrameworkStatsLog.KERNEL_OOM_KILL_OCCURRED,
                mUid, mPid, mOomScoreAdj, mTimeStampInMillis,
                mProcessName);
                mProcessName, mTotalVmInKb, mAnonRssInKb,
                mFileRssInKb, mShmemRssInKb, mPgTablesInKb);
    }

    public long getTimestampMilli() {
+7 −5
Original line number Diff line number Diff line
@@ -92,9 +92,11 @@ static jobjectArray android_server_am_OomConnection_waitOom(JNIEnv* env, jobject
            memevent_listener.deregisterAllEvents();
            jniThrowRuntimeException(env, "Failed creating java string for process name");
        }
        jobject java_oom_kill = env->NewObject(sOomKillRecordInfo.clazz, sOomKillRecordInfo.ctor,
                                               oom_kill.timestamp_ms, oom_kill.pid, oom_kill.uid,
                                               process_name, oom_kill.oom_score_adj);
        jobject java_oom_kill =
                env->NewObject(sOomKillRecordInfo.clazz, sOomKillRecordInfo.ctor,
                               oom_kill.timestamp_ms, oom_kill.pid, oom_kill.uid, process_name,
                               oom_kill.oom_score_adj, oom_kill.total_vm_kb, oom_kill.anon_rss_kb,
                               oom_kill.file_rss_kb, oom_kill.shmem_rss_kb, oom_kill.pgtables_kb);
        if (java_oom_kill == NULL) {
            memevent_listener.deregisterAllEvents();
            jniThrowRuntimeException(env, "Failed to create OomKillRecord object");
@@ -115,8 +117,8 @@ int register_android_server_am_OomConnection(JNIEnv* env) {
    sOomKillRecordInfo.clazz = FindClassOrDie(env, "android/os/OomKillRecord");
    sOomKillRecordInfo.clazz = MakeGlobalRefOrDie(env, sOomKillRecordInfo.clazz);

    sOomKillRecordInfo.ctor =
            GetMethodIDOrDie(env, sOomKillRecordInfo.clazz, "<init>", "(JIILjava/lang/String;S)V");
    sOomKillRecordInfo.ctor = GetMethodIDOrDie(env, sOomKillRecordInfo.clazz, "<init>",
                                               "(JIILjava/lang/String;SJJJJJ)V");

    return RegisterMethodsOrDie(env, "com/android/server/am/OomConnection", sOomConnectionMethods,
                                NELEM(sOomConnectionMethods));