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

Commit 299488d7 authored by Joel Fernandes (Google)'s avatar Joel Fernandes (Google) Committed by Joel Fernandes
Browse files

Rename map names in read_mapinfo



ART is removing dependency on ashmem for naming maps. Due to this, the
naming of the mappings have changed. Rename them in the debug info so
that it is working.

Also remove "/dev/ashmem/libc malloc", its now "anon:libc malloc" which
is already tested earlier in the code.

Bug: 111903542
Change-Id: I5071384f87701af208d6471c66ba425ccbda22ec
Signed-off-by: default avatarJoel Fernandes (Google) <joelaf@google.com>
Signed-off-by: default avatarJoel Fernandes <joelaf@google.com>
parent 78755a8c
Loading
Loading
Loading
Loading
+36 −40
Original line number Diff line number Diff line
@@ -343,51 +343,47 @@ static void read_mapinfo(FILE *fp, stats_t* stats, bool* foundSwapPss)
                }
                is_swappable = true;
            } else if (strncmp(name, "/dev/", 5) == 0) {
                whichHeap = HEAP_UNKNOWN_DEV;
                if (strncmp(name, "/dev/kgsl-3d0", 13) == 0) {
                    whichHeap = HEAP_GL_DEV;
                } else if (strncmp(name, "/dev/ashmem", 11) == 0) {
                    if (strncmp(name, "/dev/ashmem/dalvik-", 19) == 0) {
                } else if (strncmp(name, "/dev/ashmem/CursorWindow", 24) == 0) {
                    whichHeap = HEAP_CURSOR;
                } else if (strncmp(name, "/dev/ashmem", 11)) {
                    whichHeap = HEAP_ASHMEM;
                }
            } else if (strncmp(name, "[anon:", 6) == 0) {
                whichHeap = HEAP_UNKNOWN;
                if (strncmp(name, "[anon:dalvik-", 13) == 0) {
                    whichHeap = HEAP_DALVIK_OTHER;
                        if (strstr(name, "/dev/ashmem/dalvik-LinearAlloc") == name) {
                    if (strstr(name, "[anon:dalvik-LinearAlloc") == name) {
                        subHeap = HEAP_DALVIK_OTHER_LINEARALLOC;
                        } else if ((strstr(name, "/dev/ashmem/dalvik-alloc space") == name) ||
                                   (strstr(name, "/dev/ashmem/dalvik-main space") == name)) {
                    } else if ((strstr(name, "[anon:dalvik-alloc space") == name) ||
                               (strstr(name, "[anon:dalvik-main space") == name)) {
                        // This is the regular Dalvik heap.
                        whichHeap = HEAP_DALVIK;
                        subHeap = HEAP_DALVIK_NORMAL;
                        } else if (strstr(name, "/dev/ashmem/dalvik-large object space") == name ||
                                   strstr(name, "/dev/ashmem/dalvik-free list large object space")
                    } else if (strstr(name, "[anon:dalvik-large object space") == name ||
                               strstr(name, "[anon:dalvik-free list large object space")
                                   == name) {
                        whichHeap = HEAP_DALVIK;
                        subHeap = HEAP_DALVIK_LARGE;
                        } else if (strstr(name, "/dev/ashmem/dalvik-non moving space") == name) {
                    } else if (strstr(name, "[anon:dalvik-non moving space") == name) {
                        whichHeap = HEAP_DALVIK;
                        subHeap = HEAP_DALVIK_NON_MOVING;
                        } else if (strstr(name, "/dev/ashmem/dalvik-zygote space") == name) {
                    } else if (strstr(name, "[anon:dalvik-zygote space") == name) {
                        whichHeap = HEAP_DALVIK;
                        subHeap = HEAP_DALVIK_ZYGOTE;
                        } else if (strstr(name, "/dev/ashmem/dalvik-indirect ref") == name) {
                    } else if (strstr(name, "[anon:dalvik-indirect ref") == name) {
                        subHeap = HEAP_DALVIK_OTHER_INDIRECT_REFERENCE_TABLE;
                        } else if (strstr(name, "/dev/ashmem/dalvik-jit-code-cache") == name ||
                                   strstr(name, "/dev/ashmem/dalvik-data-code-cache") == name) {
                    } else if (strstr(name, "[anon:dalvik-jit-code-cache") == name ||
                               strstr(name, "[anon:dalvik-data-code-cache") == name) {
                        subHeap = HEAP_DALVIK_OTHER_CODE_CACHE;
                        } else if (strstr(name, "/dev/ashmem/dalvik-CompilerMetadata") == name) {
                    } else if (strstr(name, "[anon:dalvik-CompilerMetadata") == name) {
                        subHeap = HEAP_DALVIK_OTHER_COMPILER_METADATA;
                    } else {
                        subHeap = HEAP_DALVIK_OTHER_ACCOUNTING;  // Default to accounting.
                    }
                    } else if (strncmp(name, "/dev/ashmem/CursorWindow", 24) == 0) {
                        whichHeap = HEAP_CURSOR;
                    } else if (strncmp(name, "/dev/ashmem/libc malloc", 23) == 0) {
                        whichHeap = HEAP_NATIVE;
                    } else {
                        whichHeap = HEAP_ASHMEM;
                    }
                } else {
                    whichHeap = HEAP_UNKNOWN_DEV;
                }
            } else if (strncmp(name, "[anon:", 6) == 0) {
                whichHeap = HEAP_UNKNOWN;
            } else if (nameLen > 0) {
                whichHeap = HEAP_UNKNOWN_MAP;
            } else if (start == prevEnd && prevHeap == HEAP_SO) {