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

Commit c17cbb30 authored by Suren Baghdasaryan's avatar Suren Baghdasaryan
Browse files

Extend getPssPid to report itemized memtrack values



Currently getPssPid includes memtrack HAL reported values in the pss
calculation. This makes it impossible to get these values separately.
Extend this interface to include itemized memtrack values.

Bug: 165832481
Test: dumpsys meminfo
Signed-off-by: default avatarSuren Baghdasaryan <surenb@google.com>
Change-Id: Ieb7e1b79ad8ecae6023338d9992467952558e2bd
parent 9379af7c
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1902,7 +1902,8 @@ public final class Debug
     * Retrieves the PSS memory used by the process as given by the smaps. Optionally supply a long
     * array of up to 3 entries to also receive (up to 3 values in order): the Uss and SwapPss and
     * Rss (only filled in as of {@link android.os.Build.VERSION_CODES#P}) of the process, and
     * another array to also retrieve the separate memtrack size.
     * another array to also retrieve the separate memtrack sizes (up to 4 values in order): the
     * total memtrack reported size, memtrack graphics, memtrack gl and memtrack other.
     *
     * @return The PSS memory usage, or 0 if failed to retrieve (i.e., given pid has gone).
     * @hide
+9 −0
Original line number Diff line number Diff line
@@ -540,6 +540,15 @@ static jlong android_os_Debug_getPssPid(JNIEnv *env, jobject clazz, jint pid,
            jlong* outMemtrackArray = env->GetLongArrayElements(outMemtrack, 0);
            if (outMemtrackArray != NULL) {
                outMemtrackArray[0] = memtrack;
                if (env->GetArrayLength(outMemtrack) >= 2) {
                    outMemtrackArray[1] = graphics_mem.graphics;
                }
                if (env->GetArrayLength(outMemtrack) >= 3) {
                    outMemtrackArray[2] = graphics_mem.gl;
                }
                if (env->GetArrayLength(outMemtrack) >= 4) {
                    outMemtrackArray[3] = graphics_mem.other;
                }
            }
            env->ReleaseLongArrayElements(outMemtrack, outMemtrackArray, 0);
        }