diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2021-02-16 17:58:25 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2021-02-16 17:58:25 +0000 |
commit | 2a2456d3a41109c7ec9376c56ed0c61f284c6b1f (patch) | |
tree | 2403b60def4ac0467977b047cb528fab62b0b3fa | |
parent | 6d3bd2dca6fa62cccca67daefd80d7d57e9f069e (diff) | |
parent | 1ff4e91e6ce051a759ec920d141303284c289020 (diff) |
Merge "dumpsys: Print total DMA-BUFs exported from the DMA-BUF heaps framework"
-rw-r--r-- | core/java/android/os/Debug.java | 8 | ||||
-rw-r--r-- | core/jni/android_os_Debug.cpp | 12 | ||||
-rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 19 |
3 files changed, 39 insertions, 0 deletions
diff --git a/core/java/android/os/Debug.java b/core/java/android/os/Debug.java index ea282afb8b8e..903bea3dc2ce 100644 --- a/core/java/android/os/Debug.java +++ b/core/java/android/os/Debug.java @@ -2560,6 +2560,14 @@ public final class Debug public static native long getDmabufTotalExportedKb(); /** + * Return total memory size in kilobytes for DMA-BUFs exported from the DMA-BUF + * heaps frameworks or -1 in the case of an error. + * + * @hide + */ + public static native long getDmabufHeapTotalExportedKb(); + + /** * Return memory size in kilobytes allocated for ION heaps or -1 if * /sys/kernel/ion/total_heaps_kb could not be read. * diff --git a/core/jni/android_os_Debug.cpp b/core/jni/android_os_Debug.cpp index 223b4dcc0549..0e3db46bd0c9 100644 --- a/core/jni/android_os_Debug.cpp +++ b/core/jni/android_os_Debug.cpp @@ -826,6 +826,16 @@ static jlong android_os_Debug_getDmabufTotalExportedKb(JNIEnv* env, jobject claz return dmabufTotalSizeKb; } +static jlong android_os_Debug_getDmabufHeapTotalExportedKb(JNIEnv* env, jobject clazz) { + jlong dmabufHeapTotalSizeKb = -1; + uint64_t size; + + if (meminfo::ReadDmabufHeapTotalExportedKb(&size)) { + dmabufHeapTotalSizeKb = size; + } + return dmabufHeapTotalSizeKb; +} + static jlong android_os_Debug_getIonPoolsSizeKb(JNIEnv* env, jobject clazz) { jlong poolsSizeKb = -1; uint64_t size; @@ -983,6 +993,8 @@ static const JNINativeMethod gMethods[] = { (void*)android_os_Debug_getDmabufTotalExportedKb }, { "getGpuDmaBufUsageKb", "()J", (void*)android_os_Debug_getGpuDmaBufUsageKb }, + { "getDmabufHeapTotalExportedKb", "()J", + (void*)android_os_Debug_getDmabufHeapTotalExportedKb }, { "getIonPoolsSizeKb", "()J", (void*)android_os_Debug_getIonPoolsSizeKb }, { "getDmabufMappedSizeKb", "()J", diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 126d04f794f5..661d49690a00 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -13767,6 +13767,15 @@ public class ActivityManagerService extends IActivityManager.Stub totalPss -= totalMemtrackGraphics; totalPss += dmabufMapped; } + + // totalDmabufHeapExported is included in totalExportedDmabuf above and hence do not + // need to be added to kernelUsed. + final long totalDmabufHeapExported = Debug.getDmabufHeapTotalExportedKb(); + if (totalDmabufHeapExported >= 0) { + pw.print("DMA-BUF Heaps: "); + pw.println(stringifyKBSize(totalDmabufHeapExported)); + } + final long totalDmabufHeapPool = Debug.getDmabufHeapPoolsSizeKb(); if (totalDmabufHeapPool >= 0) { pw.print("DMA-BUF Heaps pool: "); @@ -14619,6 +14628,16 @@ public class ActivityManagerService extends IActivityManager.Stub totalPss -= totalMemtrackGraphics; totalPss += dmabufMapped; } + + // These are included in the totalExportedDmabuf above and hence do not need to be added + // to kernelUsed. + final long totalExportedDmabufHeap = Debug.getDmabufHeapTotalExportedKb(); + if (totalExportedDmabufHeap >= 0) { + memInfoBuilder.append("DMA-BUF Heap: "); + memInfoBuilder.append(stringifyKBSize(totalExportedDmabufHeap)); + memInfoBuilder.append("\n"); + } + final long totalDmabufHeapPool = Debug.getDmabufHeapPoolsSizeKb(); if (totalDmabufHeapPool >= 0) { memInfoBuilder.append("DMA-BUF Heaps pool: "); |