Log killed process swap size
We already log the rss size for the process. Given lmkd strategies also consider low swap, it will be beneficial to record the swap size too.
Test: build, manual test
Change-Id: I923f733f7a3aa77fc5968827693b0fc085819174
diff --git a/lmkd.cpp b/lmkd.cpp
index 6c97757..f286e5a 100644
--- a/lmkd.cpp
+++ b/lmkd.cpp
@@ -1865,7 +1865,7 @@
}
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 @@
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 @@
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<int32_t>(uid);