From ee9cea7f921d9a189695ab78ea81f2def0af061e Mon Sep 17 00:00:00 2001 From: Suren Baghdasaryan Date: Thu, 22 Jul 2021 16:09:37 -0700 Subject: [PATCH] ActivityManagerService: report current and max thrashing levels Add thrashing and maxThrashing fields in LMK_KILL_OCCURRED report. Bug: 194433891 Signed-off-by: Suren Baghdasaryan Change-Id: I016d95a9b2ba4b6f4ca814be1456cec59f4834da Merged-In: I016d95a9b2ba4b6f4ca814be1456cec59f4834da --- services/core/java/com/android/server/am/LmkdConnection.java | 2 +- .../core/java/com/android/server/am/LmkdStatsReporter.java | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/am/LmkdConnection.java b/services/core/java/com/android/server/am/LmkdConnection.java index 1ecb9eb817090..598f086db94db 100644 --- a/services/core/java/com/android/server/am/LmkdConnection.java +++ b/services/core/java/com/android/server/am/LmkdConnection.java @@ -50,7 +50,7 @@ public class LmkdConnection { * Used to hold the data for the statsd atoms logging * Must be in sync with statslog.h */ - private static final int LMKD_REPLY_MAX_SIZE = 214; + private static final int LMKD_REPLY_MAX_SIZE = 222; // connection listener interface interface LmkdConnectionListener { diff --git a/services/core/java/com/android/server/am/LmkdStatsReporter.java b/services/core/java/com/android/server/am/LmkdStatsReporter.java index a8d058229a4b0..91588913c33c6 100644 --- a/services/core/java/com/android/server/am/LmkdStatsReporter.java +++ b/services/core/java/com/android/server/am/LmkdStatsReporter.java @@ -64,11 +64,14 @@ public final class LmkdStatsReporter { final int freeMemKb = inputData.readInt(); final int freeSwapKb = inputData.readInt(); final int killReason = inputData.readInt(); + final int thrashing = inputData.readInt(); + final int maxThrashing = inputData.readInt(); final String procName = inputData.readUTF(); FrameworkStatsLog.write(FrameworkStatsLog.LMK_KILL_OCCURRED, uid, procName, oomScore, pgFault, pgMajFault, rssInBytes, cacheInBytes, swapInBytes, processStartTimeNS, - minOomScore, freeMemKb, freeSwapKb, mapKillReason(killReason)); + minOomScore, freeMemKb, freeSwapKb, mapKillReason(killReason), thrashing, + maxThrashing); } catch (IOException e) { Slog.e(TAG, "Invalid buffer data. Failed to log LMK_KILL_OCCURRED"); return;