]> git.hungrycats.org Git - linux/commitdiff
[PATCH] /proc/pid/statm accounting fixes
authorWilliam Lee Irwin III <wli@holomorphy.com>
Fri, 27 Aug 2004 03:36:49 +0000 (20:36 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Fri, 27 Aug 2004 03:36:49 +0000 (20:36 -0700)
Account reserved memory properly as per acahalan's speecified semantics.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/proc/task_mmu.c
include/linux/sched.h
mm/mmap.c

index 73693b6d4324c4b726188759706b5278c9c4c24e..7998fa56282a51ab79b1d29c2236880a118f10ab 100644 (file)
@@ -19,7 +19,7 @@ char *task_mem(struct mm_struct *mm, char *buffer)
                "VmStk:\t%8lu kB\n"
                "VmExe:\t%8lu kB\n"
                "VmLib:\t%8lu kB\n",
-               mm->total_vm << (PAGE_SHIFT-10),
+               (mm->total_vm - mm->reserved_vm) << (PAGE_SHIFT-10),
                mm->locked_vm << (PAGE_SHIFT-10),
                mm->rss << (PAGE_SHIFT-10),
                data << (PAGE_SHIFT-10),
index dcbde5c93739e45307622e67969f3750f09a128f..5a36441e2fd76ab2a61c33bb7139dc05f7a99dc1 100644 (file)
@@ -225,7 +225,7 @@ struct mm_struct {
        unsigned long start_brk, brk, start_stack;
        unsigned long arg_start, arg_end, env_start, env_end;
        unsigned long rss, total_vm, locked_vm, shared_vm;
-       unsigned long exec_vm, stack_vm, def_flags;
+       unsigned long exec_vm, stack_vm, reserved_vm, def_flags;
 
        unsigned long saved_auxv[40]; /* for /proc/PID/auxv */
 
index cac244415b6c71f336f0dd57f8ebbb050304af1c..ed19f6aa8a01f0baf84f19c989a9c9caa56e2106 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -750,6 +750,8 @@ void __vm_stat_account(struct mm_struct *mm, unsigned long flags,
                mm->stack_vm += pages;
        if (flags & VM_EXEC)
                mm->exec_vm += pages;
+       if (flags & (VM_RESERVED|VM_IO))
+               mm->reserved_vm += pages;
 }
 #endif /* CONFIG_PROC_FS */