From: Frank van Maarseveen <frankvm@frankvm.com>
To: linux-kernel@vger.kernel.org
Subject: [PATCH 2.6.14-rc2] fix incorrect mm->hiwater_vm and mm->hiwater_rss
Date: Wed, 21 Sep 2005 14:19:15 +0200 [thread overview]
Message-ID: <20050921121915.GA14645@janus> (raw)
This fixes a post 2.6.11 regression in maintaining the mm->hiwater_* counters.
Signed-off-by: Frank van Maarseveen <frankvm@frankvm.com>
diff -ru a/arch/ppc64/kernel/vdso.c b/arch/ppc64/kernel/vdso.c
--- a/arch/ppc64/kernel/vdso.c 2005-09-21 11:05:11.000000000 +0200
+++ b/arch/ppc64/kernel/vdso.c 2005-09-21 11:17:06.053426000 +0200
@@ -272,6 +272,7 @@
}
mm->total_vm += (vma->vm_end - vma->vm_start) >> PAGE_SHIFT;
up_write(&mm->mmap_sem);
+ update_mem_hiwater(mm);
return 0;
}
diff -ru a/arch/x86_64/ia32/syscall32.c b/arch/x86_64/ia32/syscall32.c
--- a/arch/x86_64/ia32/syscall32.c 2005-09-21 11:05:24.000000000 +0200
+++ b/arch/x86_64/ia32/syscall32.c 2005-09-21 11:17:06.130574000 +0200
@@ -72,6 +72,7 @@
}
mm->total_vm += npages;
up_write(&mm->mmap_sem);
+ update_mem_hiwater(mm);
return 0;
}
diff -ru a/fs/exec.c b/fs/exec.c
--- a/fs/exec.c 2005-09-21 11:06:43.000000000 +0200
+++ b/fs/exec.c 2005-09-21 11:17:06.218465000 +0200
@@ -1207,7 +1207,7 @@
/* execve success */
security_bprm_free(bprm);
acct_update_integrals(current);
- update_mem_hiwater(current);
+ update_mem_hiwater(current->mm);
kfree(bprm);
return retval;
}
diff -ru a/include/linux/mm.h b/include/linux/mm.h
--- a/include/linux/mm.h 2005-09-14 14:27:39.000000000 +0200
+++ b/include/linux/mm.h 2005-09-21 11:17:06.327839000 +0200
@@ -949,7 +949,7 @@
}
/* update per process rss and vm hiwater data */
-extern void update_mem_hiwater(struct task_struct *tsk);
+extern void update_mem_hiwater(struct mm_struct *mm);
#ifndef CONFIG_DEBUG_PAGEALLOC
static inline void
diff -ru a/kernel/exit.c b/kernel/exit.c
--- a/kernel/exit.c 2005-09-21 11:07:38.000000000 +0200
+++ b/kernel/exit.c 2005-09-21 11:17:06.395222000 +0200
@@ -839,7 +839,7 @@
preempt_count());
acct_update_integrals(tsk);
- update_mem_hiwater(tsk);
+ update_mem_hiwater(tsk->mm);
group_dead = atomic_dec_and_test(&tsk->signal->live);
if (group_dead) {
del_timer_sync(&tsk->signal->real_timer);
diff -ru a/kernel/sched.c b/kernel/sched.c
--- a/kernel/sched.c 2005-09-21 11:07:39.000000000 +0200
+++ b/kernel/sched.c 2005-09-21 11:17:06.462605000 +0200
@@ -2512,7 +2512,7 @@
/* Account for system time used */
acct_update_integrals(p);
/* Update rss highwater mark */
- update_mem_hiwater(p);
+ update_mem_hiwater(p->mm);
}
/*
diff -ru a/mm/memory.c b/mm/memory.c
--- a/mm/memory.c 2005-09-21 11:07:40.000000000 +0200
+++ b/mm/memory.c 2005-09-21 11:17:06.602253000 +0200
@@ -2210,15 +2210,16 @@
* update_mem_hiwater
* - update per process rss and vm high water data
*/
-void update_mem_hiwater(struct task_struct *tsk)
+void update_mem_hiwater(struct mm_struct *mm)
{
- if (tsk->mm) {
- unsigned long rss = get_mm_counter(tsk->mm, rss);
+ unsigned long rss;
- if (tsk->mm->hiwater_rss < rss)
- tsk->mm->hiwater_rss = rss;
- if (tsk->mm->hiwater_vm < tsk->mm->total_vm)
- tsk->mm->hiwater_vm = tsk->mm->total_vm;
+ if (likely(mm)) {
+ rss = get_mm_counter(mm, rss);
+ if (mm->hiwater_rss < rss)
+ mm->hiwater_rss = rss;
+ if (mm->hiwater_vm < mm->total_vm)
+ mm->hiwater_vm = mm->total_vm;
}
}
diff -ru a/mm/mmap.c b/mm/mmap.c
--- a/mm/mmap.c 2005-09-21 11:07:40.000000000 +0200
+++ b/mm/mmap.c 2005-09-21 11:17:06.755572000 +0200
@@ -854,6 +854,7 @@
mm->stack_vm += pages;
if (flags & (VM_RESERVED|VM_IO))
mm->reserved_vm += pages;
+ update_mem_hiwater(mm);
}
#endif /* CONFIG_PROC_FS */
@@ -1915,6 +1916,7 @@
vma_link(mm, vma, prev, rb_link, rb_parent);
out:
mm->total_vm += len >> PAGE_SHIFT;
+ update_mem_hiwater(mm);
if (flags & VM_LOCKED) {
mm->locked_vm += len >> PAGE_SHIFT;
make_pages_present(addr, addr + len);
diff -ru a/mm/nommu.c b/mm/nommu.c
--- a/mm/nommu.c 2005-09-21 11:07:40.000000000 +0200
+++ b/mm/nommu.c 2005-09-21 12:26:02.166764000 +0200
@@ -839,6 +839,7 @@
show_process_blocks();
#endif
+ update_mem_hiwater(mm);
return (unsigned long) result;
error:
@@ -1079,16 +1080,16 @@
{
}
-void update_mem_hiwater(struct task_struct *tsk)
+void update_mem_hiwater(struct mm_struct *mm)
{
unsigned long rss;
- if (likely(tsk->mm)) {
- rss = get_mm_counter(tsk->mm, rss);
- if (tsk->mm->hiwater_rss < rss)
- tsk->mm->hiwater_rss = rss;
- if (tsk->mm->hiwater_vm < tsk->mm->total_vm)
- tsk->mm->hiwater_vm = tsk->mm->total_vm;
+ if (likely(mm)) {
+ rss = get_mm_counter(mm, rss);
+ if (mm->hiwater_rss < rss)
+ mm->hiwater_rss = rss;
+ if (mm->hiwater_vm < mm->total_vm)
+ mm->hiwater_vm = mm->total_vm;
}
}
--
Frank
next reply other threads:[~2005-09-21 12:19 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-21 12:19 Frank van Maarseveen [this message]
2005-09-21 14:38 ` [PATCH 2.6.14-rc2] fix incorrect mm->hiwater_vm and mm->hiwater_rss Hugh Dickins
2005-09-21 14:58 ` Frank van Maarseveen
2005-09-21 15:35 ` Hugh Dickins
2005-09-21 18:42 ` Frank van Maarseveen
2005-09-21 18:57 ` Hugh Dickins
2005-09-21 15:26 ` Christoph Lameter
2005-09-21 15:50 ` Frank van Maarseveen
2005-09-21 16:57 ` Jay Lan
2005-09-21 17:05 ` Christoph Lameter
2005-09-21 17:39 ` Jay Lan
2005-09-21 18:06 ` Frank van Maarseveen
2005-09-21 18:38 ` Jay Lan
2005-09-21 17:12 ` Hugh Dickins
2005-09-21 17:31 ` Jay Lan
2005-09-21 17:45 ` Christoph Lameter
2005-09-21 17:46 ` Hugh Dickins
2005-09-21 18:05 ` Jay Lan
2005-09-21 18:26 ` Frank van Maarseveen
2005-09-21 19:19 ` Hugh Dickins
2005-09-21 19:28 ` Frank van Maarseveen
2005-09-21 19:38 ` Jay Lan
2005-09-21 19:47 ` Hugh Dickins
2005-09-21 19:48 ` Frank van Maarseveen
2005-09-21 19:52 ` Hugh Dickins
2005-09-21 19:48 ` Christoph Lameter
2005-09-21 20:06 ` Hugh Dickins
2005-09-21 20:13 ` Christoph Lameter
2005-09-27 20:43 ` Jay Lan
2005-09-27 21:47 ` Jay Lan
2005-09-27 21:50 ` Christoph Lameter
2005-09-27 22:43 ` Jay Lan
2005-09-28 13:18 ` Hugh Dickins
2005-09-28 17:31 ` Jay Lan
2005-10-03 19:53 ` Hugh Dickins
2005-10-04 8:59 ` Frank van Maarseveen
2005-10-04 21:48 ` Jay Lan
2005-10-07 2:09 ` Jay Lan
2005-10-07 3:03 ` Hugh Dickins
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050921121915.GA14645@janus \
--to=frankvm@frankvm.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.