aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/kernel-parameters.txt
diff options
context:
space:
mode:
authorStanislaw Gruszka <sgruszka@redhat.com>2012-01-10 18:07:28 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-01-10 19:30:42 -0500
commitc0a32fc5a2e470d0b02597b23ad79a317735253e (patch)
tree2d164edae0062918ca2088772c00b0615781353b /Documentation/kernel-parameters.txt
parent1399ff86f2a2bbacbbe68fa00c5f8c752b344723 (diff)
mm: more intensive memory corruption debugging
With CONFIG_DEBUG_PAGEALLOC configured, the CPU will generate an exception on access (read,write) to an unallocated page, which permits us to catch code which corrupts memory. However the kernel is trying to maximise memory usage, hence there are usually few free pages in the system and buggy code usually corrupts some crucial data. This patch changes the buddy allocator to keep more free/protected pages and to interlace free/protected and allocated pages to increase the probability of catching corruption. When the kernel is compiled with CONFIG_DEBUG_PAGEALLOC, debug_guardpage_minorder defines the minimum order used by the page allocator to grant a request. The requested size will be returned with the remaining pages used as guard pages. The default value of debug_guardpage_minorder is zero: no change from current behaviour. [akpm@linux-foundation.org: tweak documentation, s/flg/flag/] Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Cc: Mel Gorman <mgorman@suse.de> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: "Rafael J. Wysocki" <rjw@sisk.pl> Cc: Christoph Lameter <cl@linux-foundation.org> Cc: Pekka Enberg <penberg@cs.helsinki.fi> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'Documentation/kernel-parameters.txt')
-rw-r--r--Documentation/kernel-parameters.txt19
1 files changed, 19 insertions, 0 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 7b2e5c5eefa6..7ed7030e7722 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -623,6 +623,25 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
623 no_debug_objects 623 no_debug_objects
624 [KNL] Disable object debugging 624 [KNL] Disable object debugging
625 625
626 debug_guardpage_minorder=
627 [KNL] When CONFIG_DEBUG_PAGEALLOC is set, this
628 parameter allows control of the order of pages that will
629 be intentionally kept free (and hence protected) by the
630 buddy allocator. Bigger value increase the probability
631 of catching random memory corruption, but reduce the
632 amount of memory for normal system use. The maximum
633 possible value is MAX_ORDER/2. Setting this parameter
634 to 1 or 2 should be enough to identify most random
635 memory corruption problems caused by bugs in kernel or
636 driver code when a CPU writes to (or reads from) a
637 random memory location. Note that there exists a class
638 of memory corruptions problems caused by buggy H/W or
639 F/W or by drivers badly programing DMA (basically when
640 memory is written at bus level and the CPU MMU is
641 bypassed) which are not detectable by
642 CONFIG_DEBUG_PAGEALLOC, hence this option will not help
643 tracking down these problems.
644
626 debugpat [X86] Enable PAT debugging 645 debugpat [X86] Enable PAT debugging
627 646
628 decnet.addr= [HW,NET] 647 decnet.addr= [HW,NET]