summaryrefslogtreecommitdiff
path: root/mm/internal.h
diff options
context:
space:
mode:
authorMel Gorman <mel@csn.ul.ie>2008-07-23 21:26:51 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2008-07-24 10:47:13 -0700
commit708614e6180f398cd307ea0048d48ba6fa274610 (patch)
tree8fedf22cf9a2f404e2aef10c5b3858b99880c4c2 /mm/internal.h
parent6b74ab97bc12ce74acec900f1d89a4aee2e4d70d (diff)
downloadlinux-3.10-708614e6180f398cd307ea0048d48ba6fa274610.tar.gz
linux-3.10-708614e6180f398cd307ea0048d48ba6fa274610.tar.bz2
linux-3.10-708614e6180f398cd307ea0048d48ba6fa274610.zip
mm: verify the page links and memory model
Print out information on how the page flags are being used if mminit_loglevel is MMINIT_VERIFY or higher and unconditionally performs sanity checks on the flags regardless of loglevel. When the page flags are updated with section, node and zone information, a check are made to ensure the values can be retrieved correctly. Finally we confirm that pfn_to_page and page_to_pfn are the correct inverse functions. [akpm@linux-foundation.org: fix printk warnings] Signed-off-by: Mel Gorman <mel@csn.ul.ie> Cc: Christoph Lameter <cl@linux-foundation.org> Cc: Andy Whitcroft <apw@shadowen.org> Cc: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/internal.h')
-rw-r--r--mm/internal.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/mm/internal.h b/mm/internal.h
index a7ee0525329..7a4a2885dc8 100644
--- a/mm/internal.h
+++ b/mm/internal.h
@@ -78,6 +78,10 @@ do { \
} \
} while (0)
+extern void mminit_verify_pageflags_layout(void);
+extern void mminit_verify_page_links(struct page *page,
+ enum zone_type zone, unsigned long nid, unsigned long pfn);
+
#else
static inline void mminit_dprintk(enum mminit_level level,
@@ -85,5 +89,13 @@ static inline void mminit_dprintk(enum mminit_level level,
{
}
+static inline void mminit_verify_pageflags_layout(void)
+{
+}
+
+static inline void mminit_verify_page_links(struct page *page,
+ enum zone_type zone, unsigned long nid, unsigned long pfn)
+{
+}
#endif /* CONFIG_DEBUG_MEMORY_INIT */
#endif