Loading services/gpuservice/Android.bp +5 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ cc_defaults { "libbinder", "libcutils", "libgfxstats", "libgpumem", "libgraphicsenv", "liblog", "libutils", Loading Loading @@ -85,6 +86,10 @@ cc_binary { name: "gpuservice", defaults: ["libgpuservice_binary"], init_rc: ["gpuservice.rc"], required: [ "bpfloader", "gpu_mem.o", ], srcs: [":gpuservice_binary_sources"], shared_libs: [ "libgpuservice", Loading services/gpuservice/CleanSpec.mk 0 → 100644 +52 −0 Original line number Diff line number Diff line # Copyright 2020 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # If you don't need to do a full clean build but would like to touch # a file or delete some intermediate files, add a clean step to the end # of the list. These steps will only be run once, if they haven't been # run before. # # E.g.: # $(call add-clean-step, touch -c external/sqlite/sqlite3.h) # $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates) # # Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with # files that are missing or have been moved. # # Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory. # Use $(OUT_DIR) to refer to the "out" directory. # # If you need to re-do something that's already mentioned, just copy # the command and add it to the bottom of the list. E.g., if a change # that you made last week required touching a file and a change you # made today requires touching the same file, just copy the old # touch step and add it to the end of the list. # # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ # For example: #$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates) #$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates) #$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f) #$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*) # Remove gpu_mem.o $(call add-clean-step, rm -rf $(OUT_DIR)/soong/.intermediates/frameworks/native/services/gpuservice/bpf) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/FAKE/gpu_mem.o_intermediates) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/ETC/gpu_mem.o_gpu_mem.o_intermediates) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/bpf/gpu_mem.o) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/fake_packages/gpu_mem.o-timestamp) services/gpuservice/GpuService.cpp +12 −2 Original line number Diff line number Diff line Loading @@ -24,11 +24,11 @@ #include <binder/Parcel.h> #include <binder/PermissionCache.h> #include <cutils/properties.h> #include <gpumem/GpuMem.h> #include <gpustats/GpuStats.h> #include <private/android_filesystem_config.h> #include <utils/String8.h> #include <utils/Trace.h> #include <vkjson.h> namespace android { Loading @@ -45,7 +45,10 @@ const String16 sDump("android.permission.DUMP"); const char* const GpuService::SERVICE_NAME = "gpu"; GpuService::GpuService() : mGpuStats(std::make_unique<GpuStats>()){}; GpuService::GpuService() : mGpuMem(std::make_unique<GpuMem>()), mGpuStats(std::make_unique<GpuStats>()) { mGpuMem->initialize(); }; void GpuService::setGpuStats(const std::string& driverPackageName, const std::string& driverVersionName, uint64_t driverVersionCode, Loading Loading @@ -90,6 +93,7 @@ status_t GpuService::doDump(int fd, const Vector<String16>& args, bool /*asProto } else { bool dumpAll = true; bool dumpDriverInfo = false; bool dumpMem = false; bool dumpStats = false; size_t numArgs = args.size(); Loading @@ -100,6 +104,8 @@ status_t GpuService::doDump(int fd, const Vector<String16>& args, bool /*asProto dumpStats = true; } else if (args[index] == String16("--gpudriverinfo")) { dumpDriverInfo = true; } else if (args[index] == String16("--gpumem")) { dumpMem = true; } } } Loading @@ -108,6 +114,10 @@ status_t GpuService::doDump(int fd, const Vector<String16>& args, bool /*asProto dumpGameDriverInfo(&result); result.append("\n"); } if (dumpAll || dumpMem) { mGpuMem->dump(args, &result); result.append("\n"); } if (dumpAll || dumpStats) { mGpuStats->dump(args, &result); result.append("\n"); Loading services/gpuservice/GpuService.h +2 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ namespace android { class GpuMem; class GpuStats; class GpuService : public BnGpuService, public PriorityDumper { Loading Loading @@ -72,6 +73,7 @@ private: /* * Attributes */ std::unique_ptr<GpuMem> mGpuMem; std::unique_ptr<GpuStats> mGpuStats; }; Loading Loading
services/gpuservice/Android.bp +5 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ cc_defaults { "libbinder", "libcutils", "libgfxstats", "libgpumem", "libgraphicsenv", "liblog", "libutils", Loading Loading @@ -85,6 +86,10 @@ cc_binary { name: "gpuservice", defaults: ["libgpuservice_binary"], init_rc: ["gpuservice.rc"], required: [ "bpfloader", "gpu_mem.o", ], srcs: [":gpuservice_binary_sources"], shared_libs: [ "libgpuservice", Loading
services/gpuservice/CleanSpec.mk 0 → 100644 +52 −0 Original line number Diff line number Diff line # Copyright 2020 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # If you don't need to do a full clean build but would like to touch # a file or delete some intermediate files, add a clean step to the end # of the list. These steps will only be run once, if they haven't been # run before. # # E.g.: # $(call add-clean-step, touch -c external/sqlite/sqlite3.h) # $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates) # # Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with # files that are missing or have been moved. # # Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory. # Use $(OUT_DIR) to refer to the "out" directory. # # If you need to re-do something that's already mentioned, just copy # the command and add it to the bottom of the list. E.g., if a change # that you made last week required touching a file and a change you # made today requires touching the same file, just copy the old # touch step and add it to the end of the list. # # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ # For example: #$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates) #$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates) #$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f) #$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*) # Remove gpu_mem.o $(call add-clean-step, rm -rf $(OUT_DIR)/soong/.intermediates/frameworks/native/services/gpuservice/bpf) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/FAKE/gpu_mem.o_intermediates) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/ETC/gpu_mem.o_gpu_mem.o_intermediates) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/bpf/gpu_mem.o) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/fake_packages/gpu_mem.o-timestamp)
services/gpuservice/GpuService.cpp +12 −2 Original line number Diff line number Diff line Loading @@ -24,11 +24,11 @@ #include <binder/Parcel.h> #include <binder/PermissionCache.h> #include <cutils/properties.h> #include <gpumem/GpuMem.h> #include <gpustats/GpuStats.h> #include <private/android_filesystem_config.h> #include <utils/String8.h> #include <utils/Trace.h> #include <vkjson.h> namespace android { Loading @@ -45,7 +45,10 @@ const String16 sDump("android.permission.DUMP"); const char* const GpuService::SERVICE_NAME = "gpu"; GpuService::GpuService() : mGpuStats(std::make_unique<GpuStats>()){}; GpuService::GpuService() : mGpuMem(std::make_unique<GpuMem>()), mGpuStats(std::make_unique<GpuStats>()) { mGpuMem->initialize(); }; void GpuService::setGpuStats(const std::string& driverPackageName, const std::string& driverVersionName, uint64_t driverVersionCode, Loading Loading @@ -90,6 +93,7 @@ status_t GpuService::doDump(int fd, const Vector<String16>& args, bool /*asProto } else { bool dumpAll = true; bool dumpDriverInfo = false; bool dumpMem = false; bool dumpStats = false; size_t numArgs = args.size(); Loading @@ -100,6 +104,8 @@ status_t GpuService::doDump(int fd, const Vector<String16>& args, bool /*asProto dumpStats = true; } else if (args[index] == String16("--gpudriverinfo")) { dumpDriverInfo = true; } else if (args[index] == String16("--gpumem")) { dumpMem = true; } } } Loading @@ -108,6 +114,10 @@ status_t GpuService::doDump(int fd, const Vector<String16>& args, bool /*asProto dumpGameDriverInfo(&result); result.append("\n"); } if (dumpAll || dumpMem) { mGpuMem->dump(args, &result); result.append("\n"); } if (dumpAll || dumpStats) { mGpuStats->dump(args, &result); result.append("\n"); Loading
services/gpuservice/GpuService.h +2 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ namespace android { class GpuMem; class GpuStats; class GpuService : public BnGpuService, public PriorityDumper { Loading Loading @@ -72,6 +73,7 @@ private: /* * Attributes */ std::unique_ptr<GpuMem> mGpuMem; std::unique_ptr<GpuStats> mGpuStats; }; Loading