On Thu, 16 Sep 2010, Nikanth Karthikesan wrote: > Export the number of anonymous pages in a mapping via smaps. > > Even the private pages in a mapping backed by a file, would be marked as > anonymous, when they are modified. Export this information to user-space via > smaps. > > Signed-off-by: Nikanth Karthikesan <knikanth@xxxxxxx> Acked-by: Hugh Dickins <hughd@xxxxxxxxxx> but I'd prefer if we added a little more justification, such as: Exporting this count will help gdb to make a better decision on which areas need to be dumped in its coredump; and should be useful to others studying the memory usage of a process. > > --- > > diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c > index 439fc1f..3c18fc8 100644 > --- a/fs/proc/task_mmu.c > +++ b/fs/proc/task_mmu.c > @@ -326,6 +326,7 @@ struct mem_size_stats { > unsigned long private_clean; > unsigned long private_dirty; > unsigned long referenced; > + unsigned long anonymous; > unsigned long swap; > u64 pss; > }; > @@ -356,6 +357,9 @@ static int smaps_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, > if (!page) > continue; > > + if (PageAnon(page)) > + mss->anonymous += PAGE_SIZE; > + > mss->resident += PAGE_SIZE; > /* Accumulate the size in pages that have been accessed. */ > if (pte_young(ptent) || PageReferenced(page)) > @@ -409,6 +413,7 @@ static int show_smap(struct seq_file *m, void *v) > "Private_Clean: %8lu kB\n" > "Private_Dirty: %8lu kB\n" > "Referenced: %8lu kB\n" > + "Anonymous: %8lu kB\n" > "Swap: %8lu kB\n" > "KernelPageSize: %8lu kB\n" > "MMUPageSize: %8lu kB\n", > @@ -420,6 +425,7 @@ static int show_smap(struct seq_file *m, void *v) > mss.private_clean >> 10, > mss.private_dirty >> 10, > mss.referenced >> 10, > + mss.anonymous >> 10, > mss.swap >> 10, > vma_kernel_pagesize(vma) >> 10, > vma_mmu_pagesize(vma) >> 10); > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majordomo@xxxxxxxxxx For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a> > > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>