Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d805e562 authored by Hridya Valsaraju's avatar Hridya Valsaraju
Browse files

dumpsys: Print total DMA-BUFs exported from the DMA-BUF heaps framework

This patch adds the total size of DMA-BUFs exported from the DMA-BUF
heaps framework to dumpsys meminfo.

Bug: 167709539
Test: adb shell dumpsys meminfo
Change-Id: I153721a0dc91ee5084a446ba1ce4f8ec9c51c4f0
Merged-In: I153721a0dc91ee5084a446ba1ce4f8ec9c51c4f0
parent 87d49d2f
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -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.
+12 −0
Original line number Diff line number Diff line
@@ -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",
+9 −0
Original line number Diff line number Diff line
@@ -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: ");
+8 −0
Original line number Diff line number Diff line
@@ -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) {