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