summaryrefslogtreecommitdiff
path: root/cmds/servicemanager/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cmds/servicemanager/main.cpp')
-rw-r--r--cmds/servicemanager/main.cpp24
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);