diff options
author | Mel Gorman <mel@csn.ul.ie> | 2008-07-24 00:26:49 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-24 13:47:13 -0400 |
commit | 6b74ab97bc12ce74acec900f1d89a4aee2e4d70d (patch) | |
tree | d9d7b522a4a8f5f605d2e0f7f7a1bcb9d5049a82 /lib | |
parent | 9483a578df27fe7603605d565eefe039c1ba5845 (diff) |
mm: add a basic debugging framework for memory initialisation
Boot initialisation is very complex, with significant numbers of
architecture-specific routines, hooks and code ordering. While significant
amounts of the initialisation is architecture-independent, it trusts the data
received from the architecture layer. This is a mistake, and has resulted in
a number of difficult-to-diagnose bugs.
This patchset adds some validation and tracing to memory initialisation. It
also introduces a few basic defensive measures. The validation code can be
explicitly disabled for embedded systems.
This patch:
Add additional debugging and verification code for memory initialisation.
Once enabled, the verification checks are always run and when required
additional debugging information may be outputted via a mminit_loglevel=
command-line parameter.
The verification code is placed in a new file mm/mm_init.c. Ideally other mm
initialisation code will be moved here over time.
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 'lib')
-rw-r--r-- | lib/Kconfig.debug | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 882c51048993..e1d4764435ed 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug | |||
@@ -505,6 +505,18 @@ config DEBUG_WRITECOUNT | |||
505 | 505 | ||
506 | If unsure, say N. | 506 | If unsure, say N. |
507 | 507 | ||
508 | config DEBUG_MEMORY_INIT | ||
509 | bool "Debug memory initialisation" if EMBEDDED | ||
510 | default !EMBEDDED | ||
511 | help | ||
512 | Enable this for additional checks during memory initialisation. | ||
513 | The sanity checks verify aspects of the VM such as the memory model | ||
514 | and other information provided by the architecture. Verbose | ||
515 | information will be printed at KERN_DEBUG loglevel depending | ||
516 | on the mminit_loglevel= command-line option. | ||
517 | |||
518 | If unsure, say Y | ||
519 | |||
508 | config DEBUG_LIST | 520 | config DEBUG_LIST |
509 | bool "Debug linked list manipulation" | 521 | bool "Debug linked list manipulation" |
510 | depends on DEBUG_KERNEL | 522 | depends on DEBUG_KERNEL |