summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorJing Ji <jji@google.com>2021-05-04 18:02:56 -0700
committerJing Ji <jji@google.com>2021-05-04 22:31:32 -0700
commitec65308e4bae22ceaeeafdb5f98a9d943388ac86 (patch)
tree54d2a8359a665281a81d36dc68963b5fa233129a /core/java
parent5f1fac6a583554738a2dca9fb6c75e166c06cc37 (diff)
Skip STATE_SERVICE_RESTARTING while dumping procstats to statsd
Because it's not a real process state. Bug: 186438656 Test: atest ProcStatsValidationTests Test: atest ProcessStatsDumpsysTest Test: atest CtsIncidentHostTestCases:ProcStatsProtoTest Test: atest CtsStatsdHostTestCases Test: atest CtsAppTestCases:ActivityManagerProcessStateTest Change-Id: I26d170f5acac8434548aa62b439c26141ad99c3e
Diffstat (limited to 'core/java')
-rw-r--r--core/java/com/android/internal/app/procstats/DumpUtils.java1
-rw-r--r--core/java/com/android/internal/app/procstats/ProcessState.java8
2 files changed, 7 insertions, 2 deletions
diff --git a/core/java/com/android/internal/app/procstats/DumpUtils.java b/core/java/com/android/internal/app/procstats/DumpUtils.java
index 2785c21baf95..bce0d6076d24 100644
--- a/core/java/com/android/internal/app/procstats/DumpUtils.java
+++ b/core/java/com/android/internal/app/procstats/DumpUtils.java
@@ -93,7 +93,6 @@ public final class DumpUtils {
STATE_LABELS[STATE_BOUND_TOP_OR_FGS] = "Bnd TopFgs";
STATE_LABELS[STATE_FGS] = " Fgs";
STATE_LABELS[STATE_IMPORTANT_FOREGROUND] = " Imp Fg";
- STATE_LABELS[STATE_IMPORTANT_FOREGROUND] = " Imp Fg";
STATE_LABELS[STATE_IMPORTANT_BACKGROUND] = " Imp Bg";
STATE_LABELS[STATE_BACKUP] = " Backup";
STATE_LABELS[STATE_SERVICE] = " Service";
diff --git a/core/java/com/android/internal/app/procstats/ProcessState.java b/core/java/com/android/internal/app/procstats/ProcessState.java
index 4bced27cafb4..d259b7fe0782 100644
--- a/core/java/com/android/internal/app/procstats/ProcessState.java
+++ b/core/java/com/android/internal/app/procstats/ProcessState.java
@@ -1550,6 +1550,10 @@ public final class ProcessState {
final int key = mDurations.getKeyAt(i);
final int type = SparseMappingTable.getIdFromKey(key);
final int aggregatedType = DumpUtils.aggregateCurrentProcessState(type);
+ if ((type % STATE_COUNT) == STATE_SERVICE_RESTARTING) {
+ // Skip restarting service state -- that is not actually a running process.
+ continue;
+ }
long time = mDurations.getValue(key);
if (mCurCombinedState == type) {
@@ -1563,7 +1567,9 @@ public final class ProcessState {
durationByState.put(aggregatedType, time);
}
}
- if (!didCurState && mCurCombinedState != STATE_NOTHING) {
+ if (!didCurState && mCurCombinedState != STATE_NOTHING
+ && (mCurCombinedState % STATE_COUNT) != STATE_SERVICE_RESTARTING) {
+ // Skip restarting service state -- that is not actually a running process.
final int aggregatedType = DumpUtils.aggregateCurrentProcessState(mCurCombinedState);
int index = durationByState.indexOfKey(aggregatedType);
if (index >= 0) {