Merge changes from topic "b/167709539" am: ad688d3e8c am: 7d360a08a0

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1564601

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ib162f0d936d4876987dbc2beceb570955bd9530d
This commit is contained in:
Treehugger Robot
2021-02-10 18:32:15 +00:00
committed by Automerger Merge Worker
3 changed files with 42 additions and 2 deletions

View File

@@ -2566,6 +2566,14 @@ public final class Debug
*/
public static native long getIonHeapsSizeKb();
/**
* Return memory size in kilobytes allocated for DMA-BUF heap pools or -1 if
* /sys/kernel/dma_heap/total_pools_kb could not be read.
*
* @hide
*/
public static native long getDmabufHeapPoolsSizeKb();
/**
* Return memory size in kilobytes allocated for ION pools or -1 if
* /sys/kernel/ion/total_pools_kb could not be read.

View File

@@ -824,6 +824,17 @@ static jlong android_os_Debug_getIonPoolsSizeKb(JNIEnv* env, jobject clazz) {
return poolsSizeKb;
}
static jlong android_os_Debug_getDmabufHeapPoolsSizeKb(JNIEnv* env, jobject clazz) {
jlong poolsSizeKb = -1;
uint64_t size;
if (meminfo::ReadDmabufHeapPoolsSizeKb(&size)) {
poolsSizeKb = size;
}
return poolsSizeKb;
}
static jlong android_os_Debug_getDmabufMappedSizeKb(JNIEnv* env, jobject clazz) {
jlong dmabufPss = 0;
std::vector<dmabufinfo::DmaBuffer> dmabufs;
@@ -936,6 +947,8 @@ static const JNINativeMethod gMethods[] = {
(void*)android_os_Debug_getIonPoolsSizeKb },
{ "getDmabufMappedSizeKb", "()J",
(void*)android_os_Debug_getDmabufMappedSizeKb },
{ "getDmabufHeapPoolsSizeKb", "()J",
(void*)android_os_Debug_getDmabufHeapPoolsSizeKb },
{ "getGpuTotalUsageKb", "()J",
(void*)android_os_Debug_getGpuTotalUsageKb },
{ "isVmapStack", "()Z",

View File

@@ -13746,14 +13746,23 @@ public class ActivityManagerService extends IActivityManager.Stub
pw.print(" mapped + ");
pw.print(stringifyKBSize(dmabufUnmapped));
pw.println(" unmapped)");
// TODO(b/167709539): also add pooled memory from DMA-BUF heaps
kernelUsed += totalExportedDmabuf;
}
final long totalDmabufHeapPool = Debug.getDmabufHeapPoolsSizeKb();
if (totalDmabufHeapPool >= 0) {
pw.print("DMA-BUF Heaps pool: ");
pw.println(stringifyKBSize(totalDmabufHeapPool));
}
}
final long gpuUsage = Debug.getGpuTotalUsageKb();
if (gpuUsage >= 0) {
pw.print(" GPU: "); pw.println(stringifyKBSize(gpuUsage));
}
/*
* Note: ION/DMA-BUF heap pools are reclaimable and hence, they are included as part of
* memInfo.getCachedSizeKb().
*/
final long lostRAM = memInfo.getTotalSizeKb() - (totalPss - totalSwapPss)
- memInfo.getFreeSizeKb() - memInfo.getCachedSizeKb()
- kernelUsed - memInfo.getZramTotalSizeKb();
@@ -14565,9 +14574,14 @@ public class ActivityManagerService extends IActivityManager.Stub
memInfoBuilder.append("DMA-BUF: ");
memInfoBuilder.append(stringifyKBSize(totalExportedDmabuf));
memInfoBuilder.append("\n");
// TODO(b/167709539): also add pooled memory from DMA-BUF heaps
kernelUsed += totalExportedDmabuf;
}
final long totalDmabufHeapPool = Debug.getDmabufHeapPoolsSizeKb();
if (totalDmabufHeapPool >= 0) {
memInfoBuilder.append("DMA-BUF Heaps pool: ");
memInfoBuilder.append(stringifyKBSize(totalDmabufHeapPool));
memInfoBuilder.append("\n");
}
}
final long gpuUsage = Debug.getGpuTotalUsageKb();
@@ -14580,6 +14594,11 @@ public class ActivityManagerService extends IActivityManager.Stub
memInfoBuilder.append(stringifyKBSize(
totalPss - cachedPss + kernelUsed));
memInfoBuilder.append("\n");
/*
* Note: ION/DMA-BUF heap pools are reclaimable and hence, they are included as part of
* memInfo.getCachedSizeKb().
*/
memInfoBuilder.append(" Lost RAM: ");
memInfoBuilder.append(stringifyKBSize(memInfo.getTotalSizeKb()
- (totalPss - totalSwapPss) - memInfo.getFreeSizeKb() - memInfo.getCachedSizeKb()