ronnie
2022-10-23 e3a1b9bdd0692904702c0e734ea5dfde3b0ac8fb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
config HAVE_ARCH_KMEMCHECK
   bool
 
if HAVE_ARCH_KMEMCHECK
 
menuconfig KMEMCHECK
   bool "kmemcheck: trap use of uninitialized memory"
   depends on DEBUG_KERNEL
   depends on !X86_USE_3DNOW
   depends on SLUB || SLAB
   depends on !CC_OPTIMIZE_FOR_SIZE
   depends on !FUNCTION_TRACER
   select FRAME_POINTER
   select STACKTRACE
   default n
   help
     This option enables tracing of dynamically allocated kernel memory
     to see if memory is used before it has been given an initial value.
     Be aware that this requires half of your memory for bookkeeping and
     will insert extra code at *every* read and write to tracked memory
     thus slow down the kernel code (but user code is unaffected).
 
     The kernel may be started with kmemcheck=0 or kmemcheck=1 to disable
     or enable kmemcheck at boot-time. If the kernel is started with
     kmemcheck=0, the large memory and CPU overhead is not incurred.
 
choice
   prompt "kmemcheck: default mode at boot"
   depends on KMEMCHECK
   default KMEMCHECK_ONESHOT_BY_DEFAULT
   help
     This option controls the default behaviour of kmemcheck when the
     kernel boots and no kmemcheck= parameter is given.
 
config KMEMCHECK_DISABLED_BY_DEFAULT
   bool "disabled"
   depends on KMEMCHECK
 
config KMEMCHECK_ENABLED_BY_DEFAULT
   bool "enabled"
   depends on KMEMCHECK
 
config KMEMCHECK_ONESHOT_BY_DEFAULT
   bool "one-shot"
   depends on KMEMCHECK
   help
     In one-shot mode, only the first error detected is reported before
     kmemcheck is disabled.
 
endchoice
 
config KMEMCHECK_QUEUE_SIZE
   int "kmemcheck: error queue size"
   depends on KMEMCHECK
   default 64
   help
     Select the maximum number of errors to store in the queue. Since
     errors can occur virtually anywhere and in any context, we need a
     temporary storage area which is guarantueed not to generate any
     other faults. The queue will be emptied as soon as a tasklet may
     be scheduled. If the queue is full, new error reports will be
     lost.
 
config KMEMCHECK_SHADOW_COPY_SHIFT
   int "kmemcheck: shadow copy size (5 => 32 bytes, 6 => 64 bytes)"
   depends on KMEMCHECK
   range 2 8
   default 5
   help
     Select the number of shadow bytes to save along with each entry of
     the queue. These bytes indicate what parts of an allocation are
     initialized, uninitialized, etc. and will be displayed when an
     error is detected to help the debugging of a particular problem.
 
config KMEMCHECK_PARTIAL_OK
   bool "kmemcheck: allow partially uninitialized memory"
   depends on KMEMCHECK
   default y
   help
     This option works around certain GCC optimizations that produce
     32-bit reads from 16-bit variables where the upper 16 bits are
     thrown away afterwards. This may of course also hide some real
     bugs.
 
config KMEMCHECK_BITOPS_OK
   bool "kmemcheck: allow bit-field manipulation"
   depends on KMEMCHECK
   default n
   help
     This option silences warnings that would be generated for bit-field
     accesses where not all the bits are initialized at the same time.
     This may also hide some real bugs.
 
endif