|
@@ -23,9 +23,13 @@
|
|
|
|
|
|
void task_mem(struct seq_file *m, struct mm_struct *mm)
|
|
|
{
|
|
|
- unsigned long data, text, lib, swap, ptes, pmds;
|
|
|
+ unsigned long data, text, lib, swap, ptes, pmds, anon, file, shmem;
|
|
|
unsigned long hiwater_vm, total_vm, hiwater_rss, total_rss;
|
|
|
|
|
|
+ anon = get_mm_counter(mm, MM_ANONPAGES);
|
|
|
+ file = get_mm_counter(mm, MM_FILEPAGES);
|
|
|
+ shmem = get_mm_counter(mm, MM_SHMEMPAGES);
|
|
|
+
|
|
|
/*
|
|
|
* Note: to minimize their overhead, mm maintains hiwater_vm and
|
|
|
* hiwater_rss only when about to *lower* total_vm or rss. Any
|
|
@@ -36,7 +40,7 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
|
|
|
hiwater_vm = total_vm = mm->total_vm;
|
|
|
if (hiwater_vm < mm->hiwater_vm)
|
|
|
hiwater_vm = mm->hiwater_vm;
|
|
|
- hiwater_rss = total_rss = get_mm_rss(mm);
|
|
|
+ hiwater_rss = total_rss = anon + file + shmem;
|
|
|
if (hiwater_rss < mm->hiwater_rss)
|
|
|
hiwater_rss = mm->hiwater_rss;
|
|
|
|
|
@@ -53,6 +57,9 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
|
|
|
"VmPin:\t%8lu kB\n"
|
|
|
"VmHWM:\t%8lu kB\n"
|
|
|
"VmRSS:\t%8lu kB\n"
|
|
|
+ "RssAnon:\t%8lu kB\n"
|
|
|
+ "RssFile:\t%8lu kB\n"
|
|
|
+ "RssShmem:\t%8lu kB\n"
|
|
|
"VmData:\t%8lu kB\n"
|
|
|
"VmStk:\t%8lu kB\n"
|
|
|
"VmExe:\t%8lu kB\n"
|
|
@@ -66,6 +73,9 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
|
|
|
mm->pinned_vm << (PAGE_SHIFT-10),
|
|
|
hiwater_rss << (PAGE_SHIFT-10),
|
|
|
total_rss << (PAGE_SHIFT-10),
|
|
|
+ anon << (PAGE_SHIFT-10),
|
|
|
+ file << (PAGE_SHIFT-10),
|
|
|
+ shmem << (PAGE_SHIFT-10),
|
|
|
data << (PAGE_SHIFT-10),
|
|
|
mm->stack_vm << (PAGE_SHIFT-10), text, lib,
|
|
|
ptes >> 10,
|