diff --git a/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java b/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java index 6462ceb464369..84d758bbe319e 100644 --- a/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java +++ b/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java @@ -722,30 +722,6 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { pulledData.add(e); } - private void pullSystemIonHeapSize( - int tagId, long elapsedNanos, long wallClockNanos, - List pulledData) { - final long systemIonHeapSizeInBytes = readSystemIonHeapSizeFromDebugfs(); - StatsLogEventWrapper e = new StatsLogEventWrapper(tagId, elapsedNanos, wallClockNanos); - e.writeLong(systemIonHeapSizeInBytes); - pulledData.add(e); - } - - private void pullProcessSystemIonHeapSize( - int tagId, long elapsedNanos, long wallClockNanos, - List pulledData) { - List result = readProcessSystemIonHeapSizesFromDebugfs(); - for (IonAllocations allocations : result) { - StatsLogEventWrapper e = new StatsLogEventWrapper(tagId, elapsedNanos, wallClockNanos); - e.writeInt(getUidForPid(allocations.pid)); - e.writeString(readCmdlineFromProcfs(allocations.pid)); - e.writeInt((int) (allocations.totalSizeInBytes / 1024)); - e.writeInt(allocations.count); - e.writeInt((int) (allocations.maxSizeInBytes / 1024)); - pulledData.add(e); - } - } - private void pullBinderCallsStats( int tagId, long elapsedNanos, long wallClockNanos, List pulledData) { @@ -1697,16 +1673,6 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { break; } - case StatsLog.SYSTEM_ION_HEAP_SIZE: { - pullSystemIonHeapSize(tagId, elapsedNanos, wallClockNanos, ret); - break; - } - - case StatsLog.PROCESS_SYSTEM_ION_HEAP_SIZE: { - pullProcessSystemIonHeapSize(tagId, elapsedNanos, wallClockNanos, ret); - break; - } - case StatsLog.BINDER_CALLS: { pullBinderCallsStats(tagId, elapsedNanos, wallClockNanos, ret); break; diff --git a/cmds/statsd/src/external/StatsPullerManager.cpp b/cmds/statsd/src/external/StatsPullerManager.cpp index fecc52e3800fb..38f6459c1097a 100644 --- a/cmds/statsd/src/external/StatsPullerManager.cpp +++ b/cmds/statsd/src/external/StatsPullerManager.cpp @@ -95,14 +95,6 @@ std::map StatsPullerManager::kAllPullAtomInfo = { {{.atomTag = android::util::BATTERY_CYCLE_COUNT}, {.puller = new ResourceHealthManagerPuller(android::util::BATTERY_CYCLE_COUNT)}}, - // system_ion_heap_size - {{.atomTag = android::util::SYSTEM_ION_HEAP_SIZE}, - {.puller = new StatsCompanionServicePuller(android::util::SYSTEM_ION_HEAP_SIZE)}}, - - // process_system_ion_heap_size - {{.atomTag = android::util::PROCESS_SYSTEM_ION_HEAP_SIZE}, - {.puller = new StatsCompanionServicePuller(android::util::PROCESS_SYSTEM_ION_HEAP_SIZE)}}, - // temperature {{.atomTag = android::util::TEMPERATURE}, {.puller = new StatsCompanionServicePuller(android::util::TEMPERATURE)}}, diff --git a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java index 79dbd9baeac9e..2941d77eb1197 100644 --- a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java +++ b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java @@ -1208,11 +1208,23 @@ public class StatsPullAtomService extends SystemService { } private void registerSystemIonHeapSize() { - // No op. + int tagId = StatsLog.SYSTEM_ION_HEAP_SIZE; + mStatsManager.registerPullAtomCallback( + tagId, + null, // use default PullAtomMetadata values + (atomTag, data) -> pullSystemIonHeapSize(atomTag, data), + BackgroundThread.getExecutor() + ); } - private void pullSystemIonHeapSize() { - // No op. + private int pullSystemIonHeapSize(int atomTag, List pulledData) { + final long systemIonHeapSizeInBytes = readSystemIonHeapSizeFromDebugfs(); + StatsEvent e = StatsEvent.newBuilder() + .setAtomId(atomTag) + .writeLong(systemIonHeapSizeInBytes) + .build(); + pulledData.add(e); + return StatsManager.PULL_SUCCESS; } private void registerIonHeapSize() { @@ -1236,11 +1248,29 @@ public class StatsPullAtomService extends SystemService { } private void registerProcessSystemIonHeapSize() { - // No op. + int tagId = StatsLog.PROCESS_SYSTEM_ION_HEAP_SIZE; + mStatsManager.registerPullAtomCallback( + tagId, + null, // use default PullAtomMetadata values + (atomTag, data) -> pullProcessSystemIonHeapSize(atomTag, data), + BackgroundThread.getExecutor() + ); } - private void pullProcessSystemIonHeapSize() { - // No op. + private int pullProcessSystemIonHeapSize(int atomTag, List pulledData) { + List result = readProcessSystemIonHeapSizesFromDebugfs(); + for (IonAllocations allocations : result) { + StatsEvent e = StatsEvent.newBuilder() + .setAtomId(atomTag) + .writeInt(getUidForPid(allocations.pid)) + .writeString(readCmdlineFromProcfs(allocations.pid)) + .writeInt((int) (allocations.totalSizeInBytes / 1024)) + .writeInt(allocations.count) + .writeInt((int) (allocations.maxSizeInBytes / 1024)) + .build(); + pulledData.add(e); + } + return StatsManager.PULL_SUCCESS; } private void registerTemperature() {