Loading core/java/android/os/Debug.java +7 −0 Original line number Diff line number Diff line Loading @@ -2575,6 +2575,13 @@ public final class Debug */ public static native long getIonMappedSizeKb(); /** * Return memory size in kilobytes used by GPU. * * @hide */ public static native long getGpuTotalUsageKb(); /** * Return whether virtually-mapped kernel stacks are enabled (CONFIG_VMAP_STACK). * Note: caller needs config_gz read sepolicy permission Loading core/jni/android_os_Debug.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -844,6 +844,17 @@ static jlong android_os_Debug_getIonMappedSizeKb(JNIEnv* env, jobject clazz) { return ionPss; } static jlong android_os_Debug_getGpuTotalUsageKb(JNIEnv* env, jobject clazz) { jlong sizeKb = -1; uint64_t size; if (meminfo::ReadGpuTotalUsageKb(&size)) { sizeKb = size; } return sizeKb; } static jboolean android_os_Debug_isVmapStack(JNIEnv *env, jobject clazz) { static enum { Loading Loading @@ -912,6 +923,8 @@ static const JNINativeMethod gMethods[] = { (void*)android_os_Debug_getIonPoolsSizeKb }, { "getIonMappedSizeKb", "()J", (void*)android_os_Debug_getIonMappedSizeKb }, { "getGpuTotalUsageKb", "()J", (void*)android_os_Debug_getGpuTotalUsageKb }, { "isVmapStack", "()Z", (void*)android_os_Debug_isVmapStack }, }; Loading services/core/java/com/android/server/am/ActivityManagerService.java +10 −0 Original line number Diff line number Diff line Loading @@ -13744,6 +13744,10 @@ public class ActivityManagerService extends IActivityManager.Stub // set on ION VMAs, therefore consider the entire ION heap as used kernel memory kernelUsed += ionHeap; } final long gpuUsage = Debug.getGpuTotalUsageKb(); if (gpuUsage >= 0) { pw.print(" GPU: "); pw.println(stringifyKBSize(gpuUsage)); } final long lostRAM = memInfo.getTotalSizeKb() - (totalPss - totalSwapPss) - memInfo.getFreeSizeKb() - memInfo.getCachedSizeKb() - kernelUsed - memInfo.getZramTotalSizeKb(); Loading Loading @@ -14552,6 +14556,12 @@ public class ActivityManagerService extends IActivityManager.Stub // set on ION VMAs, therefore consider the entire ION heap as used kernel memory kernelUsed += ionHeap; } final long gpuUsage = Debug.getGpuTotalUsageKb(); if (gpuUsage >= 0) { memInfoBuilder.append(" GPU: "); memInfoBuilder.append(stringifyKBSize(gpuUsage)); memInfoBuilder.append("\n"); } memInfoBuilder.append(" Used RAM: "); memInfoBuilder.append(stringifyKBSize( totalPss - cachedPss + kernelUsed)); Loading
core/java/android/os/Debug.java +7 −0 Original line number Diff line number Diff line Loading @@ -2575,6 +2575,13 @@ public final class Debug */ public static native long getIonMappedSizeKb(); /** * Return memory size in kilobytes used by GPU. * * @hide */ public static native long getGpuTotalUsageKb(); /** * Return whether virtually-mapped kernel stacks are enabled (CONFIG_VMAP_STACK). * Note: caller needs config_gz read sepolicy permission Loading
core/jni/android_os_Debug.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -844,6 +844,17 @@ static jlong android_os_Debug_getIonMappedSizeKb(JNIEnv* env, jobject clazz) { return ionPss; } static jlong android_os_Debug_getGpuTotalUsageKb(JNIEnv* env, jobject clazz) { jlong sizeKb = -1; uint64_t size; if (meminfo::ReadGpuTotalUsageKb(&size)) { sizeKb = size; } return sizeKb; } static jboolean android_os_Debug_isVmapStack(JNIEnv *env, jobject clazz) { static enum { Loading Loading @@ -912,6 +923,8 @@ static const JNINativeMethod gMethods[] = { (void*)android_os_Debug_getIonPoolsSizeKb }, { "getIonMappedSizeKb", "()J", (void*)android_os_Debug_getIonMappedSizeKb }, { "getGpuTotalUsageKb", "()J", (void*)android_os_Debug_getGpuTotalUsageKb }, { "isVmapStack", "()Z", (void*)android_os_Debug_isVmapStack }, }; Loading
services/core/java/com/android/server/am/ActivityManagerService.java +10 −0 Original line number Diff line number Diff line Loading @@ -13744,6 +13744,10 @@ public class ActivityManagerService extends IActivityManager.Stub // set on ION VMAs, therefore consider the entire ION heap as used kernel memory kernelUsed += ionHeap; } final long gpuUsage = Debug.getGpuTotalUsageKb(); if (gpuUsage >= 0) { pw.print(" GPU: "); pw.println(stringifyKBSize(gpuUsage)); } final long lostRAM = memInfo.getTotalSizeKb() - (totalPss - totalSwapPss) - memInfo.getFreeSizeKb() - memInfo.getCachedSizeKb() - kernelUsed - memInfo.getZramTotalSizeKb(); Loading Loading @@ -14552,6 +14556,12 @@ public class ActivityManagerService extends IActivityManager.Stub // set on ION VMAs, therefore consider the entire ION heap as used kernel memory kernelUsed += ionHeap; } final long gpuUsage = Debug.getGpuTotalUsageKb(); if (gpuUsage >= 0) { memInfoBuilder.append(" GPU: "); memInfoBuilder.append(stringifyKBSize(gpuUsage)); memInfoBuilder.append("\n"); } memInfoBuilder.append(" Used RAM: "); memInfoBuilder.append(stringifyKBSize( totalPss - cachedPss + kernelUsed));