lkml.org 
[lkml]   [2012]   [Jul]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] mm: change nr_ptes BUG_ON to WARN_ON
From time to time an isolated BUG_ON(mm->nr_ptes) gets reported,
indicating that not all the page tables allocated could be found
and freed when exit_mmap() tore down the user address space.

There's usually nothing we can say about it, beyond that it's
probably a sign of some bad memory or memory corruption; though
it might still indicate a bug in vma or page table management
(and did recently reveal a race in THP, fixed a few months ago).

But one overdue change we can make is from BUG_ON to WARN_ON.

It's fairly likely that the system will crash shortly afterwards
in some other way (for example, the BUG_ON(page_mapped(page)) in
__delete_from_page_cache(), once an inode mapped into the lost
page tables gets evicted); but might tell us more before that.

Change the BUG_ON(page_mapped) to WARN_ON too? Later perhaps:
I'm less eager, since that one has several times led to fixes.

Signed-off-by: Hugh Dickins <hughd@google.com>
---
mm/mmap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- v3.5/mm/mmap.c 2012-07-21 13:58:29.000000000 -0700
+++ linux/mm/mmap.c 2012-07-30 19:38:41.977203670 -0700
@@ -2310,7 +2310,7 @@ void exit_mmap(struct mm_struct *mm)
}
vm_unacct_memory(nr_accounted);

- BUG_ON(mm->nr_ptes > (FIRST_USER_ADDRESS+PMD_SIZE-1)>>PMD_SHIFT);
+ WARN_ON(mm->nr_ptes > (FIRST_USER_ADDRESS+PMD_SIZE-1)>>PMD_SHIFT);
}

/* Insert vm structure into process list sorted by address

\
 
 \ /
  Last update: 2012-07-31 06:01    [from the cache]
©2003-2011 Jasper Spaans