From 676d9e3f2800cc23eb4287072ee94a8360401ccf Mon Sep 17 00:00:00 2001 From: Suprabh Shukla Date: Wed, 25 Jan 2023 13:22:31 -0800 Subject: [PATCH] Add a method to note waking network packets to BatteryStats This will be used to attribute CPU wakeups to the correct subsystem and uids when possible. Test: Builds, boots. Bug: 265742148 Change-Id: I1a29fc7cbe74990e317f0d62d3894523387bdde1 Merged-In: I1a29fc7cbe74990e317f0d62d3894523387bdde1 --- .../core/java/android/os/BatteryStatsInternal.java | 11 +++++++++++ .../com/android/server/am/BatteryStatsService.java | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/services/core/java/android/os/BatteryStatsInternal.java b/services/core/java/android/os/BatteryStatsInternal.java index d49cc116ab9b9..4a2fc89ae7d54 100644 --- a/services/core/java/android/os/BatteryStatsInternal.java +++ b/services/core/java/android/os/BatteryStatsInternal.java @@ -16,6 +16,8 @@ package android.os; +import android.net.Network; + import com.android.internal.os.BinderCallsStats; import com.android.internal.os.SystemServerCpuThreadReader.SystemServiceCpuThreadTimes; @@ -62,6 +64,15 @@ public abstract class BatteryStatsInternal { */ public abstract void noteJobsDeferred(int uid, int numDeferred, long sinceLast); + /** + * Informs battery stats of a data packet that woke up the CPU. + * + * @param network The network over which the packet arrived. + * @param elapsedMillis The time of the packet's arrival in elapsed timebase. + * @param uid The uid that received the packet. + */ + public abstract void noteCpuWakingNetworkPacket(Network network, long elapsedMillis, int uid); + /** * Informs battery stats of binder stats for the given work source UID. */ diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java index 606a09cb1cac4..b02dd5267726c 100644 --- a/services/core/java/com/android/server/am/BatteryStatsService.java +++ b/services/core/java/com/android/server/am/BatteryStatsService.java @@ -440,6 +440,11 @@ public final class BatteryStatsService extends IBatteryStats.Stub BatteryStatsService.this.noteJobsDeferred(uid, numDeferred, sinceLast); } + @Override + public void noteCpuWakingNetworkPacket(Network network, long elapsedMillis, int uid) { + Slog.d(TAG, "Wakeup due to incoming packet on network " + network + " to uid " + uid); + } + @Override public void noteBinderCallStats(int workSourceUid, long incrementatCallCount, Collection callStats) {