diff options
author | Wu Fengguang <fengguang.wu@intel.com> | 2010-03-10 18:20:43 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-12 18:52:28 -0500 |
commit | 718a38211bf4375c0a1efad3afbc5dbaef5d33f9 (patch) | |
tree | ade6815c619705f0342f98cc8bb39fa3309c81a6 /mm/memory.c | |
parent | 9b3a6549b2602ca30f58715a0071e29f9898cae9 (diff) |
mm: introduce dump_page() and print symbolic flag names
- introduce dump_page() to print the page info for debugging some error
condition.
- convert three mm users: bad_page(), print_bad_pte() and memory offline
failure.
- print an extra field: the symbolic names of page->flags
Example dump_page() output:
[ 157.521694] page:ffffea0000a7cba8 count:2 mapcount:1 mapping:ffff88001c901791 index:0x147
[ 157.525570] page flags: 0x100000000100068(uptodate|lru|active|swapbacked)
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Alex Chiang <achiang@hp.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Mel Gorman <mel@linux.vnet.ibm.com>
Cc: Christoph Lameter <cl@linux-foundation.org>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/memory.c')
-rw-r--r-- | mm/memory.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/mm/memory.c b/mm/memory.c index 3d9130bd95d0..5b7f2002e54b 100644 --- a/mm/memory.c +++ b/mm/memory.c | |||
@@ -509,12 +509,8 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr, | |||
509 | "BUG: Bad page map in process %s pte:%08llx pmd:%08llx\n", | 509 | "BUG: Bad page map in process %s pte:%08llx pmd:%08llx\n", |
510 | current->comm, | 510 | current->comm, |
511 | (long long)pte_val(pte), (long long)pmd_val(*pmd)); | 511 | (long long)pte_val(pte), (long long)pmd_val(*pmd)); |
512 | if (page) { | 512 | if (page) |
513 | printk(KERN_ALERT | 513 | dump_page(page); |
514 | "page:%p flags:%p count:%d mapcount:%d mapping:%p index:%lx\n", | ||
515 | page, (void *)page->flags, page_count(page), | ||
516 | page_mapcount(page), page->mapping, page->index); | ||
517 | } | ||
518 | printk(KERN_ALERT | 514 | printk(KERN_ALERT |
519 | "addr:%p vm_flags:%08lx anon_vma:%p mapping:%p index:%lx\n", | 515 | "addr:%p vm_flags:%08lx anon_vma:%p mapping:%p index:%lx\n", |
520 | (void *)addr, vma->vm_flags, vma->anon_vma, mapping, index); | 516 | (void *)addr, vma->vm_flags, vma->anon_vma, mapping, index); |