diff options
-rw-r--r-- | arch/ia64/kernel/perfmon.c | 1 | ||||
-rw-r--r-- | include/linux/mm.h | 1 | ||||
-rw-r--r-- | kernel/fork.c | 4 | ||||
-rw-r--r-- | mm/mmap.c | 5 | ||||
-rw-r--r-- | mm/mremap.c | 2 |
5 files changed, 4 insertions, 9 deletions
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c index d7f558c1e711..3fa4bc536953 100644 --- a/arch/ia64/kernel/perfmon.c +++ b/arch/ia64/kernel/perfmon.c | |||
@@ -2353,7 +2353,6 @@ pfm_smpl_buffer_alloc(struct task_struct *task, struct file *filp, pfm_context_t | |||
2353 | */ | 2353 | */ |
2354 | insert_vm_struct(mm, vma); | 2354 | insert_vm_struct(mm, vma); |
2355 | 2355 | ||
2356 | mm->total_vm += size >> PAGE_SHIFT; | ||
2357 | vm_stat_account(vma->vm_mm, vma->vm_flags, vma->vm_file, | 2356 | vm_stat_account(vma->vm_mm, vma->vm_flags, vma->vm_file, |
2358 | vma_pages(vma)); | 2357 | vma_pages(vma)); |
2359 | up_write(&task->mm->mmap_sem); | 2358 | up_write(&task->mm->mmap_sem); |
diff --git a/include/linux/mm.h b/include/linux/mm.h index f9f279cf5b1b..3955bedeeed1 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -1528,6 +1528,7 @@ void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long); | |||
1528 | static inline void vm_stat_account(struct mm_struct *mm, | 1528 | static inline void vm_stat_account(struct mm_struct *mm, |
1529 | unsigned long flags, struct file *file, long pages) | 1529 | unsigned long flags, struct file *file, long pages) |
1530 | { | 1530 | { |
1531 | mm->total_vm += pages; | ||
1531 | } | 1532 | } |
1532 | #endif /* CONFIG_PROC_FS */ | 1533 | #endif /* CONFIG_PROC_FS */ |
1533 | 1534 | ||
diff --git a/kernel/fork.c b/kernel/fork.c index 8efac1fe56bc..aaa8813c45d1 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -381,10 +381,8 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) | |||
381 | struct file *file; | 381 | struct file *file; |
382 | 382 | ||
383 | if (mpnt->vm_flags & VM_DONTCOPY) { | 383 | if (mpnt->vm_flags & VM_DONTCOPY) { |
384 | long pages = vma_pages(mpnt); | ||
385 | mm->total_vm -= pages; | ||
386 | vm_stat_account(mm, mpnt->vm_flags, mpnt->vm_file, | 384 | vm_stat_account(mm, mpnt->vm_flags, mpnt->vm_file, |
387 | -pages); | 385 | -vma_pages(mpnt)); |
388 | continue; | 386 | continue; |
389 | } | 387 | } |
390 | charge = 0; | 388 | charge = 0; |
@@ -943,6 +943,8 @@ void vm_stat_account(struct mm_struct *mm, unsigned long flags, | |||
943 | const unsigned long stack_flags | 943 | const unsigned long stack_flags |
944 | = VM_STACK_FLAGS & (VM_GROWSUP|VM_GROWSDOWN); | 944 | = VM_STACK_FLAGS & (VM_GROWSUP|VM_GROWSDOWN); |
945 | 945 | ||
946 | mm->total_vm += pages; | ||
947 | |||
946 | if (file) { | 948 | if (file) { |
947 | mm->shared_vm += pages; | 949 | mm->shared_vm += pages; |
948 | if ((flags & (VM_EXEC|VM_WRITE)) == VM_EXEC) | 950 | if ((flags & (VM_EXEC|VM_WRITE)) == VM_EXEC) |
@@ -1347,7 +1349,6 @@ munmap_back: | |||
1347 | out: | 1349 | out: |
1348 | perf_event_mmap(vma); | 1350 | perf_event_mmap(vma); |
1349 | 1351 | ||
1350 | mm->total_vm += len >> PAGE_SHIFT; | ||
1351 | vm_stat_account(mm, vm_flags, file, len >> PAGE_SHIFT); | 1352 | vm_stat_account(mm, vm_flags, file, len >> PAGE_SHIFT); |
1352 | if (vm_flags & VM_LOCKED) { | 1353 | if (vm_flags & VM_LOCKED) { |
1353 | if (!mlock_vma_pages_range(vma, addr, addr + len)) | 1354 | if (!mlock_vma_pages_range(vma, addr, addr + len)) |
@@ -1707,7 +1708,6 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns | |||
1707 | return -ENOMEM; | 1708 | return -ENOMEM; |
1708 | 1709 | ||
1709 | /* Ok, everything looks good - let it rip */ | 1710 | /* Ok, everything looks good - let it rip */ |
1710 | mm->total_vm += grow; | ||
1711 | if (vma->vm_flags & VM_LOCKED) | 1711 | if (vma->vm_flags & VM_LOCKED) |
1712 | mm->locked_vm += grow; | 1712 | mm->locked_vm += grow; |
1713 | vm_stat_account(mm, vma->vm_flags, vma->vm_file, grow); | 1713 | vm_stat_account(mm, vma->vm_flags, vma->vm_file, grow); |
@@ -1889,7 +1889,6 @@ static void remove_vma_list(struct mm_struct *mm, struct vm_area_struct *vma) | |||
1889 | 1889 | ||
1890 | if (vma->vm_flags & VM_ACCOUNT) | 1890 | if (vma->vm_flags & VM_ACCOUNT) |
1891 | nr_accounted += nrpages; | 1891 | nr_accounted += nrpages; |
1892 | mm->total_vm -= nrpages; | ||
1893 | vm_stat_account(mm, vma->vm_flags, vma->vm_file, -nrpages); | 1892 | vm_stat_account(mm, vma->vm_flags, vma->vm_file, -nrpages); |
1894 | vma = remove_vma(vma); | 1893 | vma = remove_vma(vma); |
1895 | } while (vma); | 1894 | } while (vma); |
diff --git a/mm/mremap.c b/mm/mremap.c index 21fed202ddad..cc06d0e48d05 100644 --- a/mm/mremap.c +++ b/mm/mremap.c | |||
@@ -260,7 +260,6 @@ static unsigned long move_vma(struct vm_area_struct *vma, | |||
260 | * If this were a serious issue, we'd add a flag to do_munmap(). | 260 | * If this were a serious issue, we'd add a flag to do_munmap(). |
261 | */ | 261 | */ |
262 | hiwater_vm = mm->hiwater_vm; | 262 | hiwater_vm = mm->hiwater_vm; |
263 | mm->total_vm += new_len >> PAGE_SHIFT; | ||
264 | vm_stat_account(mm, vma->vm_flags, vma->vm_file, new_len>>PAGE_SHIFT); | 263 | vm_stat_account(mm, vma->vm_flags, vma->vm_file, new_len>>PAGE_SHIFT); |
265 | 264 | ||
266 | if (do_munmap(mm, old_addr, old_len) < 0) { | 265 | if (do_munmap(mm, old_addr, old_len) < 0) { |
@@ -497,7 +496,6 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len, | |||
497 | goto out; | 496 | goto out; |
498 | } | 497 | } |
499 | 498 | ||
500 | mm->total_vm += pages; | ||
501 | vm_stat_account(mm, vma->vm_flags, vma->vm_file, pages); | 499 | vm_stat_account(mm, vma->vm_flags, vma->vm_file, pages); |
502 | if (vma->vm_flags & VM_LOCKED) { | 500 | if (vma->vm_flags & VM_LOCKED) { |
503 | mm->locked_vm += pages; | 501 | mm->locked_vm += pages; |