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

Commit fda96163 authored by Isaac J. Manjarres's avatar Isaac J. Manjarres
Browse files

Add Debug.getKernelCmaUsageKb()



Add JNI support for Java applications so that they can calculate
how much memory kernel drivers are using through CMA.

Bug: 371518137
Bug: 228238851
Change-Id: I0223097883debf8b57683ae2696fc01e22ac5377
Signed-off-by: default avatarIsaac J. Manjarres <isaacmanjarres@google.com>
parent b6a0612f
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -2741,4 +2741,12 @@ public final class Debug
     */
    public static native boolean logAllocatorStats();

    /**
     * Return the amount of memory (in kB) allocated by kernel drivers through CMA.
     * @return a non-negative value or -1 on error.
     *
     * @hide
     */
    public static native long getKernelCmaUsageKb();

}
+12 −0
Original line number Diff line number Diff line
@@ -729,6 +729,17 @@ static jlong android_os_Debug_getGpuPrivateMemoryKb(JNIEnv* env, jobject clazz)
    return gpuPrivateMem / 1024;
}

static jlong android_os_Debug_getKernelCmaUsageKb(JNIEnv* env, jobject clazz) {
    jlong totalKernelCmaUsageKb = -1;
    uint64_t size;

    if (meminfo::ReadKernelCmaUsageKb(&size)) {
        totalKernelCmaUsageKb = size;
    }

    return totalKernelCmaUsageKb;
}

static jlong android_os_Debug_getDmabufMappedSizeKb(JNIEnv* env, jobject clazz) {
    jlong dmabufPss = 0;
    std::vector<dmabufinfo::DmaBuffer> dmabufs;
@@ -836,6 +847,7 @@ static const JNINativeMethod gMethods[] = {
        {"getGpuTotalUsageKb", "()J", (void*)android_os_Debug_getGpuTotalUsageKb},
        {"isVmapStack", "()Z", (void*)android_os_Debug_isVmapStack},
        {"logAllocatorStats", "()Z", (void*)android_os_Debug_logAllocatorStats},
        {"getKernelCmaUsageKb", "()J", (void*)android_os_Debug_getKernelCmaUsageKb},
};

int register_android_os_Debug(JNIEnv *env)