Merge "dumpsys: Print total DMA-BUFs exported from the DMA-BUF heaps framework" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-02-16 14:50:24 +00:00
committed by Android (Google) Code Review
4 changed files with 37 additions and 0 deletions

View File

@@ -2565,6 +2565,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.

View File

@@ -829,6 +829,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;
@@ -986,6 +996,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",

View File

@@ -10747,6 +10747,15 @@ public class ActivityManagerService extends IActivityManager.Stub
ss[INDEX_TOTAL_PSS] -= ss[INDEX_TOTAL_MEMTRACK_GRAPHICS];
ss[INDEX_TOTAL_PSS] += 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: ");

View File

@@ -1536,6 +1536,14 @@ public class AppProfiler {
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) {