From 591e0fdbb3df665e5f7671858a94e6dfe2155d2b Mon Sep 17 00:00:00 2001 From: William Lee Irwin III Date: Thu, 26 Aug 2004 20:36:49 -0700 Subject: [PATCH] [PATCH] /proc/pid/statm accounting fixes Account reserved memory properly as per acahalan's speecified semantics. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- fs/proc/task_mmu.c | 2 +- include/linux/sched.h | 2 +- mm/mmap.c | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index 73693b6d4324c..7998fa56282a5 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -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), diff --git a/include/linux/sched.h b/include/linux/sched.h index dcbde5c93739e..5a36441e2fd76 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -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 */ diff --git a/mm/mmap.c b/mm/mmap.c index cac244415b6c7..ed19f6aa8a01f 100644 --- 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 */ -- 2.53.0