lib/Kconfig.kmemcheck v3.0-rc7

KMEMCHECK

kmemcheck: trap use of uninitialized memory

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.

KMEMCHECK

kmemcheck: default mode at boot

This option controls the default behaviour of kmemcheck when the
kernel boots and no kmemcheck= parameter is given.

KMEMCHECK_ONESHOT_BY_DEFAULT

one-shot

In one-shot mode, only the first error detected is reported before
kmemcheck is disabled.

KMEMCHECK_QUEUE_SIZE

kmemcheck: error queue size

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.

KMEMCHECK_SHADOW_COPY_SHIFT

kmemcheck: shadow copy size (5 => 32 bytes, 6 => 64 bytes)

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.

KMEMCHECK_PARTIAL_OK

kmemcheck: allow partially uninitialized memory

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.

KMEMCHECK_BITOPS_OK

kmemcheck: allow bit-field manipulation

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.