Loading services/gpuservice/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ filegroup { cc_library_shared { name: "libgpuservice", defaults: ["libgpuservice_production_defaults"], export_include_dirs: ["include"], srcs: [ ":libgpuservice_sources", ], Loading services/gpuservice/GpuService.cpp +9 −5 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ #define ATRACE_TAG ATRACE_TAG_GRAPHICS #include "GpuService.h" #include "gpuservice/GpuService.h" #include <android-base/stringprintf.h> #include <android-base/properties.h> Loading @@ -35,6 +35,7 @@ #include <vkjson.h> #include <thread> #include <memory> namespace android { Loading @@ -58,18 +59,21 @@ GpuService::GpuService() mGpuStats(std::make_unique<GpuStats>()), mGpuMemTracer(std::make_unique<GpuMemTracer>()) { std::thread gpuMemAsyncInitThread([this]() { mGpuMemAsyncInitThread = std::make_unique<std::thread>([this] (){ mGpuMem->initialize(); mGpuMemTracer->initialize(mGpuMem); }); gpuMemAsyncInitThread.detach(); std::thread gpuWorkAsyncInitThread([this]() { mGpuWorkAsyncInitThread = std::make_unique<std::thread>([this]() { mGpuWork->initialize(); }); gpuWorkAsyncInitThread.detach(); }; GpuService::~GpuService() { mGpuWorkAsyncInitThread->join(); mGpuMemAsyncInitThread->join(); } void GpuService::setGpuStats(const std::string& driverPackageName, const std::string& driverVersionName, uint64_t driverVersionCode, int64_t driverBuildTime, const std::string& appPackageName, Loading services/gpuservice/GpuService.h→services/gpuservice/include/gpuservice/GpuService.h +4 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ #include <serviceutils/PriorityDumper.h> #include <mutex> #include <thread> #include <vector> namespace android { Loading @@ -41,6 +42,7 @@ public: static const char* const SERVICE_NAME ANDROID_API; GpuService() ANDROID_API; ~GpuService(); protected: status_t shellCommand(int in, int out, int err, std::vector<String16>& args) override; Loading Loading @@ -90,6 +92,8 @@ private: std::unique_ptr<GpuMemTracer> mGpuMemTracer; std::mutex mLock; std::string mDeveloperDriverPath; std::unique_ptr<std::thread> mGpuMemAsyncInitThread; std::unique_ptr<std::thread> mGpuWorkAsyncInitThread; }; } // namespace android Loading services/gpuservice/main_gpuservice.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ #include <binder/IServiceManager.h> #include <binder/ProcessState.h> #include <sys/resource.h> #include "GpuService.h" #include "gpuservice/GpuService.h" using namespace android; Loading services/gpuservice/tests/unittests/Android.bp +2 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ cc_test { "GpuMemTest.cpp", "GpuMemTracerTest.cpp", "GpuStatsTest.cpp", "GpuServiceTest.cpp", ], header_libs: ["bpf_headers"], shared_libs: [ Loading @@ -45,6 +46,7 @@ cc_test { "libstatslog", "libstatspull", "libutils", "libgpuservice", ], static_libs: [ "libgmock", Loading Loading
services/gpuservice/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ filegroup { cc_library_shared { name: "libgpuservice", defaults: ["libgpuservice_production_defaults"], export_include_dirs: ["include"], srcs: [ ":libgpuservice_sources", ], Loading
services/gpuservice/GpuService.cpp +9 −5 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ #define ATRACE_TAG ATRACE_TAG_GRAPHICS #include "GpuService.h" #include "gpuservice/GpuService.h" #include <android-base/stringprintf.h> #include <android-base/properties.h> Loading @@ -35,6 +35,7 @@ #include <vkjson.h> #include <thread> #include <memory> namespace android { Loading @@ -58,18 +59,21 @@ GpuService::GpuService() mGpuStats(std::make_unique<GpuStats>()), mGpuMemTracer(std::make_unique<GpuMemTracer>()) { std::thread gpuMemAsyncInitThread([this]() { mGpuMemAsyncInitThread = std::make_unique<std::thread>([this] (){ mGpuMem->initialize(); mGpuMemTracer->initialize(mGpuMem); }); gpuMemAsyncInitThread.detach(); std::thread gpuWorkAsyncInitThread([this]() { mGpuWorkAsyncInitThread = std::make_unique<std::thread>([this]() { mGpuWork->initialize(); }); gpuWorkAsyncInitThread.detach(); }; GpuService::~GpuService() { mGpuWorkAsyncInitThread->join(); mGpuMemAsyncInitThread->join(); } void GpuService::setGpuStats(const std::string& driverPackageName, const std::string& driverVersionName, uint64_t driverVersionCode, int64_t driverBuildTime, const std::string& appPackageName, Loading
services/gpuservice/GpuService.h→services/gpuservice/include/gpuservice/GpuService.h +4 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ #include <serviceutils/PriorityDumper.h> #include <mutex> #include <thread> #include <vector> namespace android { Loading @@ -41,6 +42,7 @@ public: static const char* const SERVICE_NAME ANDROID_API; GpuService() ANDROID_API; ~GpuService(); protected: status_t shellCommand(int in, int out, int err, std::vector<String16>& args) override; Loading Loading @@ -90,6 +92,8 @@ private: std::unique_ptr<GpuMemTracer> mGpuMemTracer; std::mutex mLock; std::string mDeveloperDriverPath; std::unique_ptr<std::thread> mGpuMemAsyncInitThread; std::unique_ptr<std::thread> mGpuWorkAsyncInitThread; }; } // namespace android Loading
services/gpuservice/main_gpuservice.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ #include <binder/IServiceManager.h> #include <binder/ProcessState.h> #include <sys/resource.h> #include "GpuService.h" #include "gpuservice/GpuService.h" using namespace android; Loading
services/gpuservice/tests/unittests/Android.bp +2 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ cc_test { "GpuMemTest.cpp", "GpuMemTracerTest.cpp", "GpuStatsTest.cpp", "GpuServiceTest.cpp", ], header_libs: ["bpf_headers"], shared_libs: [ Loading @@ -45,6 +46,7 @@ cc_test { "libstatslog", "libstatspull", "libutils", "libgpuservice", ], static_libs: [ "libgmock", Loading