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

Commit 539577f0 authored by Vova Sharaienko's avatar Vova Sharaienko
Browse files

Removed dependency on libstatslog

- created dedicated log modules for gpustats

Flag: EXEMPT bugfix
Bug: 402950016
Test: build should pass, refactoring CL existing tests pass
Change-Id: I7228a1553bc761cf86e701af72e3b16bedebc9e9
parent bbe26c2a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@ cc_defaults {
        "libgraphicsenv",
        "liblog",
        "libprotoutil",
        "libstatslog",
        "libstatslog_gpustats",
        "libstatspull",
        "libstatssocket",
        "libutils",
@@ -39,7 +39,7 @@ cc_library_static {
        "-Werror",
        "-Wformat",
        "-Wthread-safety",
        "-Wunused",
        "-Wunreachable-code",
        "-Wunused",
    ],
}
+14 −14
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@
#include <cutils/properties.h>
#include <log/log.h>
#include <stats_event.h>
#include <statslog.h>
#include <statslog_gpustats.h>
#include <utils/Trace.h>

#include <unordered_set>
@@ -32,8 +32,8 @@ namespace android {

GpuStats::~GpuStats() {
    if (mStatsdRegistered) {
        AStatsManager_clearPullAtomCallback(android::util::GPU_STATS_GLOBAL_INFO);
        AStatsManager_clearPullAtomCallback(android::util::GPU_STATS_APP_INFO);
        AStatsManager_clearPullAtomCallback(android::gpustats::GPU_STATS_GLOBAL_INFO);
        AStatsManager_clearPullAtomCallback(android::gpustats::GPU_STATS_APP_INFO);
    }
}

@@ -296,9 +296,9 @@ void GpuStats::interceptSystemDriverStatsLocked() {

void GpuStats::registerStatsdCallbacksIfNeeded() {
    if (!mStatsdRegistered) {
        AStatsManager_setPullAtomCallback(android::util::GPU_STATS_GLOBAL_INFO, nullptr,
        AStatsManager_setPullAtomCallback(android::gpustats::GPU_STATS_GLOBAL_INFO, nullptr,
                                         GpuStats::pullAtomCallback, this);
        AStatsManager_setPullAtomCallback(android::util::GPU_STATS_APP_INFO, nullptr,
        AStatsManager_setPullAtomCallback(android::gpustats::GPU_STATS_APP_INFO, nullptr,
                                         GpuStats::pullAtomCallback, this);
        mStatsdRegistered = true;
    }
@@ -421,16 +421,16 @@ AStatsManager_PullAtomCallbackReturn GpuStats::pullAppInfoAtom(AStatsEventList*
                engineNames.push_back(engineName.c_str());
            }

            android::util::addAStatsEvent(
            android::gpustats::addAStatsEvent(
                    data,
                    android::util::GPU_STATS_APP_INFO,
                    android::gpustats::GPU_STATS_APP_INFO,
                    ele.second.appPackageName.c_str(),
                    ele.second.driverVersionCode,
                    android::util::BytesField(glDriverBytes.c_str(),
                    android::gpustats::BytesField(glDriverBytes.c_str(),
                                              glDriverBytes.length()),
                    android::util::BytesField(vkDriverBytes.c_str(),
                    android::gpustats::BytesField(vkDriverBytes.c_str(),
                                              vkDriverBytes.length()),
                    android::util::BytesField(angleDriverBytes.c_str(),
                    android::gpustats::BytesField(angleDriverBytes.c_str(),
                                              angleDriverBytes.length()),
                    ele.second.cpuVulkanInUse,
                    ele.second.falsePrerotation,
@@ -461,9 +461,9 @@ AStatsManager_PullAtomCallbackReturn GpuStats::pullGlobalInfoAtom(AStatsEventLis

    if (data) {
        for (const auto& ele : mGlobalStats) {
          android::util::addAStatsEvent(
          android::gpustats::addAStatsEvent(
                  data,
                  android::util::GPU_STATS_GLOBAL_INFO,
                  android::gpustats::GPU_STATS_GLOBAL_INFO,
                  ele.second.driverPackageName.c_str(),
                  ele.second.driverVersionName.c_str(),
                  ele.second.driverVersionCode,
@@ -491,9 +491,9 @@ AStatsManager_PullAtomCallbackReturn GpuStats::pullAtomCallback(int32_t atomTag,
    ATRACE_CALL();

    GpuStats* pGpuStats = reinterpret_cast<GpuStats*>(cookie);
    if (atomTag == android::util::GPU_STATS_GLOBAL_INFO) {
    if (atomTag == android::gpustats::GPU_STATS_GLOBAL_INFO) {
        return pGpuStats->pullGlobalInfoAtom(data);
    } else if (atomTag == android::util::GPU_STATS_APP_INFO) {
    } else if (atomTag == android::gpustats::GPU_STATS_APP_INFO) {
        return pGpuStats->pullAppInfoAtom(data);
    }

+40 −2
Original line number Diff line number Diff line
@@ -31,8 +31,9 @@ cc_library_shared {
        "libbpf_bcc",
        "libcutils",
        "liblog",
        "libstatslog",
        "libstatslog_gpustats",
        "libstatspull",
        "libstatssocket",
        "libutils",
    ],
    export_include_dirs: [
@@ -50,11 +51,48 @@ cc_library_shared {
        "-Werror",
        "-Wformat",
        "-Wthread-safety",
        "-Wunused",
        "-Wunreachable-code",
        "-Wunused",
    ],
    required: [
        "bpfloader",
        "gpuWork.o",
    ],
}

cc_library_shared {
    name: "libstatslog_gpustats",
    host_supported: true,
    generated_sources: ["statslog_gpustats.cpp"],
    generated_headers: ["statslog_gpustats.h"],
    export_generated_headers: ["statslog_gpustats.h"],
    shared_libs: [
        "libstatspull",
        "libstatssocket",
    ],
    export_shared_lib_headers: [
        "libstatspull",
        "libstatssocket",
    ],
}

genrule {
    name: "statslog_gpustats.h",
    tools: ["stats-log-api-gen"],
    cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_gpustats.h" +
        " --module gpustats --namespace android,gpustats",
    out: [
        "statslog_gpustats.h",
    ],
}

genrule {
    name: "statslog_gpustats.cpp",
    tools: ["stats-log-api-gen"],
    cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_gpustats.cpp" +
        " --module gpustats --namespace android,gpustats" +
        " --importHeader statslog_gpustats.h",
    out: [
        "statslog_gpustats.cpp",
    ],
}
+5 −5
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@
#include <log/log.h>
#include <random>
#include <stats_event.h>
#include <statslog.h>
#include <statslog_gpustats.h>
#include <unistd.h>
#include <utils/Timers.h>
#include <utils/Trace.h>
@@ -110,7 +110,7 @@ GpuWork::~GpuWork() {
    {
        std::scoped_lock<std::mutex> lock(mMutex);
        if (mStatsdRegistered) {
            AStatsManager_clearPullAtomCallback(android::util::GPU_WORK_PER_UID);
            AStatsManager_clearPullAtomCallback(android::gpustats::GPU_WORK_PER_UID);
        }
    }

@@ -155,7 +155,7 @@ void GpuWork::initialize() {

    {
        std::lock_guard<std::mutex> lock(mMutex);
        AStatsManager_setPullAtomCallback(int32_t{android::util::GPU_WORK_PER_UID}, nullptr,
        AStatsManager_setPullAtomCallback(int32_t{android::gpustats::GPU_WORK_PER_UID}, nullptr,
                                          GpuWork::pullAtomCallback, this);
        mStatsdRegistered = true;
    }
@@ -260,7 +260,7 @@ AStatsManager_PullAtomCallbackReturn GpuWork::pullAtomCallback(int32_t atomTag,
    ATRACE_CALL();

    GpuWork* gpuWork = reinterpret_cast<GpuWork*>(cookie);
    if (atomTag == android::util::GPU_WORK_PER_UID) {
    if (atomTag == android::gpustats::GPU_WORK_PER_UID) {
        return gpuWork->pullWorkAtoms(data);
    }

@@ -417,7 +417,7 @@ AStatsManager_PullAtomCallbackReturn GpuWork::pullWorkAtoms(AStatsEventList* dat
            }

            ALOGI("pullWorkAtoms: adding stats for GPU ID %" PRIu32 "; UID %" PRIu32, gpuId, uid);
            android::util::addAStatsEvent(data, int32_t{android::util::GPU_WORK_PER_UID},
            android::gpustats::addAStatsEvent(data, int32_t{android::gpustats::GPU_WORK_PER_UID},
                                          // uid
                                          bitcast_int32(uid),
                                          // gpu_id
+1 −1
Original line number Diff line number Diff line
@@ -98,7 +98,7 @@ cc_test {
        "liblog",
        "libprotobuf-cpp-lite",
        "libprotoutil",
        "libstatslog",
        "libstatslog_gpustats",
        "libstatspull",
        "libutils",
    ],
Loading