Loading core/java/android/os/Debug.java +2 −2 Original line number Diff line number Diff line Loading @@ -2599,11 +2599,11 @@ public final class Debug public static native long getIonPoolsSizeKb(); /** * Return GPU DMA buffer usage in kB or -1 on error. * Returns the global total GPU-private memory in kB or -1 on error. * * @hide */ public static native long getGpuDmaBufUsageKb(); public static native long getGpuPrivateMemoryKb(); /** * Return DMA-BUF memory mapped by processes in kB. Loading core/jni/Android.bp +0 −1 Original line number Diff line number Diff line Loading @@ -237,7 +237,6 @@ cc_library_shared { ], shared_libs: [ "android.hardware.memtrack-V1-ndk_platform", "audioclient-types-aidl-cpp", "audioflinger-aidl-cpp", "av-types-aidl-cpp", Loading core/jni/android_os_Debug.cpp +13 −20 Original line number Diff line number Diff line Loading @@ -33,7 +33,6 @@ #include <string> #include <vector> #include <aidl/android/hardware/memtrack/DeviceInfo.h> #include <android-base/logging.h> #include <bionic/malloc.h> #include <debuggerd/client.h> Loading @@ -46,7 +45,6 @@ #include "jni.h" #include <dmabufinfo/dmabuf_sysfs_stats.h> #include <dmabufinfo/dmabufinfo.h> #include <dmabufinfo/dmabuf_sysfs_stats.h> #include <meminfo/procmeminfo.h> #include <meminfo/sysmeminfo.h> #include <memtrack/memtrack.h> Loading Loading @@ -861,29 +859,24 @@ static jlong android_os_Debug_getDmabufHeapPoolsSizeKb(JNIEnv* env, jobject claz return poolsSizeKb; } static jlong android_os_Debug_getGpuDmaBufUsageKb(JNIEnv* env, jobject clazz) { std::vector<aidl::android::hardware::memtrack::DeviceInfo> gpu_device_info; if (!memtrack_gpu_device_info(&gpu_device_info)) { static jlong android_os_Debug_getGpuPrivateMemoryKb(JNIEnv* env, jobject clazz) { struct memtrack_proc* p = memtrack_proc_new(); if (p == nullptr) { LOG(ERROR) << "getGpuPrivateMemoryKb: Failed to create memtrack_proc"; return -1; } dmabufinfo::DmabufSysfsStats stats; if (!GetDmabufSysfsStats(&stats)) { // Memtrack hal defines PID 0 as global total for GPU-private (GL) memory. if (memtrack_proc_get(p, 0) != 0) { // The memtrack HAL may not be available, avoid flooding the log. memtrack_proc_destroy(p); return -1; } jlong sizeKb = 0; const auto& importer_stats = stats.importer_info(); for (const auto& dev_info : gpu_device_info) { const auto& importer_info = importer_stats.find(dev_info.name); if (importer_info == importer_stats.end()) { continue; } ssize_t gpuPrivateMem = memtrack_proc_gl_pss(p); sizeKb += importer_info->second.size / 1024; } return sizeKb; memtrack_proc_destroy(p); return gpuPrivateMem / 1024; } static jlong android_os_Debug_getDmabufMappedSizeKb(JNIEnv* env, jobject clazz) { Loading Loading @@ -994,8 +987,8 @@ static const JNINativeMethod gMethods[] = { (void*)android_os_Debug_getIonHeapsSizeKb }, { "getDmabufTotalExportedKb", "()J", (void*)android_os_Debug_getDmabufTotalExportedKb }, { "getGpuDmaBufUsageKb", "()J", (void*)android_os_Debug_getGpuDmaBufUsageKb }, { "getGpuPrivateMemoryKb", "()J", (void*)android_os_Debug_getGpuPrivateMemoryKb }, { "getDmabufHeapTotalExportedKb", "()J", (void*)android_os_Debug_getDmabufHeapTotalExportedKb }, { "getIonPoolsSizeKb", "()J", Loading services/core/java/com/android/server/am/ActivityManagerService.java +3 −3 Original line number Diff line number Diff line Loading @@ -11048,9 +11048,9 @@ public class ActivityManagerService extends IActivityManager.Stub } final long gpuUsage = Debug.getGpuTotalUsageKb(); if (gpuUsage >= 0) { final long gpuDmaBufUsage = Debug.getGpuDmaBufUsageKb(); if (gpuDmaBufUsage >= 0) { final long gpuPrivateUsage = gpuUsage - gpuDmaBufUsage; final long gpuPrivateUsage = Debug.getGpuPrivateMemoryKb(); if (gpuPrivateUsage >= 0) { final long gpuDmaBufUsage = gpuUsage - gpuPrivateUsage; pw.print(" GPU: "); pw.print(stringifyKBSize(gpuUsage)); pw.print(" ("); Loading services/core/java/com/android/server/am/AppProfiler.java +3 −3 Original line number Diff line number Diff line Loading @@ -1561,9 +1561,9 @@ public class AppProfiler { final long gpuUsage = Debug.getGpuTotalUsageKb(); if (gpuUsage >= 0) { final long gpuDmaBufUsage = Debug.getGpuDmaBufUsageKb(); if (gpuDmaBufUsage >= 0) { final long gpuPrivateUsage = gpuUsage - gpuDmaBufUsage; final long gpuPrivateUsage = Debug.getGpuPrivateMemoryKb(); if (gpuPrivateUsage >= 0) { final long gpuDmaBufUsage = gpuUsage - gpuPrivateUsage; memInfoBuilder.append(" GPU: "); memInfoBuilder.append(stringifyKBSize(gpuUsage)); memInfoBuilder.append(" ("); Loading Loading
core/java/android/os/Debug.java +2 −2 Original line number Diff line number Diff line Loading @@ -2599,11 +2599,11 @@ public final class Debug public static native long getIonPoolsSizeKb(); /** * Return GPU DMA buffer usage in kB or -1 on error. * Returns the global total GPU-private memory in kB or -1 on error. * * @hide */ public static native long getGpuDmaBufUsageKb(); public static native long getGpuPrivateMemoryKb(); /** * Return DMA-BUF memory mapped by processes in kB. Loading
core/jni/Android.bp +0 −1 Original line number Diff line number Diff line Loading @@ -237,7 +237,6 @@ cc_library_shared { ], shared_libs: [ "android.hardware.memtrack-V1-ndk_platform", "audioclient-types-aidl-cpp", "audioflinger-aidl-cpp", "av-types-aidl-cpp", Loading
core/jni/android_os_Debug.cpp +13 −20 Original line number Diff line number Diff line Loading @@ -33,7 +33,6 @@ #include <string> #include <vector> #include <aidl/android/hardware/memtrack/DeviceInfo.h> #include <android-base/logging.h> #include <bionic/malloc.h> #include <debuggerd/client.h> Loading @@ -46,7 +45,6 @@ #include "jni.h" #include <dmabufinfo/dmabuf_sysfs_stats.h> #include <dmabufinfo/dmabufinfo.h> #include <dmabufinfo/dmabuf_sysfs_stats.h> #include <meminfo/procmeminfo.h> #include <meminfo/sysmeminfo.h> #include <memtrack/memtrack.h> Loading Loading @@ -861,29 +859,24 @@ static jlong android_os_Debug_getDmabufHeapPoolsSizeKb(JNIEnv* env, jobject claz return poolsSizeKb; } static jlong android_os_Debug_getGpuDmaBufUsageKb(JNIEnv* env, jobject clazz) { std::vector<aidl::android::hardware::memtrack::DeviceInfo> gpu_device_info; if (!memtrack_gpu_device_info(&gpu_device_info)) { static jlong android_os_Debug_getGpuPrivateMemoryKb(JNIEnv* env, jobject clazz) { struct memtrack_proc* p = memtrack_proc_new(); if (p == nullptr) { LOG(ERROR) << "getGpuPrivateMemoryKb: Failed to create memtrack_proc"; return -1; } dmabufinfo::DmabufSysfsStats stats; if (!GetDmabufSysfsStats(&stats)) { // Memtrack hal defines PID 0 as global total for GPU-private (GL) memory. if (memtrack_proc_get(p, 0) != 0) { // The memtrack HAL may not be available, avoid flooding the log. memtrack_proc_destroy(p); return -1; } jlong sizeKb = 0; const auto& importer_stats = stats.importer_info(); for (const auto& dev_info : gpu_device_info) { const auto& importer_info = importer_stats.find(dev_info.name); if (importer_info == importer_stats.end()) { continue; } ssize_t gpuPrivateMem = memtrack_proc_gl_pss(p); sizeKb += importer_info->second.size / 1024; } return sizeKb; memtrack_proc_destroy(p); return gpuPrivateMem / 1024; } static jlong android_os_Debug_getDmabufMappedSizeKb(JNIEnv* env, jobject clazz) { Loading Loading @@ -994,8 +987,8 @@ static const JNINativeMethod gMethods[] = { (void*)android_os_Debug_getIonHeapsSizeKb }, { "getDmabufTotalExportedKb", "()J", (void*)android_os_Debug_getDmabufTotalExportedKb }, { "getGpuDmaBufUsageKb", "()J", (void*)android_os_Debug_getGpuDmaBufUsageKb }, { "getGpuPrivateMemoryKb", "()J", (void*)android_os_Debug_getGpuPrivateMemoryKb }, { "getDmabufHeapTotalExportedKb", "()J", (void*)android_os_Debug_getDmabufHeapTotalExportedKb }, { "getIonPoolsSizeKb", "()J", Loading
services/core/java/com/android/server/am/ActivityManagerService.java +3 −3 Original line number Diff line number Diff line Loading @@ -11048,9 +11048,9 @@ public class ActivityManagerService extends IActivityManager.Stub } final long gpuUsage = Debug.getGpuTotalUsageKb(); if (gpuUsage >= 0) { final long gpuDmaBufUsage = Debug.getGpuDmaBufUsageKb(); if (gpuDmaBufUsage >= 0) { final long gpuPrivateUsage = gpuUsage - gpuDmaBufUsage; final long gpuPrivateUsage = Debug.getGpuPrivateMemoryKb(); if (gpuPrivateUsage >= 0) { final long gpuDmaBufUsage = gpuUsage - gpuPrivateUsage; pw.print(" GPU: "); pw.print(stringifyKBSize(gpuUsage)); pw.print(" ("); Loading
services/core/java/com/android/server/am/AppProfiler.java +3 −3 Original line number Diff line number Diff line Loading @@ -1561,9 +1561,9 @@ public class AppProfiler { final long gpuUsage = Debug.getGpuTotalUsageKb(); if (gpuUsage >= 0) { final long gpuDmaBufUsage = Debug.getGpuDmaBufUsageKb(); if (gpuDmaBufUsage >= 0) { final long gpuPrivateUsage = gpuUsage - gpuDmaBufUsage; final long gpuPrivateUsage = Debug.getGpuPrivateMemoryKb(); if (gpuPrivateUsage >= 0) { final long gpuDmaBufUsage = gpuUsage - gpuPrivateUsage; memInfoBuilder.append(" GPU: "); memInfoBuilder.append(stringifyKBSize(gpuUsage)); memInfoBuilder.append(" ("); Loading