>From 145247b8e776b32c9930018ab65bb6c5401e28ef Mon Sep 17 00:00:00 2001 From: Maxim Levitsky <[EMAIL PROTECTED]> Date: Fri, 5 Oct 2007 08:04:03 +0200 Subject: [PATCH] Add more statistics to /proc/$pid/smaps
Add amount of swapped memory and amount of anonymous memory to /proc/$pid/smaps Signed-off-by: Maxim Levitsky <[EMAIL PROTECTED]> --- fs/proc/task_mmu.c | 18 ++++++++++++++++-- 1 files changed, 16 insertions(+), 2 deletions(-) diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index c24d81a..1c16a7e 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -122,6 +122,9 @@ struct mem_size_stats unsigned long private_clean; unsigned long private_dirty; unsigned long referenced; + unsigned long swapped; + unsigned long anon; + }; struct pmd_walker { @@ -195,6 +198,8 @@ static int show_map_internal(struct seq_file *m, void *v, struct mem_size_stats seq_printf(m, "Size: %8lu kB\n" "Rss: %8lu kB\n" + "Swapped: %8lu kB\n" + "Anonymous: %8lu kB\n" "Shared_Clean: %8lu kB\n" "Shared_Dirty: %8lu kB\n" "Private_Clean: %8lu kB\n" @@ -202,6 +207,8 @@ static int show_map_internal(struct seq_file *m, void *v, struct mem_size_stats "Referenced: %8lu kB\n", (vma->vm_end - vma->vm_start) >> 10, mss->resident >> 10, + mss->swapped >> 10, + mss->anon >> 10, mss->shared_clean >> 10, mss->shared_dirty >> 10, mss->private_clean >> 10, @@ -230,15 +237,22 @@ static void smaps_pte_range(struct vm_area_struct *vma, pmd_t *pmd, pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); for (; addr != end; pte++, addr += PAGE_SIZE) { ptent = *pte; - if (!pte_present(ptent)) - continue; + if (!pte_present(ptent)) { + if(pte_none(ptent) || pte_file(ptent)) + continue; + mss->swapped += PAGE_SIZE; + continue; + } mss->resident += PAGE_SIZE; page = vm_normal_page(vma, addr, ptent); if (!page) continue; + if(PageAnon(page)) + mss->anon += PAGE_SIZE; + /* Accumulate the size in pages that have been accessed. */ if (pte_young(ptent) || PageReferenced(page)) mss->referenced += PAGE_SIZE; -- 1.5.2.5 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/