diff options
| -rw-r--r-- | core/java/android/os/Debug.java | 6 | ||||
| -rw-r--r-- | core/jni/android_os_Debug.cpp | 4 | ||||
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 8 |
3 files changed, 10 insertions, 8 deletions
diff --git a/core/java/android/os/Debug.java b/core/java/android/os/Debug.java index 4b2cfe222dd6..a2e53e29193c 100644 --- a/core/java/android/os/Debug.java +++ b/core/java/android/os/Debug.java @@ -2551,14 +2551,16 @@ public final class Debug public static native long getZramFreeKb(); /** - * Return memory size in kilobytes allocated for ION heaps. + * Return memory size in kilobytes allocated for ION heaps or -1 if + * /sys/kernel/ion/total_heaps_kb could not be read. * * @hide */ public static native long getIonHeapsSizeKb(); /** - * Return memory size in kilobytes allocated for ION pools. + * Return memory size in kilobytes allocated for ION pools or -1 if + * /sys/kernel/ion/total_pools_kb could not be read. * * @hide */ diff --git a/core/jni/android_os_Debug.cpp b/core/jni/android_os_Debug.cpp index ef0eeec2c7af..5a859aabce7b 100644 --- a/core/jni/android_os_Debug.cpp +++ b/core/jni/android_os_Debug.cpp @@ -792,7 +792,7 @@ static jlong android_os_Debug_getFreeZramKb(JNIEnv* env, jobject clazz) { } static jlong android_os_Debug_getIonHeapsSizeKb(JNIEnv* env, jobject clazz) { - jlong heapsSizeKb = 0; + jlong heapsSizeKb = -1; uint64_t size; if (meminfo::ReadIonHeapsSizeKb(&size)) { @@ -803,7 +803,7 @@ static jlong android_os_Debug_getIonHeapsSizeKb(JNIEnv* env, jobject clazz) { } static jlong android_os_Debug_getIonPoolsSizeKb(JNIEnv* env, jobject clazz) { - jlong poolsSizeKb = 0; + jlong poolsSizeKb = -1; uint64_t size; if (meminfo::ReadIonPoolsSizeKb(&size)) { diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 354b29c367ec..d990c1e9fbe1 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -13742,10 +13742,10 @@ public class ActivityManagerService extends IActivityManager.Stub } long kernelUsed = memInfo.getKernelUsedSizeKb(); final long ionHeap = Debug.getIonHeapsSizeKb(); - if (ionHeap > 0) { + final long ionPool = Debug.getIonPoolsSizeKb(); + if (ionHeap >= 0 && ionPool >= 0) { final long ionMapped = Debug.getIonMappedSizeKb(); final long ionUnmapped = ionHeap - ionMapped; - final long ionPool = Debug.getIonPoolsSizeKb(); pw.print(" ION: "); pw.print(stringifyKBSize(ionHeap + ionPool)); pw.print(" ("); @@ -14556,10 +14556,10 @@ public class ActivityManagerService extends IActivityManager.Stub memInfoBuilder.append("\n"); long kernelUsed = memInfo.getKernelUsedSizeKb(); final long ionHeap = Debug.getIonHeapsSizeKb(); - if (ionHeap > 0) { + final long ionPool = Debug.getIonPoolsSizeKb(); + if (ionHeap >= 0 && ionPool >= 0) { final long ionMapped = Debug.getIonMappedSizeKb(); final long ionUnmapped = ionHeap - ionMapped; - final long ionPool = Debug.getIonPoolsSizeKb(); memInfoBuilder.append(" ION: "); memInfoBuilder.append(stringifyKBSize(ionHeap + ionPool)); memInfoBuilder.append("\n"); |