]>
Commit | Line | Data |
---|---|---|
eefa864b JK |
1 | config PAGE_EXTENSION |
2 | bool "Extend memmap on extra space for more information on page" | |
3 | ---help--- | |
4 | Extend memmap on extra space for more information on page. This | |
5 | could be used for debugging features that need to insert extra | |
6 | field for every page. This extension enables us to save memory | |
7 | by not allocating this extra memory according to boottime | |
8 | configuration. | |
9 | ||
ee3b4290 AM |
10 | config DEBUG_PAGEALLOC |
11 | bool "Debug page memory allocations" | |
7bc32f6f AM |
12 | depends on DEBUG_KERNEL |
13 | depends on !HIBERNATION || ARCH_SUPPORTS_DEBUG_PAGEALLOC && !PPC && !SPARC | |
e30825f1 | 14 | select PAGE_EXTENSION |
7bc32f6f | 15 | select PAGE_POISONING if !ARCH_SUPPORTS_DEBUG_PAGEALLOC |
ee3b4290 AM |
16 | ---help--- |
17 | Unmap pages from the kernel linear mapping after free_pages(). | |
ea6eabb0 CB |
18 | Depending on runtime enablement, this results in a small or large |
19 | slowdown, but helps to find certain types of memory corruption. | |
ee3b4290 | 20 | |
7bc32f6f AM |
21 | For architectures which don't enable ARCH_SUPPORTS_DEBUG_PAGEALLOC, |
22 | fill the pages with poison patterns after free_pages() and verify | |
23 | the patterns before alloc_pages(). Additionally, | |
24 | this option cannot be enabled in combination with hibernation as | |
25 | that would result in incorrect warnings of memory corruption after | |
26 | a resume because free pages are not saved to the suspend image. | |
27 | ||
ea6eabb0 CB |
28 | By default this option will have a small overhead, e.g. by not |
29 | allowing the kernel mapping to be backed by large pages on some | |
30 | architectures. Even bigger overhead comes when the debugging is | |
31 | enabled by DEBUG_PAGEALLOC_ENABLE_DEFAULT or the debug_pagealloc | |
32 | command line parameter. | |
33 | ||
34 | config DEBUG_PAGEALLOC_ENABLE_DEFAULT | |
35 | bool "Enable debug page memory allocations by default?" | |
36 | default n | |
37 | depends on DEBUG_PAGEALLOC | |
38 | ---help--- | |
39 | Enable debug page memory allocations by default? This value | |
40 | can be overridden by debug_pagealloc=off|on. | |
41 | ||
6a11f75b | 42 | config PAGE_POISONING |
8823b1db | 43 | bool "Poison pages after freeing" |
8823b1db LA |
44 | select PAGE_POISONING_NO_SANITY if HIBERNATION |
45 | ---help--- | |
46 | Fill the pages with poison patterns after free_pages() and verify | |
47 | the patterns before alloc_pages. The filling of the memory helps | |
48 | reduce the risk of information leaks from freed data. This does | |
49 | have a potential performance impact. | |
50 | ||
51 | Note that "poison" here is not the same thing as the "HWPoison" | |
52 | for CONFIG_MEMORY_FAILURE. This is software poisoning only. | |
53 | ||
54 | If unsure, say N | |
55 | ||
56 | config PAGE_POISONING_NO_SANITY | |
57 | depends on PAGE_POISONING | |
58 | bool "Only poison, don't sanity check" | |
59 | ---help--- | |
60 | Skip the sanity checking on alloc, only fill the pages with | |
61 | poison on free. This reduces some of the overhead of the | |
62 | poisoning feature. | |
63 | ||
64 | If you are only interested in sanitization, say Y. Otherwise | |
65 | say N. | |
1414c7f4 LA |
66 | |
67 | config PAGE_POISONING_ZERO | |
68 | bool "Use zero for poisoning instead of random data" | |
69 | depends on PAGE_POISONING | |
70 | ---help--- | |
71 | Instead of using the existing poison value, fill the pages with | |
72 | zeros. This makes it harder to detect when errors are occurring | |
73 | due to sanitization but the zeroing at free means that it is | |
74 | no longer necessary to write zeros when GFP_ZERO is used on | |
75 | allocation. | |
76 | ||
1414c7f4 | 77 | If unsure, say N |
95813b8f JK |
78 | bool |
79 | ||
80 | config DEBUG_PAGE_REF | |
81 | bool "Enable tracepoint to track down page reference manipulation" | |
82 | depends on DEBUG_KERNEL | |
83 | depends on TRACEPOINTS | |
84 | ---help--- | |
85 | This is a feature to add tracepoint for tracking down page reference | |
86 | manipulation. This tracking is useful to diagnose functional failure | |
87 | due to migration failures caused by page reference mismatches. Be | |
88 | careful when enabling this feature because it adds about 30 KB to the | |
89 | kernel code. However the runtime performance overhead is virtually | |
90 | nil until the tracepoints are actually enabled. | |
2959a5f7 JP |
91 | |
92 | config DEBUG_RODATA_TEST | |
93 | bool "Testcase for the marking rodata read-only" | |
94 | depends on STRICT_KERNEL_RWX | |
95 | ---help--- | |
96 | This option enables a testcase for the setting rodata read-only. |