ANDROID: 16K: Add VMA padding size to smaps output

Instead of printing ?? for unexpected vm_flags due to
vm padding flag bits; print the size of the padding in kB if any.

Example output:

7ff6306c2000-7ff6306c3000 r--p 00000000 fe:09 1912                       /system/lib64/bootstrap/libdl.so
Size:                  4 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Rss:                   4 kB
Pss:                   0 kB
Pss_Dirty:             0 kB
Shared_Clean:          4 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:            4 kB
Anonymous:             0 kB
KSM:                   0 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
FilePmdMapped:         0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:           0
VmFlags: rd mr mw me pad=12kB    // <========
7ff6306c3000-7ff6306c6000 ---p 00000000 00:00 0                          [page size compat]
Size:                 12 kB      // <========
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Rss:                   0 kB
Pss:                   0 kB
Pss_Dirty:             0 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:            0 kB
Anonymous:             0 kB
KSM:                   0 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
FilePmdMapped:         0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:           0
VmFlags: mr mw me

Bug: 383389169
Bug: 409239984
Bug: 404710273
Bug: 394468578
Change-Id: I4e996f207c9eb980d1a108418c506542722e7265
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
This commit is contained in:
Kalesh Singh
2025-04-09 23:37:28 -07:00
committed by Carlos Llamas
parent 307be4b887
commit 9027c8ec43

View File

@@ -1007,15 +1007,21 @@ static void show_smap_vma_flags(struct seq_file *m, struct vm_area_struct *vma)
[ilog2(VM_SEALED)] = "sl",
#endif
};
unsigned long pad_pages = vma_pad_pages(vma);
size_t i;
seq_puts(m, "VmFlags: ");
for (i = 0; i < BITS_PER_LONG; i++) {
if (!mnemonics[i][0])
continue;
if ((1UL << i) & VM_PAD_MASK)
continue;
if (vma->vm_flags & (1UL << i))
seq_printf(m, "%s ", mnemonics[i]);
}
if (pad_pages)
seq_printf(m, "pad=%lukB", pad_pages << (PAGE_SHIFT - 10));
seq_putc(m, '\n');
}