diff options
| -rw-r--r-- | cmds/statsd/src/atoms.proto | 25 | ||||
| -rw-r--r-- | cmds/statsd/src/external/StatsPullerManager.cpp | 3 | ||||
| -rw-r--r-- | services/core/java/com/android/server/stats/StatsCompanionService.java | 10 |
3 files changed, 37 insertions, 1 deletions
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto index 0b810277ab66..eed7f62eac34 100644 --- a/cmds/statsd/src/atoms.proto +++ b/cmds/statsd/src/atoms.proto @@ -322,7 +322,7 @@ message Atom { } // Pulled events will start at field 10000. - // Next: 10059 + // Next: 10062 oneof pulled { WifiBytesTransfer wifi_bytes_transfer = 10000; WifiBytesTransferByFgBg wifi_bytes_transfer_by_fg_bg = 10001; @@ -385,6 +385,7 @@ message Atom { FaceSettings face_settings = 10058; CoolingDevice cooling_device = 10059; AppOps app_ops = 10060; + ProcessSystemIonHeapSize process_system_ion_heap_size = 10061; } // DO NOT USE field numbers above 100,000 in AOSP. @@ -6369,6 +6370,28 @@ message SystemIonHeapSize { optional int64 size_in_bytes = 1; } +/* + * Logs the per-process size of the system ion heap. + * + * Pulled from StatsCompanionService. + */ +message ProcessSystemIonHeapSize { + // The uid if available. -1 means not available. + optional int32 uid = 1 [(is_uid) = true]; + + // The process name (from /proc/PID/cmdline). + optional string process_name = 2; + + // Sum of sizes of all allocations. + optional int32 total_size_in_kilobytes = 3; + + // Number of allocations. + optional int32 allocation_count = 4; + + // Size of the largest allocation. + optional int32 max_size_in_kilobytes = 5; +} + /** * Push network stack events. * diff --git a/cmds/statsd/src/external/StatsPullerManager.cpp b/cmds/statsd/src/external/StatsPullerManager.cpp index 914d60d3daca..475f18a9b0b8 100644 --- a/cmds/statsd/src/external/StatsPullerManager.cpp +++ b/cmds/statsd/src/external/StatsPullerManager.cpp @@ -156,6 +156,9 @@ std::map<int, PullAtomInfo> StatsPullerManager::kAllPullAtomInfo = { // system_ion_heap_size {android::util::SYSTEM_ION_HEAP_SIZE, {.puller = new StatsCompanionServicePuller(android::util::SYSTEM_ION_HEAP_SIZE)}}, + // process_system_ion_heap_size + {android::util::PROCESS_SYSTEM_ION_HEAP_SIZE, + {.puller = new StatsCompanionServicePuller(android::util::PROCESS_SYSTEM_ION_HEAP_SIZE)}}, // temperature {android::util::TEMPERATURE, {.puller = new StatsCompanionServicePuller(android::util::TEMPERATURE)}}, diff --git a/services/core/java/com/android/server/stats/StatsCompanionService.java b/services/core/java/com/android/server/stats/StatsCompanionService.java index 6b74c382afbe..2f95944f54f1 100644 --- a/services/core/java/com/android/server/stats/StatsCompanionService.java +++ b/services/core/java/com/android/server/stats/StatsCompanionService.java @@ -1271,6 +1271,12 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { pulledData.add(e); } + private void pullProcessSystemIonHeapSize( + int tagId, long elapsedNanos, long wallClockNanos, + List<StatsLogEventWrapper> pulledData) { + // TODO(b/130526489): Read from debugfs. + } + private void pullBinderCallsStats( int tagId, long elapsedNanos, long wallClockNanos, List<StatsLogEventWrapper> pulledData) { @@ -2333,6 +2339,10 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { 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; |