lkml.org 
[lkml]   [2005]   [Sep]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH 06/21] mm: vm_stat_account unshackled
The original vm_stat_account has fallen into disuse, with only one user,
and only one user of vm_stat_unaccount. It's easier to keep track if we
convert them all to __vm_stat_account, then free it from its __shackles.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
---

arch/ia64/kernel/perfmon.c | 3 ++-
arch/ia64/mm/fault.c | 2 +-
include/linux/mm.h | 16 ++--------------
kernel/fork.c | 2 +-
mm/mmap.c | 20 ++++++++++----------
mm/mprotect.c | 4 ++--
mm/mremap.c | 4 ++--
7 files changed, 20 insertions(+), 31 deletions(-)

--- mm05/arch/ia64/kernel/perfmon.c 2005-09-21 12:16:14.000000000 +0100
+++ mm06/arch/ia64/kernel/perfmon.c 2005-09-24 19:27:33.000000000 +0100
@@ -2352,7 +2352,8 @@ pfm_smpl_buffer_alloc(struct task_struct
insert_vm_struct(mm, vma);

mm->total_vm += size >> PAGE_SHIFT;
- vm_stat_account(vma);
+ vm_stat_account(vma->vm_mm, vma->vm_flags, vma->vm_file,
+ vma_pages(vma));
up_write(&task->mm->mmap_sem);

/*
--- mm05/arch/ia64/mm/fault.c 2005-09-21 12:16:14.000000000 +0100
+++ mm06/arch/ia64/mm/fault.c 2005-09-24 19:27:33.000000000 +0100
@@ -41,7 +41,7 @@ expand_backing_store (struct vm_area_str
vma->vm_mm->total_vm += grow;
if (vma->vm_flags & VM_LOCKED)
vma->vm_mm->locked_vm += grow;
- __vm_stat_account(vma->vm_mm, vma->vm_flags, vma->vm_file, grow);
+ vm_stat_account(vma->vm_mm, vma->vm_flags, vma->vm_file, grow);
return 0;
}

--- mm05/include/linux/mm.h 2005-09-22 12:32:02.000000000 +0100
+++ mm06/include/linux/mm.h 2005-09-24 19:27:33.000000000 +0100
@@ -936,26 +936,14 @@ int remap_pfn_range(struct vm_area_struc
unsigned long, unsigned long, pgprot_t);

#ifdef CONFIG_PROC_FS
-void __vm_stat_account(struct mm_struct *, unsigned long, struct file *, long);
+void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long);
#else
-static inline void __vm_stat_account(struct mm_struct *mm,
+static inline void vm_stat_account(struct mm_struct *mm,
unsigned long flags, struct file *file, long pages)
{
}
#endif /* CONFIG_PROC_FS */

-static inline void vm_stat_account(struct vm_area_struct *vma)
-{
- __vm_stat_account(vma->vm_mm, vma->vm_flags, vma->vm_file,
- vma_pages(vma));
-}
-
-static inline void vm_stat_unaccount(struct vm_area_struct *vma)
-{
- __vm_stat_account(vma->vm_mm, vma->vm_flags, vma->vm_file,
- -vma_pages(vma));
-}
-
/* update per process rss and vm hiwater data */
extern void update_mem_hiwater(struct task_struct *tsk);

--- mm05/kernel/fork.c 2005-09-22 12:32:03.000000000 +0100
+++ mm06/kernel/fork.c 2005-09-24 19:27:33.000000000 +0100
@@ -212,7 +212,7 @@ static inline int dup_mmap(struct mm_str
if (mpnt->vm_flags & VM_DONTCOPY) {
long pages = vma_pages(mpnt);
mm->total_vm -= pages;
- __vm_stat_account(mm, mpnt->vm_flags, mpnt->vm_file,
+ vm_stat_account(mm, mpnt->vm_flags, mpnt->vm_file,
-pages);
continue;
}
--- mm05/mm/mmap.c 2005-09-22 12:32:03.000000000 +0100
+++ mm06/mm/mmap.c 2005-09-24 19:27:33.000000000 +0100
@@ -828,7 +828,7 @@ none:
}

#ifdef CONFIG_PROC_FS
-void __vm_stat_account(struct mm_struct *mm, unsigned long flags,
+void vm_stat_account(struct mm_struct *mm, unsigned long flags,
struct file *file, long pages)
{
const unsigned long stack_flags
@@ -1106,7 +1106,7 @@ munmap_back:
}
out:
mm->total_vm += len >> PAGE_SHIFT;
- __vm_stat_account(mm, vm_flags, file, len >> PAGE_SHIFT);
+ vm_stat_account(mm, vm_flags, file, len >> PAGE_SHIFT);
if (vm_flags & VM_LOCKED) {
mm->locked_vm += len >> PAGE_SHIFT;
make_pages_present(addr, addr + len);
@@ -1471,7 +1471,7 @@ static int acct_stack_growth(struct vm_a
mm->total_vm += grow;
if (vma->vm_flags & VM_LOCKED)
mm->locked_vm += grow;
- __vm_stat_account(mm, vma->vm_flags, vma->vm_file, grow);
+ vm_stat_account(mm, vma->vm_flags, vma->vm_file, grow);
return 0;
}

@@ -1606,15 +1606,15 @@ find_extend_vma(struct mm_struct * mm, u
* By the time this function is called, the area struct has been
* removed from the process mapping list.
*/
-static void unmap_vma(struct mm_struct *mm, struct vm_area_struct *area)
+static void unmap_vma(struct mm_struct *mm, struct vm_area_struct *vma)
{
- size_t len = area->vm_end - area->vm_start;
+ long nrpages = vma_pages(vma);

- area->vm_mm->total_vm -= len >> PAGE_SHIFT;
- if (area->vm_flags & VM_LOCKED)
- area->vm_mm->locked_vm -= len >> PAGE_SHIFT;
- vm_stat_unaccount(area);
- remove_vm_struct(area);
+ mm->total_vm -= nrpages;
+ if (vma->vm_flags & VM_LOCKED)
+ mm->locked_vm -= nrpages;
+ vm_stat_account(mm, vma->vm_flags, vma->vm_file, -nrpages);
+ remove_vm_struct(vma);
}

/*
--- mm05/mm/mprotect.c 2005-09-22 12:32:03.000000000 +0100
+++ mm06/mm/mprotect.c 2005-09-24 19:27:33.000000000 +0100
@@ -168,8 +168,8 @@ success:
vma->vm_flags = newflags;
vma->vm_page_prot = newprot;
change_protection(vma, start, end, newprot);
- __vm_stat_account(mm, oldflags, vma->vm_file, -nrpages);
- __vm_stat_account(mm, newflags, vma->vm_file, nrpages);
+ vm_stat_account(mm, oldflags, vma->vm_file, -nrpages);
+ vm_stat_account(mm, newflags, vma->vm_file, nrpages);
return 0;

fail:
--- mm05/mm/mremap.c 2005-09-22 12:32:03.000000000 +0100
+++ mm06/mm/mremap.c 2005-09-24 19:27:33.000000000 +0100
@@ -233,7 +233,7 @@ static unsigned long move_vma(struct vm_
* since do_munmap() will decrement it by old_len == new_len
*/
mm->total_vm += new_len >> PAGE_SHIFT;
- __vm_stat_account(mm, vma->vm_flags, vma->vm_file, new_len>>PAGE_SHIFT);
+ vm_stat_account(mm, vma->vm_flags, vma->vm_file, new_len>>PAGE_SHIFT);

if (do_munmap(mm, old_addr, old_len) < 0) {
/* OOM: unable to split vma, just get accounts right */
@@ -384,7 +384,7 @@ unsigned long do_mremap(unsigned long ad
addr + new_len, vma->vm_pgoff, NULL);

current->mm->total_vm += pages;
- __vm_stat_account(vma->vm_mm, vma->vm_flags,
+ vm_stat_account(vma->vm_mm, vma->vm_flags,
vma->vm_file, pages);
if (vma->vm_flags & VM_LOCKED) {
current->mm->locked_vm += pages;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-09-25 17:55    [W:0.124 / U:0.488 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site