diff --git a/event.logtags b/event.logtags index fcbb960..c31e99d 100644 --- a/event.logtags +++ b/event.logtags @@ -35,4 +35,4 @@ # TODO: generate ".java" and ".h" files with integer constants from this file. # for killinfo logs -10195355 killinfo (Pid|1|5),(Uid|1|5),(OomAdj|1),(MinOomAdj|1),(TaskSize|1),(enum kill_reasons|1|5),(MemFree|1),(Cached|1),(SwapCached|1),(Buffers|1),(Shmem|1),(Unevictable|1),(SwapTotal|1),(SwapFree|1),(ActiveAnon|1),(InactiveAnon|1),(ActiveFile|1),(InactiveFile|1),(SReclaimable|1),(SUnreclaim|1),(KernelStack|1),(PageTables|1),(IonHeap|1),(IonHeapPool|1),(CmaFree|1),(MsSinceEvent|1),(MsSincePrevWakeup|1),(WakeupsSinceEvent|1),(SkippedWakeups|1) +10195355 killinfo (Pid|1|5),(Uid|1|5),(OomAdj|1),(MinOomAdj|1),(TaskSize|1),(TaskSwapSize|1),(enum kill_reasons|1|5),(MemFree|1),(Cached|1),(SwapCached|1),(Buffers|1),(Shmem|1),(Unevictable|1),(SwapTotal|1),(SwapFree|1),(ActiveAnon|1),(InactiveAnon|1),(ActiveFile|1),(InactiveFile|1),(SReclaimable|1),(SUnreclaim|1),(KernelStack|1),(PageTables|1),(IonHeap|1),(IonHeapPool|1),(CmaFree|1),(MsSinceEvent|1),(MsSincePrevWakeup|1),(WakeupsSinceEvent|1),(SkippedWakeups|1) diff --git a/lmkd.cpp b/lmkd.cpp index 6c97757..f286e5a 100644 --- a/lmkd.cpp +++ b/lmkd.cpp @@ -1865,7 +1865,7 @@ static void record_wakeup_time(struct timespec *tm, enum wakeup_reason reason, } static void killinfo_log(struct proc* procp, int min_oom_score, int rss_kb, - int kill_reason, union meminfo *mi, + int swap_kb, int kill_reason, union meminfo *mi, struct wakeup_info *wi, struct timespec *tm) { /* log process information */ android_log_write_int32(ctx, procp->pid); @@ -1873,6 +1873,7 @@ static void killinfo_log(struct proc* procp, int min_oom_score, int rss_kb, android_log_write_int32(ctx, procp->oomadj); android_log_write_int32(ctx, min_oom_score); android_log_write_int32(ctx, (int32_t)min(rss_kb, INT32_MAX)); + android_log_write_int32(ctx, (int32_t)min(swap_kb, INT32_MAX)); android_log_write_int32(ctx, kill_reason); /* log meminfo fields */ @@ -2120,14 +2121,14 @@ static int kill_one_process(struct proc* procp, int min_oom_score, enum kill_rea inc_killcnt(procp->oomadj); - killinfo_log(procp, min_oom_score, rss_kb, kill_reason, mi, wi, tm); + killinfo_log(procp, min_oom_score, rss_kb, swap_kb, kill_reason, mi, wi, tm); if (kill_desc) { - ALOGI("Kill '%s' (%d), uid %d, oom_score_adj %d to free %" PRId64 "kB; reason: %s", - taskname, pid, uid, procp->oomadj, rss_kb, kill_desc); + ALOGI("Kill '%s' (%d), uid %d, oom_score_adj %d to free %" PRId64 "kB rss, %" PRId64 + "kB swap; reason: %s", taskname, pid, uid, procp->oomadj, rss_kb, swap_kb, kill_desc); } else { - ALOGI("Kill '%s' (%d), uid %d, oom_score_adj %d to free %" PRId64 "kB", taskname, pid, - uid, procp->oomadj, rss_kb); + ALOGI("Kill '%s' (%d), uid %d, oom_score_adj %d to free %" PRId64 "kB rss, %" PRId64 + "kb swap", taskname, pid, uid, procp->oomadj, rss_kb, swap_kb); } kill_st.uid = static_cast(uid);