Messages in this thread Patch in this message | | | Subject | [PATCH 1/3] mm: add rss counters consistency check | From | Konstantin Khlebnikov <> | Date | Fri, 06 Jan 2012 21:38:27 +0400 |
| |
This patch warn about non-zero rss counters at final mmdrop.
Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org> --- kernel/fork.c | 21 ++++++++++++++++++--- 1 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/kernel/fork.c b/kernel/fork.c index da4a6a1..67a79dd 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -507,6 +507,23 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p) return NULL; } +static void check_mm(struct mm_struct *mm) +{ + int i; + + for (i = 0; i < NR_MM_COUNTERS; i++) { + long x = atomic_long_read(&mm->rss_stat.count[i]); + + if (unlikely(x)) + printk(KERN_ALERT "BUG: Bad rss-counter state " + "mm:%p idx:%d val:%ld\n", mm, i, x); + } + +#ifdef CONFIG_TRANSPARENT_HUGEPAGE + VM_BUG_ON(mm->pmd_huge_pte); +#endif +} + /* * Allocate and initialize an mm_struct. */ @@ -534,9 +551,7 @@ void __mmdrop(struct mm_struct *mm) mm_free_pgd(mm); destroy_context(mm); mmu_notifier_mm_destroy(mm); -#ifdef CONFIG_TRANSPARENT_HUGEPAGE - VM_BUG_ON(mm->pmd_huge_pte); -#endif + check_mm(mm); free_mm(mm); } EXPORT_SYMBOL_GPL(__mmdrop);
| |