Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1a101bd2 authored by Sergei Vasilinetc's avatar Sergei Vasilinetc Committed by android-build-merger
Browse files

Merge "atrace: introduce category for core services" into nyc-dev am: 4f1563fa

am: a6d385eb

* commit 'a6d385eb':
  atrace: introduce category for core services

Change-Id: I17b8a748b14a2dfea4a5b4133bafe87261a2890e
parents d0bb1323 a6d385eb
Loading
Loading
Loading
Loading
+27 −1
Original line number Diff line number Diff line
@@ -54,6 +54,8 @@ const char* k_traceTagsProperty = "debug.atrace.tags.enableflags";

const char* k_traceAppsNumberProperty = "debug.atrace.app_number";
const char* k_traceAppsPropertyTemplate = "debug.atrace.app_%d";
const char* k_coreServiceCategory = "core_services";
const char* k_coreServicesProp = "ro.atrace.core.services";

typedef enum { OPT, REQ } requiredness  ;

@@ -101,6 +103,7 @@ static const TracingCategory k_categories[] = {
    { "pm",         "Package Manager",  ATRACE_TAG_PACKAGE_MANAGER, { } },
    { "ss",         "System Server",    ATRACE_TAG_SYSTEM_SERVER, { } },
    { "database",   "Database",         ATRACE_TAG_DATABASE, { } },
    { k_coreServiceCategory, "Core services", 0, { } },
    { "sched",      "CPU Scheduling",   0, {
        { REQ,      "/sys/kernel/debug/tracing/events/sched/sched_switch/enable" },
        { REQ,      "/sys/kernel/debug/tracing/events/sched/sched_wakeup/enable" },
@@ -332,6 +335,12 @@ static bool setKernelOptionEnable(const char* filename, bool enable)
// or /sys/ files.
static bool isCategorySupported(const TracingCategory& category)
{
    if (strcmp(category.name, k_coreServiceCategory) == 0) {
        char value[PROPERTY_VALUE_MAX];
        property_get(k_coreServicesProp, value, "");
        return strlen(value) != 0;
    }

    bool ok = category.tags != 0;
    for (int i = 0; i < MAX_SYS_FILES; i++) {
        const char* path = category.sysfiles[i].path;
@@ -717,7 +726,24 @@ static bool setUpTrace()
        }
    }
    ok &= setTagsProperty(tags);
    ok &= setAppCmdlineProperty(g_debugAppCmdLine);

    bool coreServicesTagEnabled = false;
    for (int i = 0; i < NELEM(k_categories); i++) {
        if (strcmp(k_categories[i].name, k_coreServiceCategory) == 0) {
            coreServicesTagEnabled = g_categoryEnables[i];
        }
    }

    std::string packageList(g_debugAppCmdLine);
    if (coreServicesTagEnabled) {
        char value[PROPERTY_VALUE_MAX];
        property_get(k_coreServicesProp, value, "");
        if (!packageList.empty()) {
            packageList += ",";
        }
        packageList += value;
    }
    ok &= setAppCmdlineProperty(packageList.data());
    ok &= pokeBinderServices();

    // Disable all the sysfs enables.  This is done as a separate loop from