From cceed4f3dc7faf71269d80fe4ea219888b84f32e Mon Sep 17 00:00:00 2001 From: Siim Sammul Date: Mon, 29 Mar 2021 23:20:24 +0100 Subject: [PATCH] Add buckets params to the binder latency atom Original change: gerrit/14019215 Test: n/a - no functionality change Bug: 180584913 Change-Id: I20d8f5632f76774cad64af30a6aa1f1ab172152f --- .../internal/os/BinderLatencyObserver.java | 5 ++++- .../android/internal/binder_latency.proto | 18 +++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/core/java/com/android/internal/os/BinderLatencyObserver.java b/core/java/com/android/internal/os/BinderLatencyObserver.java index 4ca59be4877a5..0079801502378 100644 --- a/core/java/com/android/internal/os/BinderLatencyObserver.java +++ b/core/java/com/android/internal/os/BinderLatencyObserver.java @@ -157,7 +157,10 @@ public class BinderLatencyObserver { FrameworkStatsLog.BINDER_LATENCY_REPORTED, atom.getBytes(), mPeriodicSamplingInterval, - 1); + 1, + mBucketCount, + mFirstBucketSize, + mBucketScaleFactor); } private void noteLatencyDelayed() { diff --git a/core/proto/android/internal/binder_latency.proto b/core/proto/android/internal/binder_latency.proto index e32c3e3441c5f..8b11f5b34645f 100644 --- a/core/proto/android/internal/binder_latency.proto +++ b/core/proto/android/internal/binder_latency.proto @@ -34,6 +34,7 @@ message Dims { UNKNOWN_PROCESS_SOURCE = 0; SYSTEM_SERVER = 1; TELEPHONY = 2; + BLUETOOTH = 3; } enum ServiceClassName { @@ -74,4 +75,19 @@ message ApiStats { // Stores the count of samples for each bucket. The number of buckets and // their sizes are controlled server side with a flag. repeated int32 buckets = 3; -} \ No newline at end of file + + // Params for histogram buckets. + // The number of buckets in the histogram. Store this value separately + // as the tail of empty buckets is truncated when stored in the proto to + // conserve space. Thus it is not possible to infer this value from there. + optional int32 bucket_count = 4; + + // The size (upper bound) of the first bucket (used to avoid creating an + // excessive amount of small buckets). E.g. for first_bucket_size of 5, the + // first bucket will be [0, 5) and the second will be [5, 5 * scaleFactor). + optional int32 first_bucket_size = 5; + + // The rate in which each consecutive bucket increases (before rounding). + // Implemented in: com.android.internal.os.BinderLatencyBuckets. + optional float scale_factor = 6; +}