diff options
Diffstat (limited to 'cmds/servicemanager/main.cpp')
-rw-r--r-- | cmds/servicemanager/main.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/cmds/servicemanager/main.cpp b/cmds/servicemanager/main.cpp index 07908ba5b3..c126e91373 100644 --- a/cmds/servicemanager/main.cpp +++ b/cmds/servicemanager/main.cpp @@ -26,6 +26,26 @@ #include "Access.h" #include "ServiceManager.h" +#if !defined(VENDORSERVICEMANAGER) && !defined(__ANDROID_RECOVERY__) + +#include <perfetto/public/producer.h> +#include <perfetto/public/te_category_macros.h> +#include <perfetto/public/te_macros.h> +#include <perfetto/public/track_event.h> + +namespace android { + +static void register_perfetto_te_categories() { + struct PerfettoProducerInitArgs perfetto_args = PERFETTO_PRODUCER_INIT_ARGS_INIT(); + perfetto_args.backends = PERFETTO_BACKEND_SYSTEM; + PerfettoProducerInit(perfetto_args); + PerfettoTeInit(); + PERFETTO_TE_REGISTER_CATEGORIES(PERFETTO_SM_CATEGORIES); +} +} // namespace android + +#endif // !defined(VENDORSERVICEMANAGER) && !defined(__ANDROID_RECOVERY__) + using ::android::Access; using ::android::IPCThreadState; using ::android::Looper; @@ -132,6 +152,10 @@ int main(int argc, char** argv) { const char* driver = argc == 2 ? argv[1] : "/dev/binder"; +#if !defined(VENDORSERVICEMANAGER) && !defined(__ANDROID_RECOVERY__) + android::register_perfetto_te_categories(); +#endif // !defined(VENDORSERVICEMANAGER) && !defined(__ANDROID_RECOVERY__) + LOG(INFO) << "Starting sm instance on " << driver; sp<ProcessState> ps = ProcessState::initWithDriver(driver); |