From d7fda53855502d32ab0160b609a10ed4e9faab78 Mon Sep 17 00:00:00 2001 From: Jeffrey Huang Date: Mon, 6 Apr 2020 18:19:46 -0700 Subject: [PATCH] Send puller registration signal to statsd Bug: 153384066 Test: m -j Change-Id: Idd2465d52e6720d7bce26ecc7998721b9d9790e3 --- apex/statsd/aidl/android/os/IStatsd.aidl | 13 +++++++++---- .../android/server/stats/StatsManagerService.java | 1 + cmds/statsd/src/StatsService.cpp | 8 ++++++++ cmds/statsd/src/StatsService.h | 5 +++++ 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/apex/statsd/aidl/android/os/IStatsd.aidl b/apex/statsd/aidl/android/os/IStatsd.aidl index d5b5949cd0320..db80650b8c1cf 100644 --- a/apex/statsd/aidl/android/os/IStatsd.aidl +++ b/apex/statsd/aidl/android/os/IStatsd.aidl @@ -182,10 +182,15 @@ interface IStatsd { */ void sendAppBreadcrumbAtom(int label, int state); - /** - * Registers a puller callback function that, when invoked, pulls the data - * for the specified atom tag. - */ + /** + * Tell the stats daemon that all the pullers registered during boot have been sent. + */ + oneway void allPullersFromBootRegistered(); + + /** + * Registers a puller callback function that, when invoked, pulls the data + * for the specified atom tag. + */ oneway void registerPullAtomCallback(int uid, int atomTag, long coolDownMillis, long timeoutMillis,in int[] additiveFields, IPullAtomCallback pullerCallback); diff --git a/apex/statsd/service/java/com/android/server/stats/StatsManagerService.java b/apex/statsd/service/java/com/android/server/stats/StatsManagerService.java index 58c78da5cea7f..90764b0bd4267 100644 --- a/apex/statsd/service/java/com/android/server/stats/StatsManagerService.java +++ b/apex/statsd/service/java/com/android/server/stats/StatsManagerService.java @@ -600,6 +600,7 @@ public class StatsManagerService extends IStatsManagerService.Stub { statsd.registerPullAtomCallback(key.getUid(), key.getAtom(), value.getCoolDownMillis(), value.getTimeoutMillis(), value.getAdditiveFields(), value.getCallback()); } + statsd.allPullersFromBootRegistered(); } // Pre-condition: the Binder calling identity has already been cleared diff --git a/cmds/statsd/src/StatsService.cpp b/cmds/statsd/src/StatsService.cpp index 9169eb1778d91..d51bf77e3c210 100644 --- a/cmds/statsd/src/StatsService.cpp +++ b/cmds/statsd/src/StatsService.cpp @@ -1215,6 +1215,14 @@ Status StatsService::sendAppBreadcrumbAtom(int32_t label, int32_t state) { return Status::ok(); } +Status StatsService::allPullersFromBootRegistered() { + ENFORCE_UID(AID_SYSTEM); + + VLOG("StatsService::allPullersFromBootRegistered was called"); + + return Status::ok(); +} + Status StatsService::registerPullAtomCallback(int32_t uid, int32_t atomTag, int64_t coolDownMillis, int64_t timeoutMillis, const std::vector& additiveFields, diff --git a/cmds/statsd/src/StatsService.h b/cmds/statsd/src/StatsService.h index 114c84f953c87..ca01eeba80968 100644 --- a/cmds/statsd/src/StatsService.h +++ b/cmds/statsd/src/StatsService.h @@ -164,6 +164,11 @@ public: */ virtual Status sendAppBreadcrumbAtom(int32_t label, int32_t state) override; + /** + * Binder call to notify statsd that all pullers from boot have been registered. + */ + virtual Status allPullersFromBootRegistered(); + /** * Binder call to register a callback function for a pulled atom. */