lkml.org 
[lkml]   [2008]   [Mar]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH] smaps: account swap entries
    From
    Date
    Subject: smaps: account swap entries

    Show the amount of swap for each vma. This can be used to see where all the
    swap goes.

    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    ---
    fs/proc/task_mmu.c | 13 +++++++++++--
    1 file changed, 11 insertions(+), 2 deletions(-)

    Index: linux-2.6/fs/proc/task_mmu.c
    ===================================================================
    --- linux-2.6.orig/fs/proc/task_mmu.c
    +++ linux-2.6/fs/proc/task_mmu.c
    @@ -313,6 +313,7 @@ struct mem_size_stats
    unsigned long private_clean;
    unsigned long private_dirty;
    unsigned long referenced;
    + unsigned long swap;
    u64 pss;
    };

    @@ -329,6 +330,12 @@ static int smaps_pte_range(pmd_t *pmd, u
    pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
    for (; addr != end; pte++, addr += PAGE_SIZE) {
    ptent = *pte;
    +
    + if (is_swap_pte(ptent)) {
    + mss->swap += PAGE_SIZE;
    + continue;
    + }
    +
    if (!pte_present(ptent))
    continue;

    @@ -387,7 +394,8 @@ static int show_smap(struct seq_file *m,
    "Shared_Dirty: %8lu kB\n"
    "Private_Clean: %8lu kB\n"
    "Private_Dirty: %8lu kB\n"
    - "Referenced: %8lu kB\n",
    + "Referenced: %8lu kB\n"
    + "Swap: %8lu kB\n",
    (vma->vm_end - vma->vm_start) >> 10,
    mss.resident >> 10,
    (unsigned long)(mss.pss >> (10 + PSS_SHIFT)),
    @@ -395,7 +403,8 @@ static int show_smap(struct seq_file *m,
    mss.shared_dirty >> 10,
    mss.private_clean >> 10,
    mss.private_dirty >> 10,
    - mss.referenced >> 10);
    + mss.referenced >> 10,
    + mss.swap >> 10);

    return ret;
    }



    \
     
     \ /
      Last update: 2008-03-26 16:31    [W:0.029 / U:6.580 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site