From 419197630e6d27b6d81246ed141c45a2d5820a66 Mon Sep 17 00:00:00 2001 From: Jeffrey Huang Date: Mon, 27 Apr 2020 16:45:09 -0700 Subject: [PATCH] Update process_state_changed logging Log only the parent state to avoid unnecessary process states from being sent to statsd. This may not work for all cases, but the edge cases can be revisited later. Bug: 135965535 Bug: 135375287 Test: manually tested using chrome Change-Id: I87b79f5d21f186f227a5a50bbe83b56a9105348c --- core/java/com/android/internal/os/BatteryStatsImpl.java | 5 +++++ .../core/java/com/android/server/am/BatteryStatsService.java | 4 ---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java index 64324756796a3..415e21062aa5f 100644 --- a/core/java/com/android/internal/os/BatteryStatsImpl.java +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java @@ -4009,6 +4009,11 @@ public class BatteryStatsImpl extends BatteryStats { // Otherwise the parent's process state will get downgraded incorrectly return; } + // TODO(b/155216561): It is possible for isolated uids to be in a higher + // state than its parent uid. We should track the highest state within the union of host + // and isolated uids rather than only the parent uid. + FrameworkStatsLog.write(FrameworkStatsLog.UID_PROCESS_STATE_CHANGED, uid, + ActivityManager.processStateAmToProto(state)); getUidStatsLocked(uid).updateUidProcessStateLocked(state); } diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java index b647818e3f7ad..090ac5467c680 100644 --- a/services/core/java/com/android/server/am/BatteryStatsService.java +++ b/services/core/java/com/android/server/am/BatteryStatsService.java @@ -16,7 +16,6 @@ package com.android.server.am; -import android.app.ActivityManager; import android.bluetooth.BluetoothActivityEnergyInfo; import android.content.ContentResolver; import android.content.Context; @@ -376,9 +375,6 @@ public final class BatteryStatsService extends IBatteryStats.Stub /** @param state Process state from ActivityManager.java. */ void noteUidProcessState(int uid, int state) { synchronized (mStats) { - FrameworkStatsLog.write(FrameworkStatsLog.UID_PROCESS_STATE_CHANGED, uid, - ActivityManager.processStateAmToProto(state)); - mStats.noteUidProcessStateLocked(uid, state); } }