The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/lib/Kconfig.debug

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 
    2 config PRINTK_TIME
    3         bool "Show timing information on printks"
    4         depends on PRINTK
    5         help
    6           Selecting this option causes time stamps of the printk()
    7           messages to be added to the output of the syslog() system
    8           call and at the console.
    9 
   10           The timestamp is always recorded internally, and exported
   11           to /dev/kmsg. This flag just specifies if the timestamp should
   12           be included, not that the timestamp is recorded.
   13 
   14           The behavior is also controlled by the kernel command line
   15           parameter printk.time=1. See Documentation/kernel-parameters.txt
   16 
   17 config DEFAULT_MESSAGE_LOGLEVEL
   18         int "Default message log level (1-7)"
   19         range 1 7
   20         default "4"
   21         help
   22           Default log level for printk statements with no specified priority.
   23 
   24           This was hard-coded to KERN_WARNING since at least 2.6.10 but folks
   25           that are auditing their logs closely may want to set it to a lower
   26           priority.
   27 
   28 config ENABLE_WARN_DEPRECATED
   29         bool "Enable __deprecated logic"
   30         default y
   31         help
   32           Enable the __deprecated logic in the kernel build.
   33           Disable this to suppress the "warning: 'foo' is deprecated
   34           (declared at kernel/power/somefile.c:1234)" messages.
   35 
   36 config ENABLE_MUST_CHECK
   37         bool "Enable __must_check logic"
   38         default y
   39         help
   40           Enable the __must_check logic in the kernel build.  Disable this to
   41           suppress the "warning: ignoring return value of 'foo', declared with
   42           attribute warn_unused_result" messages.
   43 
   44 config FRAME_WARN
   45         int "Warn for stack frames larger than (needs gcc 4.4)"
   46         range 0 8192
   47         default 1024 if !64BIT
   48         default 2048 if 64BIT
   49         help
   50           Tell gcc to warn at build time for stack frames larger than this.
   51           Setting this too low will cause a lot of warnings.
   52           Setting it to 0 disables the warning.
   53           Requires gcc 4.4
   54 
   55 config MAGIC_SYSRQ
   56         bool "Magic SysRq key"
   57         depends on !UML
   58         help
   59           If you say Y here, you will have some control over the system even
   60           if the system crashes for example during kernel debugging (e.g., you
   61           will be able to flush the buffer cache to disk, reboot the system
   62           immediately or dump some status information). This is accomplished
   63           by pressing various keys while holding SysRq (Alt+PrintScreen). It
   64           also works on a serial console (on PC hardware at least), if you
   65           send a BREAK and then within 5 seconds a command keypress. The
   66           keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
   67           unless you really know what this hack does.
   68 
   69 config STRIP_ASM_SYMS
   70         bool "Strip assembler-generated symbols during link"
   71         default n
   72         help
   73           Strip internal assembler-generated symbols during a link (symbols
   74           that look like '.Lxxx') so they don't pollute the output of
   75           get_wchan() and suchlike.
   76 
   77 config READABLE_ASM
   78         bool "Generate readable assembler code"
   79         depends on DEBUG_KERNEL
   80         help
   81           Disable some compiler optimizations that tend to generate human unreadable
   82           assembler output. This may make the kernel slightly slower, but it helps
   83           to keep kernel developers who have to stare a lot at assembler listings
   84           sane.
   85 
   86 config UNUSED_SYMBOLS
   87         bool "Enable unused/obsolete exported symbols"
   88         default y if X86
   89         help
   90           Unused but exported symbols make the kernel needlessly bigger.  For
   91           that reason most of these unused exports will soon be removed.  This
   92           option is provided temporarily to provide a transition period in case
   93           some external kernel module needs one of these symbols anyway. If you
   94           encounter such a case in your module, consider if you are actually
   95           using the right API.  (rationale: since nobody in the kernel is using
   96           this in a module, there is a pretty good chance it's actually the
   97           wrong interface to use).  If you really need the symbol, please send a
   98           mail to the linux kernel mailing list mentioning the symbol and why
   99           you really need it, and what the merge plan to the mainline kernel for
  100           your module is.
  101 
  102 config DEBUG_FS
  103         bool "Debug Filesystem"
  104         help
  105           debugfs is a virtual file system that kernel developers use to put
  106           debugging files into.  Enable this option to be able to read and
  107           write to these files.
  108 
  109           For detailed documentation on the debugfs API, see
  110           Documentation/DocBook/filesystems.
  111 
  112           If unsure, say N.
  113 
  114 config HEADERS_CHECK
  115         bool "Run 'make headers_check' when building vmlinux"
  116         depends on !UML
  117         help
  118           This option will extract the user-visible kernel headers whenever
  119           building the kernel, and will run basic sanity checks on them to
  120           ensure that exported files do not attempt to include files which
  121           were not exported, etc.
  122 
  123           If you're making modifications to header files which are
  124           relevant for userspace, say 'Y', and check the headers
  125           exported to $(INSTALL_HDR_PATH) (usually 'usr/include' in
  126           your build tree), to make sure they're suitable.
  127 
  128 config DEBUG_SECTION_MISMATCH
  129         bool "Enable full Section mismatch analysis"
  130         help
  131           The section mismatch analysis checks if there are illegal
  132           references from one section to another section.
  133           During linktime or runtime, some sections are dropped;
  134           any use of code/data previously in these sections would
  135           most likely result in an oops.
  136           In the code, functions and variables are annotated with
  137           __init, __cpuinit, etc. (see the full list in include/linux/init.h),
  138           which results in the code/data being placed in specific sections.
  139           The section mismatch analysis is always performed after a full
  140           kernel build, and enabling this option causes the following
  141           additional steps to occur:
  142           - Add the option -fno-inline-functions-called-once to gcc commands.
  143             When inlining a function annotated with __init in a non-init
  144             function, we would lose the section information and thus
  145             the analysis would not catch the illegal reference.
  146             This option tells gcc to inline less (but it does result in
  147             a larger kernel).
  148           - Run the section mismatch analysis for each module/built-in.o file.
  149             When we run the section mismatch analysis on vmlinux.o, we
  150             lose valueble information about where the mismatch was
  151             introduced.
  152             Running the analysis for each module/built-in.o file
  153             tells where the mismatch happens much closer to the
  154             source. The drawback is that the same mismatch is
  155             reported at least twice.
  156           - Enable verbose reporting from modpost in order to help resolve
  157             the section mismatches that are reported.
  158 
  159 config DEBUG_KERNEL
  160         bool "Kernel debugging"
  161         help
  162           Say Y here if you are developing drivers or trying to debug and
  163           identify kernel problems.
  164 
  165 config DEBUG_SHIRQ
  166         bool "Debug shared IRQ handlers"
  167         depends on DEBUG_KERNEL && GENERIC_HARDIRQS
  168         help
  169           Enable this to generate a spurious interrupt as soon as a shared
  170           interrupt handler is registered, and just before one is deregistered.
  171           Drivers ought to be able to handle interrupts coming in at those
  172           points; some don't and need to be caught.
  173 
  174 config LOCKUP_DETECTOR
  175         bool "Detect Hard and Soft Lockups"
  176         depends on DEBUG_KERNEL && !S390
  177         help
  178           Say Y here to enable the kernel to act as a watchdog to detect
  179           hard and soft lockups.
  180 
  181           Softlockups are bugs that cause the kernel to loop in kernel
  182           mode for more than 20 seconds, without giving other tasks a
  183           chance to run.  The current stack trace is displayed upon
  184           detection and the system will stay locked up.
  185 
  186           Hardlockups are bugs that cause the CPU to loop in kernel mode
  187           for more than 10 seconds, without letting other interrupts have a
  188           chance to run.  The current stack trace is displayed upon detection
  189           and the system will stay locked up.
  190 
  191           The overhead should be minimal.  A periodic hrtimer runs to
  192           generate interrupts and kick the watchdog task every 4 seconds.
  193           An NMI is generated every 10 seconds or so to check for hardlockups.
  194 
  195           The frequency of hrtimer and NMI events and the soft and hard lockup
  196           thresholds can be controlled through the sysctl watchdog_thresh.
  197 
  198 config HARDLOCKUP_DETECTOR
  199         def_bool y
  200         depends on LOCKUP_DETECTOR && !HAVE_NMI_WATCHDOG
  201         depends on PERF_EVENTS && HAVE_PERF_EVENTS_NMI
  202 
  203 config BOOTPARAM_HARDLOCKUP_PANIC
  204         bool "Panic (Reboot) On Hard Lockups"
  205         depends on HARDLOCKUP_DETECTOR
  206         help
  207           Say Y here to enable the kernel to panic on "hard lockups",
  208           which are bugs that cause the kernel to loop in kernel
  209           mode with interrupts disabled for more than 10 seconds (configurable
  210           using the watchdog_thresh sysctl).
  211 
  212           Say N if unsure.
  213 
  214 config BOOTPARAM_HARDLOCKUP_PANIC_VALUE
  215         int
  216         depends on HARDLOCKUP_DETECTOR
  217         range 0 1
  218         default 0 if !BOOTPARAM_HARDLOCKUP_PANIC
  219         default 1 if BOOTPARAM_HARDLOCKUP_PANIC
  220 
  221 config BOOTPARAM_SOFTLOCKUP_PANIC
  222         bool "Panic (Reboot) On Soft Lockups"
  223         depends on LOCKUP_DETECTOR
  224         help
  225           Say Y here to enable the kernel to panic on "soft lockups",
  226           which are bugs that cause the kernel to loop in kernel
  227           mode for more than 20 seconds (configurable using the watchdog_thresh
  228           sysctl), without giving other tasks a chance to run.
  229 
  230           The panic can be used in combination with panic_timeout,
  231           to cause the system to reboot automatically after a
  232           lockup has been detected. This feature is useful for
  233           high-availability systems that have uptime guarantees and
  234           where a lockup must be resolved ASAP.
  235 
  236           Say N if unsure.
  237 
  238 config BOOTPARAM_SOFTLOCKUP_PANIC_VALUE
  239         int
  240         depends on LOCKUP_DETECTOR
  241         range 0 1
  242         default 0 if !BOOTPARAM_SOFTLOCKUP_PANIC
  243         default 1 if BOOTPARAM_SOFTLOCKUP_PANIC
  244 
  245 config PANIC_ON_OOPS
  246         bool "Panic on Oops" if EXPERT
  247         default n
  248         help
  249           Say Y here to enable the kernel to panic when it oopses. This
  250           has the same effect as setting oops=panic on the kernel command
  251           line.
  252 
  253           This feature is useful to ensure that the kernel does not do
  254           anything erroneous after an oops which could result in data
  255           corruption or other issues.
  256 
  257           Say N if unsure.
  258 
  259 config PANIC_ON_OOPS_VALUE
  260         int
  261         range 0 1
  262         default 0 if !PANIC_ON_OOPS
  263         default 1 if PANIC_ON_OOPS
  264 
  265 config DETECT_HUNG_TASK
  266         bool "Detect Hung Tasks"
  267         depends on DEBUG_KERNEL
  268         default LOCKUP_DETECTOR
  269         help
  270           Say Y here to enable the kernel to detect "hung tasks",
  271           which are bugs that cause the task to be stuck in
  272           uninterruptible "D" state indefinitiley.
  273 
  274           When a hung task is detected, the kernel will print the
  275           current stack trace (which you should report), but the
  276           task will stay in uninterruptible state. If lockdep is
  277           enabled then all held locks will also be reported. This
  278           feature has negligible overhead.
  279 
  280 config DEFAULT_HUNG_TASK_TIMEOUT
  281         int "Default timeout for hung task detection (in seconds)"
  282         depends on DETECT_HUNG_TASK
  283         default 120
  284         help
  285           This option controls the default timeout (in seconds) used
  286           to determine when a task has become non-responsive and should
  287           be considered hung.
  288 
  289           It can be adjusted at runtime via the kernel.hung_task_timeout_secs
  290           sysctl or by writing a value to
  291           /proc/sys/kernel/hung_task_timeout_secs.
  292 
  293           A timeout of 0 disables the check.  The default is two minutes.
  294           Keeping the default should be fine in most cases.
  295 
  296 config BOOTPARAM_HUNG_TASK_PANIC
  297         bool "Panic (Reboot) On Hung Tasks"
  298         depends on DETECT_HUNG_TASK
  299         help
  300           Say Y here to enable the kernel to panic on "hung tasks",
  301           which are bugs that cause the kernel to leave a task stuck
  302           in uninterruptible "D" state.
  303 
  304           The panic can be used in combination with panic_timeout,
  305           to cause the system to reboot automatically after a
  306           hung task has been detected. This feature is useful for
  307           high-availability systems that have uptime guarantees and
  308           where a hung tasks must be resolved ASAP.
  309 
  310           Say N if unsure.
  311 
  312 config BOOTPARAM_HUNG_TASK_PANIC_VALUE
  313         int
  314         depends on DETECT_HUNG_TASK
  315         range 0 1
  316         default 0 if !BOOTPARAM_HUNG_TASK_PANIC
  317         default 1 if BOOTPARAM_HUNG_TASK_PANIC
  318 
  319 config SCHED_DEBUG
  320         bool "Collect scheduler debugging info"
  321         depends on DEBUG_KERNEL && PROC_FS
  322         default y
  323         help
  324           If you say Y here, the /proc/sched_debug file will be provided
  325           that can help debug the scheduler. The runtime overhead of this
  326           option is minimal.
  327 
  328 config SCHEDSTATS
  329         bool "Collect scheduler statistics"
  330         depends on DEBUG_KERNEL && PROC_FS
  331         help
  332           If you say Y here, additional code will be inserted into the
  333           scheduler and related routines to collect statistics about
  334           scheduler behavior and provide them in /proc/schedstat.  These
  335           stats may be useful for both tuning and debugging the scheduler
  336           If you aren't debugging the scheduler or trying to tune a specific
  337           application, you can say N to avoid the very slight overhead
  338           this adds.
  339 
  340 config TIMER_STATS
  341         bool "Collect kernel timers statistics"
  342         depends on DEBUG_KERNEL && PROC_FS
  343         help
  344           If you say Y here, additional code will be inserted into the
  345           timer routines to collect statistics about kernel timers being
  346           reprogrammed. The statistics can be read from /proc/timer_stats.
  347           The statistics collection is started by writing 1 to /proc/timer_stats,
  348           writing 0 stops it. This feature is useful to collect information
  349           about timer usage patterns in kernel and userspace. This feature
  350           is lightweight if enabled in the kernel config but not activated
  351           (it defaults to deactivated on bootup and will only be activated
  352           if some application like powertop activates it explicitly).
  353 
  354 config DEBUG_OBJECTS
  355         bool "Debug object operations"
  356         depends on DEBUG_KERNEL
  357         help
  358           If you say Y here, additional code will be inserted into the
  359           kernel to track the life time of various objects and validate
  360           the operations on those objects.
  361 
  362 config DEBUG_OBJECTS_SELFTEST
  363         bool "Debug objects selftest"
  364         depends on DEBUG_OBJECTS
  365         help
  366           This enables the selftest of the object debug code.
  367 
  368 config DEBUG_OBJECTS_FREE
  369         bool "Debug objects in freed memory"
  370         depends on DEBUG_OBJECTS
  371         help
  372           This enables checks whether a k/v free operation frees an area
  373           which contains an object which has not been deactivated
  374           properly. This can make kmalloc/kfree-intensive workloads
  375           much slower.
  376 
  377 config DEBUG_OBJECTS_TIMERS
  378         bool "Debug timer objects"
  379         depends on DEBUG_OBJECTS
  380         help
  381           If you say Y here, additional code will be inserted into the
  382           timer routines to track the life time of timer objects and
  383           validate the timer operations.
  384 
  385 config DEBUG_OBJECTS_WORK
  386         bool "Debug work objects"
  387         depends on DEBUG_OBJECTS
  388         help
  389           If you say Y here, additional code will be inserted into the
  390           work queue routines to track the life time of work objects and
  391           validate the work operations.
  392 
  393 config DEBUG_OBJECTS_RCU_HEAD
  394         bool "Debug RCU callbacks objects"
  395         depends on DEBUG_OBJECTS
  396         help
  397           Enable this to turn on debugging of RCU list heads (call_rcu() usage).
  398 
  399 config DEBUG_OBJECTS_PERCPU_COUNTER
  400         bool "Debug percpu counter objects"
  401         depends on DEBUG_OBJECTS
  402         help
  403           If you say Y here, additional code will be inserted into the
  404           percpu counter routines to track the life time of percpu counter
  405           objects and validate the percpu counter operations.
  406 
  407 config DEBUG_OBJECTS_ENABLE_DEFAULT
  408         int "debug_objects bootup default value (0-1)"
  409         range 0 1
  410         default "1"
  411         depends on DEBUG_OBJECTS
  412         help
  413           Debug objects boot parameter default value
  414 
  415 config DEBUG_SLAB
  416         bool "Debug slab memory allocations"
  417         depends on DEBUG_KERNEL && SLAB && !KMEMCHECK
  418         help
  419           Say Y here to have the kernel do limited verification on memory
  420           allocation as well as poisoning memory on free to catch use of freed
  421           memory. This can make kmalloc/kfree-intensive workloads much slower.
  422 
  423 config DEBUG_SLAB_LEAK
  424         bool "Memory leak debugging"
  425         depends on DEBUG_SLAB
  426 
  427 config SLUB_DEBUG_ON
  428         bool "SLUB debugging on by default"
  429         depends on SLUB && SLUB_DEBUG && !KMEMCHECK
  430         default n
  431         help
  432           Boot with debugging on by default. SLUB boots by default with
  433           the runtime debug capabilities switched off. Enabling this is
  434           equivalent to specifying the "slub_debug" parameter on boot.
  435           There is no support for more fine grained debug control like
  436           possible with slub_debug=xxx. SLUB debugging may be switched
  437           off in a kernel built with CONFIG_SLUB_DEBUG_ON by specifying
  438           "slub_debug=-".
  439 
  440 config SLUB_STATS
  441         default n
  442         bool "Enable SLUB performance statistics"
  443         depends on SLUB && SYSFS
  444         help
  445           SLUB statistics are useful to debug SLUBs allocation behavior in
  446           order find ways to optimize the allocator. This should never be
  447           enabled for production use since keeping statistics slows down
  448           the allocator by a few percentage points. The slabinfo command
  449           supports the determination of the most active slabs to figure
  450           out which slabs are relevant to a particular load.
  451           Try running: slabinfo -DA
  452 
  453 config HAVE_DEBUG_KMEMLEAK
  454         bool
  455 
  456 config DEBUG_KMEMLEAK
  457         bool "Kernel memory leak detector"
  458         depends on DEBUG_KERNEL && EXPERIMENTAL && HAVE_DEBUG_KMEMLEAK
  459         select DEBUG_FS
  460         select STACKTRACE if STACKTRACE_SUPPORT
  461         select KALLSYMS
  462         select CRC32
  463         help
  464           Say Y here if you want to enable the memory leak
  465           detector. The memory allocation/freeing is traced in a way
  466           similar to the Boehm's conservative garbage collector, the
  467           difference being that the orphan objects are not freed but
  468           only shown in /sys/kernel/debug/kmemleak. Enabling this
  469           feature will introduce an overhead to memory
  470           allocations. See Documentation/kmemleak.txt for more
  471           details.
  472 
  473           Enabling DEBUG_SLAB or SLUB_DEBUG may increase the chances
  474           of finding leaks due to the slab objects poisoning.
  475 
  476           In order to access the kmemleak file, debugfs needs to be
  477           mounted (usually at /sys/kernel/debug).
  478 
  479 config DEBUG_KMEMLEAK_EARLY_LOG_SIZE
  480         int "Maximum kmemleak early log entries"
  481         depends on DEBUG_KMEMLEAK
  482         range 200 40000
  483         default 400
  484         help
  485           Kmemleak must track all the memory allocations to avoid
  486           reporting false positives. Since memory may be allocated or
  487           freed before kmemleak is initialised, an early log buffer is
  488           used to store these actions. If kmemleak reports "early log
  489           buffer exceeded", please increase this value.
  490 
  491 config DEBUG_KMEMLEAK_TEST
  492         tristate "Simple test for the kernel memory leak detector"
  493         depends on DEBUG_KMEMLEAK && m
  494         help
  495           This option enables a module that explicitly leaks memory.
  496 
  497           If unsure, say N.
  498 
  499 config DEBUG_KMEMLEAK_DEFAULT_OFF
  500         bool "Default kmemleak to off"
  501         depends on DEBUG_KMEMLEAK
  502         help
  503           Say Y here to disable kmemleak by default. It can then be enabled
  504           on the command line via kmemleak=on.
  505 
  506 config DEBUG_PREEMPT
  507         bool "Debug preemptible kernel"
  508         depends on DEBUG_KERNEL && PREEMPT && TRACE_IRQFLAGS_SUPPORT
  509         default y
  510         help
  511           If you say Y here then the kernel will use a debug variant of the
  512           commonly used smp_processor_id() function and will print warnings
  513           if kernel code uses it in a preemption-unsafe way. Also, the kernel
  514           will detect preemption count underflows.
  515 
  516 config DEBUG_RT_MUTEXES
  517         bool "RT Mutex debugging, deadlock detection"
  518         depends on DEBUG_KERNEL && RT_MUTEXES
  519         help
  520          This allows rt mutex semantics violations and rt mutex related
  521          deadlocks (lockups) to be detected and reported automatically.
  522 
  523 config DEBUG_PI_LIST
  524         bool
  525         default y
  526         depends on DEBUG_RT_MUTEXES
  527 
  528 config RT_MUTEX_TESTER
  529         bool "Built-in scriptable tester for rt-mutexes"
  530         depends on DEBUG_KERNEL && RT_MUTEXES
  531         help
  532           This option enables a rt-mutex tester.
  533 
  534 config DEBUG_SPINLOCK
  535         bool "Spinlock and rw-lock debugging: basic checks"
  536         depends on DEBUG_KERNEL
  537         select UNINLINE_SPIN_UNLOCK
  538         help
  539           Say Y here and build SMP to catch missing spinlock initialization
  540           and certain other kinds of spinlock errors commonly made.  This is
  541           best used in conjunction with the NMI watchdog so that spinlock
  542           deadlocks are also debuggable.
  543 
  544 config DEBUG_MUTEXES
  545         bool "Mutex debugging: basic checks"
  546         depends on DEBUG_KERNEL
  547         help
  548          This feature allows mutex semantics violations to be detected and
  549          reported.
  550 
  551 config DEBUG_LOCK_ALLOC
  552         bool "Lock debugging: detect incorrect freeing of live locks"
  553         depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
  554         select DEBUG_SPINLOCK
  555         select DEBUG_MUTEXES
  556         select LOCKDEP
  557         help
  558          This feature will check whether any held lock (spinlock, rwlock,
  559          mutex or rwsem) is incorrectly freed by the kernel, via any of the
  560          memory-freeing routines (kfree(), kmem_cache_free(), free_pages(),
  561          vfree(), etc.), whether a live lock is incorrectly reinitialized via
  562          spin_lock_init()/mutex_init()/etc., or whether there is any lock
  563          held during task exit.
  564 
  565 config PROVE_LOCKING
  566         bool "Lock debugging: prove locking correctness"
  567         depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
  568         select LOCKDEP
  569         select DEBUG_SPINLOCK
  570         select DEBUG_MUTEXES
  571         select DEBUG_LOCK_ALLOC
  572         select TRACE_IRQFLAGS
  573         default n
  574         help
  575          This feature enables the kernel to prove that all locking
  576          that occurs in the kernel runtime is mathematically
  577          correct: that under no circumstance could an arbitrary (and
  578          not yet triggered) combination of observed locking
  579          sequences (on an arbitrary number of CPUs, running an
  580          arbitrary number of tasks and interrupt contexts) cause a
  581          deadlock.
  582 
  583          In short, this feature enables the kernel to report locking
  584          related deadlocks before they actually occur.
  585 
  586          The proof does not depend on how hard and complex a
  587          deadlock scenario would be to trigger: how many
  588          participant CPUs, tasks and irq-contexts would be needed
  589          for it to trigger. The proof also does not depend on
  590          timing: if a race and a resulting deadlock is possible
  591          theoretically (no matter how unlikely the race scenario
  592          is), it will be proven so and will immediately be
  593          reported by the kernel (once the event is observed that
  594          makes the deadlock theoretically possible).
  595 
  596          If a deadlock is impossible (i.e. the locking rules, as
  597          observed by the kernel, are mathematically correct), the
  598          kernel reports nothing.
  599 
  600          NOTE: this feature can also be enabled for rwlocks, mutexes
  601          and rwsems - in which case all dependencies between these
  602          different locking variants are observed and mapped too, and
  603          the proof of observed correctness is also maintained for an
  604          arbitrary combination of these separate locking variants.
  605 
  606          For more details, see Documentation/lockdep-design.txt.
  607 
  608 config PROVE_RCU
  609         bool "RCU debugging: prove RCU correctness"
  610         depends on PROVE_LOCKING
  611         default n
  612         help
  613          This feature enables lockdep extensions that check for correct
  614          use of RCU APIs.  This is currently under development.  Say Y
  615          if you want to debug RCU usage or help work on the PROVE_RCU
  616          feature.
  617 
  618          Say N if you are unsure.
  619 
  620 config PROVE_RCU_REPEATEDLY
  621         bool "RCU debugging: don't disable PROVE_RCU on first splat"
  622         depends on PROVE_RCU
  623         default n
  624         help
  625          By itself, PROVE_RCU will disable checking upon issuing the
  626          first warning (or "splat").  This feature prevents such
  627          disabling, allowing multiple RCU-lockdep warnings to be printed
  628          on a single reboot.
  629 
  630          Say Y to allow multiple RCU-lockdep warnings per boot.
  631 
  632          Say N if you are unsure.
  633 
  634 config PROVE_RCU_DELAY
  635         bool "RCU debugging: preemptible RCU race provocation"
  636         depends on DEBUG_KERNEL && PREEMPT_RCU
  637         default n
  638         help
  639          There is a class of races that involve an unlikely preemption
  640          of __rcu_read_unlock() just after ->rcu_read_lock_nesting has
  641          been set to INT_MIN.  This feature inserts a delay at that
  642          point to increase the probability of these races.
  643 
  644          Say Y to increase probability of preemption of __rcu_read_unlock().
  645 
  646          Say N if you are unsure.
  647 
  648 config SPARSE_RCU_POINTER
  649         bool "RCU debugging: sparse-based checks for pointer usage"
  650         default n
  651         help
  652          This feature enables the __rcu sparse annotation for
  653          RCU-protected pointers.  This annotation will cause sparse
  654          to flag any non-RCU used of annotated pointers.  This can be
  655          helpful when debugging RCU usage.  Please note that this feature
  656          is not intended to enforce code cleanliness; it is instead merely
  657          a debugging aid.
  658 
  659          Say Y to make sparse flag questionable use of RCU-protected pointers
  660 
  661          Say N if you are unsure.
  662 
  663 config LOCKDEP
  664         bool
  665         depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
  666         select STACKTRACE
  667         select FRAME_POINTER if !MIPS && !PPC && !ARM_UNWIND && !S390 && !MICROBLAZE
  668         select KALLSYMS
  669         select KALLSYMS_ALL
  670 
  671 config LOCK_STAT
  672         bool "Lock usage statistics"
  673         depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
  674         select LOCKDEP
  675         select DEBUG_SPINLOCK
  676         select DEBUG_MUTEXES
  677         select DEBUG_LOCK_ALLOC
  678         default n
  679         help
  680          This feature enables tracking lock contention points
  681 
  682          For more details, see Documentation/lockstat.txt
  683 
  684          This also enables lock events required by "perf lock",
  685          subcommand of perf.
  686          If you want to use "perf lock", you also need to turn on
  687          CONFIG_EVENT_TRACING.
  688 
  689          CONFIG_LOCK_STAT defines "contended" and "acquired" lock events.
  690          (CONFIG_LOCKDEP defines "acquire" and "release" events.)
  691 
  692 config DEBUG_LOCKDEP
  693         bool "Lock dependency engine debugging"
  694         depends on DEBUG_KERNEL && LOCKDEP
  695         help
  696           If you say Y here, the lock dependency engine will do
  697           additional runtime checks to debug itself, at the price
  698           of more runtime overhead.
  699 
  700 config TRACE_IRQFLAGS
  701         bool
  702         help
  703           Enables hooks to interrupt enabling and disabling for
  704           either tracing or lock debugging.
  705 
  706 config DEBUG_ATOMIC_SLEEP
  707         bool "Sleep inside atomic section checking"
  708         select PREEMPT_COUNT
  709         depends on DEBUG_KERNEL
  710         help
  711           If you say Y here, various routines which may sleep will become very
  712           noisy if they are called inside atomic sections: when a spinlock is
  713           held, inside an rcu read side critical section, inside preempt disabled
  714           sections, inside an interrupt, etc...
  715 
  716 config DEBUG_LOCKING_API_SELFTESTS
  717         bool "Locking API boot-time self-tests"
  718         depends on DEBUG_KERNEL
  719         help
  720           Say Y here if you want the kernel to run a short self-test during
  721           bootup. The self-test checks whether common types of locking bugs
  722           are detected by debugging mechanisms or not. (if you disable
  723           lock debugging then those bugs wont be detected of course.)
  724           The following locking APIs are covered: spinlocks, rwlocks,
  725           mutexes and rwsems.
  726 
  727 config STACKTRACE
  728         bool
  729         depends on STACKTRACE_SUPPORT
  730 
  731 config DEBUG_STACK_USAGE
  732         bool "Stack utilization instrumentation"
  733         depends on DEBUG_KERNEL && !IA64 && !PARISC
  734         help
  735           Enables the display of the minimum amount of free stack which each
  736           task has ever had available in the sysrq-T and sysrq-P debug output.
  737 
  738           This option will slow down process creation somewhat.
  739 
  740 config DEBUG_KOBJECT
  741         bool "kobject debugging"
  742         depends on DEBUG_KERNEL
  743         help
  744           If you say Y here, some extra kobject debugging messages will be sent
  745           to the syslog. 
  746 
  747 config DEBUG_HIGHMEM
  748         bool "Highmem debugging"
  749         depends on DEBUG_KERNEL && HIGHMEM
  750         help
  751           This options enables addition error checking for high memory systems.
  752           Disable for production systems.
  753 
  754 config HAVE_DEBUG_BUGVERBOSE
  755         bool
  756 
  757 config DEBUG_BUGVERBOSE
  758         bool "Verbose BUG() reporting (adds 70K)" if DEBUG_KERNEL && EXPERT
  759         depends on BUG && (GENERIC_BUG || HAVE_DEBUG_BUGVERBOSE)
  760         default y
  761         help
  762           Say Y here to make BUG() panics output the file name and line number
  763           of the BUG call as well as the EIP and oops trace.  This aids
  764           debugging but costs about 70-100K of memory.
  765 
  766 config DEBUG_INFO
  767         bool "Compile the kernel with debug info"
  768         depends on DEBUG_KERNEL
  769         help
  770           If you say Y here the resulting kernel image will include
  771           debugging info resulting in a larger kernel image.
  772           This adds debug symbols to the kernel and modules (gcc -g), and
  773           is needed if you intend to use kernel crashdump or binary object
  774           tools like crash, kgdb, LKCD, gdb, etc on the kernel.
  775           Say Y here only if you plan to debug the kernel.
  776 
  777           If unsure, say N.
  778 
  779 config DEBUG_INFO_REDUCED
  780         bool "Reduce debugging information"
  781         depends on DEBUG_INFO
  782         help
  783           If you say Y here gcc is instructed to generate less debugging
  784           information for structure types. This means that tools that
  785           need full debugging information (like kgdb or systemtap) won't
  786           be happy. But if you merely need debugging information to
  787           resolve line numbers there is no loss. Advantage is that
  788           build directory object sizes shrink dramatically over a full
  789           DEBUG_INFO build and compile times are reduced too.
  790           Only works with newer gcc versions.
  791 
  792 config DEBUG_VM
  793         bool "Debug VM"
  794         depends on DEBUG_KERNEL
  795         help
  796           Enable this to turn on extended checks in the virtual-memory system
  797           that may impact performance.
  798 
  799           If unsure, say N.
  800 
  801 config DEBUG_VM_RB
  802         bool "Debug VM red-black trees"
  803         depends on DEBUG_VM
  804         help
  805           Enable this to turn on more extended checks in the virtual-memory
  806           system that may impact performance.
  807 
  808           If unsure, say N.
  809 
  810 config DEBUG_VIRTUAL
  811         bool "Debug VM translations"
  812         depends on DEBUG_KERNEL && X86
  813         help
  814           Enable some costly sanity checks in virtual to page code. This can
  815           catch mistakes with virt_to_page() and friends.
  816 
  817           If unsure, say N.
  818 
  819 config DEBUG_NOMMU_REGIONS
  820         bool "Debug the global anon/private NOMMU mapping region tree"
  821         depends on DEBUG_KERNEL && !MMU
  822         help
  823           This option causes the global tree of anonymous and private mapping
  824           regions to be regularly checked for invalid topology.
  825 
  826 config DEBUG_WRITECOUNT
  827         bool "Debug filesystem writers count"
  828         depends on DEBUG_KERNEL
  829         help
  830           Enable this to catch wrong use of the writers count in struct
  831           vfsmount.  This will increase the size of each file struct by
  832           32 bits.
  833 
  834           If unsure, say N.
  835 
  836 config DEBUG_MEMORY_INIT
  837         bool "Debug memory initialisation" if EXPERT
  838         default !EXPERT
  839         help
  840           Enable this for additional checks during memory initialisation.
  841           The sanity checks verify aspects of the VM such as the memory model
  842           and other information provided by the architecture. Verbose
  843           information will be printed at KERN_DEBUG loglevel depending
  844           on the mminit_loglevel= command-line option.
  845 
  846           If unsure, say Y
  847 
  848 config DEBUG_LIST
  849         bool "Debug linked list manipulation"
  850         depends on DEBUG_KERNEL
  851         help
  852           Enable this to turn on extended checks in the linked-list
  853           walking routines.
  854 
  855           If unsure, say N.
  856 
  857 config TEST_LIST_SORT
  858         bool "Linked list sorting test"
  859         depends on DEBUG_KERNEL
  860         help
  861           Enable this to turn on 'list_sort()' function test. This test is
  862           executed only once during system boot, so affects only boot time.
  863 
  864           If unsure, say N.
  865 
  866 config DEBUG_SG
  867         bool "Debug SG table operations"
  868         depends on DEBUG_KERNEL
  869         help
  870           Enable this to turn on checks on scatter-gather tables. This can
  871           help find problems with drivers that do not properly initialize
  872           their sg tables.
  873 
  874           If unsure, say N.
  875 
  876 config DEBUG_NOTIFIERS
  877         bool "Debug notifier call chains"
  878         depends on DEBUG_KERNEL
  879         help
  880           Enable this to turn on sanity checking for notifier call chains.
  881           This is most useful for kernel developers to make sure that
  882           modules properly unregister themselves from notifier chains.
  883           This is a relatively cheap check but if you care about maximum
  884           performance, say N.
  885 
  886 config DEBUG_CREDENTIALS
  887         bool "Debug credential management"
  888         depends on DEBUG_KERNEL
  889         help
  890           Enable this to turn on some debug checking for credential
  891           management.  The additional code keeps track of the number of
  892           pointers from task_structs to any given cred struct, and checks to
  893           see that this number never exceeds the usage count of the cred
  894           struct.
  895 
  896           Furthermore, if SELinux is enabled, this also checks that the
  897           security pointer in the cred struct is never seen to be invalid.
  898 
  899           If unsure, say N.
  900 
  901 #
  902 # Select this config option from the architecture Kconfig, if it
  903 # is preferred to always offer frame pointers as a config
  904 # option on the architecture (regardless of KERNEL_DEBUG):
  905 #
  906 config ARCH_WANT_FRAME_POINTERS
  907         bool
  908         help
  909 
  910 config FRAME_POINTER
  911         bool "Compile the kernel with frame pointers"
  912         depends on DEBUG_KERNEL && \
  913                 (CRIS || M68K || FRV || UML || \
  914                  AVR32 || SUPERH || BLACKFIN || MN10300) || \
  915                 ARCH_WANT_FRAME_POINTERS
  916         default y if (DEBUG_INFO && UML) || ARCH_WANT_FRAME_POINTERS
  917         help
  918           If you say Y here the resulting kernel image will be slightly
  919           larger and slower, but it gives very useful debugging information
  920           in case of kernel bugs. (precise oopses/stacktraces/warnings)
  921 
  922 config BOOT_PRINTK_DELAY
  923         bool "Delay each boot printk message by N milliseconds"
  924         depends on DEBUG_KERNEL && PRINTK && GENERIC_CALIBRATE_DELAY
  925         help
  926           This build option allows you to read kernel boot messages
  927           by inserting a short delay after each one.  The delay is
  928           specified in milliseconds on the kernel command line,
  929           using "boot_delay=N".
  930 
  931           It is likely that you would also need to use "lpj=M" to preset
  932           the "loops per jiffie" value.
  933           See a previous boot log for the "lpj" value to use for your
  934           system, and then set "lpj=M" before setting "boot_delay=N".
  935           NOTE:  Using this option may adversely affect SMP systems.
  936           I.e., processors other than the first one may not boot up.
  937           BOOT_PRINTK_DELAY also may cause LOCKUP_DETECTOR to detect
  938           what it believes to be lockup conditions.
  939 
  940 config RCU_TORTURE_TEST
  941         tristate "torture tests for RCU"
  942         depends on DEBUG_KERNEL
  943         default n
  944         help
  945           This option provides a kernel module that runs torture tests
  946           on the RCU infrastructure.  The kernel module may be built
  947           after the fact on the running kernel to be tested, if desired.
  948 
  949           Say Y here if you want RCU torture tests to be built into
  950           the kernel.
  951           Say M if you want the RCU torture tests to build as a module.
  952           Say N if you are unsure.
  953 
  954 config RCU_TORTURE_TEST_RUNNABLE
  955         bool "torture tests for RCU runnable by default"
  956         depends on RCU_TORTURE_TEST = y
  957         default n
  958         help
  959           This option provides a way to build the RCU torture tests
  960           directly into the kernel without them starting up at boot
  961           time.  You can use /proc/sys/kernel/rcutorture_runnable
  962           to manually override this setting.  This /proc file is
  963           available only when the RCU torture tests have been built
  964           into the kernel.
  965 
  966           Say Y here if you want the RCU torture tests to start during
  967           boot (you probably don't).
  968           Say N here if you want the RCU torture tests to start only
  969           after being manually enabled via /proc.
  970 
  971 config RCU_CPU_STALL_TIMEOUT
  972         int "RCU CPU stall timeout in seconds"
  973         depends on TREE_RCU || TREE_PREEMPT_RCU
  974         range 3 300
  975         default 21
  976         help
  977           If a given RCU grace period extends more than the specified
  978           number of seconds, a CPU stall warning is printed.  If the
  979           RCU grace period persists, additional CPU stall warnings are
  980           printed at more widely spaced intervals.
  981 
  982 config RCU_CPU_STALL_VERBOSE
  983         bool "Print additional per-task information for RCU_CPU_STALL_DETECTOR"
  984         depends on TREE_PREEMPT_RCU
  985         default y
  986         help
  987           This option causes RCU to printk detailed per-task information
  988           for any tasks that are stalling the current RCU grace period.
  989 
  990           Say N if you are unsure.
  991 
  992           Say Y if you want to enable such checks.
  993 
  994 config RCU_CPU_STALL_INFO
  995         bool "Print additional diagnostics on RCU CPU stall"
  996         depends on (TREE_RCU || TREE_PREEMPT_RCU) && DEBUG_KERNEL
  997         default n
  998         help
  999           For each stalled CPU that is aware of the current RCU grace
 1000           period, print out additional per-CPU diagnostic information
 1001           regarding scheduling-clock ticks, idle state, and,
 1002           for RCU_FAST_NO_HZ kernels, idle-entry state.
 1003 
 1004           Say N if you are unsure.
 1005 
 1006           Say Y if you want to enable such diagnostics.
 1007 
 1008 config RCU_TRACE
 1009         bool "Enable tracing for RCU"
 1010         depends on DEBUG_KERNEL
 1011         help
 1012           This option provides tracing in RCU which presents stats
 1013           in debugfs for debugging RCU implementation.
 1014 
 1015           Say Y here if you want to enable RCU tracing
 1016           Say N if you are unsure.
 1017 
 1018 config KPROBES_SANITY_TEST
 1019         bool "Kprobes sanity tests"
 1020         depends on DEBUG_KERNEL
 1021         depends on KPROBES
 1022         default n
 1023         help
 1024           This option provides for testing basic kprobes functionality on
 1025           boot. A sample kprobe, jprobe and kretprobe are inserted and
 1026           verified for functionality.
 1027 
 1028           Say N if you are unsure.
 1029 
 1030 config BACKTRACE_SELF_TEST
 1031         tristate "Self test for the backtrace code"
 1032         depends on DEBUG_KERNEL
 1033         default n
 1034         help
 1035           This option provides a kernel module that can be used to test
 1036           the kernel stack backtrace code. This option is not useful
 1037           for distributions or general kernels, but only for kernel
 1038           developers working on architecture code.
 1039 
 1040           Note that if you want to also test saved backtraces, you will
 1041           have to enable STACKTRACE as well.
 1042 
 1043           Say N if you are unsure.
 1044 
 1045 config DEBUG_BLOCK_EXT_DEVT
 1046         bool "Force extended block device numbers and spread them"
 1047         depends on DEBUG_KERNEL
 1048         depends on BLOCK
 1049         default n
 1050         help
 1051           BIG FAT WARNING: ENABLING THIS OPTION MIGHT BREAK BOOTING ON
 1052           SOME DISTRIBUTIONS.  DO NOT ENABLE THIS UNLESS YOU KNOW WHAT
 1053           YOU ARE DOING.  Distros, please enable this and fix whatever
 1054           is broken.
 1055 
 1056           Conventionally, block device numbers are allocated from
 1057           predetermined contiguous area.  However, extended block area
 1058           may introduce non-contiguous block device numbers.  This
 1059           option forces most block device numbers to be allocated from
 1060           the extended space and spreads them to discover kernel or
 1061           userland code paths which assume predetermined contiguous
 1062           device number allocation.
 1063 
 1064           Note that turning on this debug option shuffles all the
 1065           device numbers for all IDE and SCSI devices including libata
 1066           ones, so root partition specified using device number
 1067           directly (via rdev or root=MAJ:MIN) won't work anymore.
 1068           Textual device names (root=/dev/sdXn) will continue to work.
 1069 
 1070           Say N if you are unsure.
 1071 
 1072 config DEBUG_FORCE_WEAK_PER_CPU
 1073         bool "Force weak per-cpu definitions"
 1074         depends on DEBUG_KERNEL
 1075         help
 1076           s390 and alpha require percpu variables in modules to be
 1077           defined weak to work around addressing range issue which
 1078           puts the following two restrictions on percpu variable
 1079           definitions.
 1080 
 1081           1. percpu symbols must be unique whether static or not
 1082           2. percpu variables can't be defined inside a function
 1083 
 1084           To ensure that generic code follows the above rules, this
 1085           option forces all percpu variables to be defined as weak.
 1086 
 1087 config DEBUG_PER_CPU_MAPS
 1088         bool "Debug access to per_cpu maps"
 1089         depends on DEBUG_KERNEL
 1090         depends on SMP
 1091         help
 1092           Say Y to verify that the per_cpu map being accessed has
 1093           been set up. This adds a fair amount of code to kernel memory
 1094           and decreases performance.
 1095 
 1096           Say N if unsure.
 1097 
 1098 config LKDTM
 1099         tristate "Linux Kernel Dump Test Tool Module"
 1100         depends on DEBUG_FS
 1101         depends on BLOCK
 1102         default n
 1103         help
 1104         This module enables testing of the different dumping mechanisms by
 1105         inducing system failures at predefined crash points.
 1106         If you don't need it: say N
 1107         Choose M here to compile this code as a module. The module will be
 1108         called lkdtm.
 1109 
 1110         Documentation on how to use the module can be found in
 1111         Documentation/fault-injection/provoke-crashes.txt
 1112 
 1113 config NOTIFIER_ERROR_INJECTION
 1114         tristate "Notifier error injection"
 1115         depends on DEBUG_KERNEL
 1116         select DEBUG_FS
 1117         help
 1118           This option provides the ability to inject artificial errors to
 1119           specified notifier chain callbacks. It is useful to test the error
 1120           handling of notifier call chain failures.
 1121 
 1122           Say N if unsure.
 1123 
 1124 config CPU_NOTIFIER_ERROR_INJECT
 1125         tristate "CPU notifier error injection module"
 1126         depends on HOTPLUG_CPU && NOTIFIER_ERROR_INJECTION
 1127         help
 1128           This option provides a kernel module that can be used to test
 1129           the error handling of the cpu notifiers by injecting artificial
 1130           errors to CPU notifier chain callbacks.  It is controlled through
 1131           debugfs interface under /sys/kernel/debug/notifier-error-inject/cpu
 1132 
 1133           If the notifier call chain should be failed with some events
 1134           notified, write the error code to "actions/<notifier event>/error".
 1135 
 1136           Example: Inject CPU offline error (-1 == -EPERM)
 1137 
 1138           # cd /sys/kernel/debug/notifier-error-inject/cpu
 1139           # echo -1 > actions/CPU_DOWN_PREPARE/error
 1140           # echo 0 > /sys/devices/system/cpu/cpu1/online
 1141           bash: echo: write error: Operation not permitted
 1142 
 1143           To compile this code as a module, choose M here: the module will
 1144           be called cpu-notifier-error-inject.
 1145 
 1146           If unsure, say N.
 1147 
 1148 config PM_NOTIFIER_ERROR_INJECT
 1149         tristate "PM notifier error injection module"
 1150         depends on PM && NOTIFIER_ERROR_INJECTION
 1151         default m if PM_DEBUG
 1152         help
 1153           This option provides the ability to inject artificial errors to
 1154           PM notifier chain callbacks.  It is controlled through debugfs
 1155           interface /sys/kernel/debug/notifier-error-inject/pm
 1156 
 1157           If the notifier call chain should be failed with some events
 1158           notified, write the error code to "actions/<notifier event>/error".
 1159 
 1160           Example: Inject PM suspend error (-12 = -ENOMEM)
 1161 
 1162           # cd /sys/kernel/debug/notifier-error-inject/pm/
 1163           # echo -12 > actions/PM_SUSPEND_PREPARE/error
 1164           # echo mem > /sys/power/state
 1165           bash: echo: write error: Cannot allocate memory
 1166 
 1167           To compile this code as a module, choose M here: the module will
 1168           be called pm-notifier-error-inject.
 1169 
 1170           If unsure, say N.
 1171 
 1172 config MEMORY_NOTIFIER_ERROR_INJECT
 1173         tristate "Memory hotplug notifier error injection module"
 1174         depends on MEMORY_HOTPLUG_SPARSE && NOTIFIER_ERROR_INJECTION
 1175         help
 1176           This option provides the ability to inject artificial errors to
 1177           memory hotplug notifier chain callbacks.  It is controlled through
 1178           debugfs interface under /sys/kernel/debug/notifier-error-inject/memory
 1179 
 1180           If the notifier call chain should be failed with some events
 1181           notified, write the error code to "actions/<notifier event>/error".
 1182 
 1183           Example: Inject memory hotplug offline error (-12 == -ENOMEM)
 1184 
 1185           # cd /sys/kernel/debug/notifier-error-inject/memory
 1186           # echo -12 > actions/MEM_GOING_OFFLINE/error
 1187           # echo offline > /sys/devices/system/memory/memoryXXX/state
 1188           bash: echo: write error: Cannot allocate memory
 1189 
 1190           To compile this code as a module, choose M here: the module will
 1191           be called pSeries-reconfig-notifier-error-inject.
 1192 
 1193           If unsure, say N.
 1194 
 1195 config OF_RECONFIG_NOTIFIER_ERROR_INJECT
 1196         tristate "OF reconfig notifier error injection module"
 1197         depends on OF_DYNAMIC && NOTIFIER_ERROR_INJECTION
 1198         help
 1199           This option provides the ability to inject artificial errors to
 1200           OF reconfig notifier chain callbacks.  It is controlled
 1201           through debugfs interface under
 1202           /sys/kernel/debug/notifier-error-inject/OF-reconfig/
 1203 
 1204           If the notifier call chain should be failed with some events
 1205           notified, write the error code to "actions/<notifier event>/error".
 1206 
 1207           To compile this code as a module, choose M here: the module will
 1208           be called memory-notifier-error-inject.
 1209 
 1210           If unsure, say N.
 1211 
 1212 config FAULT_INJECTION
 1213         bool "Fault-injection framework"
 1214         depends on DEBUG_KERNEL
 1215         help
 1216           Provide fault-injection framework.
 1217           For more details, see Documentation/fault-injection/.
 1218 
 1219 config FAILSLAB
 1220         bool "Fault-injection capability for kmalloc"
 1221         depends on FAULT_INJECTION
 1222         depends on SLAB || SLUB
 1223         help
 1224           Provide fault-injection capability for kmalloc.
 1225 
 1226 config FAIL_PAGE_ALLOC
 1227         bool "Fault-injection capabilitiy for alloc_pages()"
 1228         depends on FAULT_INJECTION
 1229         help
 1230           Provide fault-injection capability for alloc_pages().
 1231 
 1232 config FAIL_MAKE_REQUEST
 1233         bool "Fault-injection capability for disk IO"
 1234         depends on FAULT_INJECTION && BLOCK
 1235         help
 1236           Provide fault-injection capability for disk IO.
 1237 
 1238 config FAIL_IO_TIMEOUT
 1239         bool "Fault-injection capability for faking disk interrupts"
 1240         depends on FAULT_INJECTION && BLOCK
 1241         help
 1242           Provide fault-injection capability on end IO handling. This
 1243           will make the block layer "forget" an interrupt as configured,
 1244           thus exercising the error handling.
 1245 
 1246           Only works with drivers that use the generic timeout handling,
 1247           for others it wont do anything.
 1248 
 1249 config FAIL_MMC_REQUEST
 1250         bool "Fault-injection capability for MMC IO"
 1251         select DEBUG_FS
 1252         depends on FAULT_INJECTION && MMC
 1253         help
 1254           Provide fault-injection capability for MMC IO.
 1255           This will make the mmc core return data errors. This is
 1256           useful to test the error handling in the mmc block device
 1257           and to test how the mmc host driver handles retries from
 1258           the block device.
 1259 
 1260 config FAULT_INJECTION_DEBUG_FS
 1261         bool "Debugfs entries for fault-injection capabilities"
 1262         depends on FAULT_INJECTION && SYSFS && DEBUG_FS
 1263         help
 1264           Enable configuration of fault-injection capabilities via debugfs.
 1265 
 1266 config FAULT_INJECTION_STACKTRACE_FILTER
 1267         bool "stacktrace filter for fault-injection capabilities"
 1268         depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT
 1269         depends on !X86_64
 1270         select STACKTRACE
 1271         select FRAME_POINTER if !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND
 1272         help
 1273           Provide stacktrace filter for fault-injection capabilities
 1274 
 1275 config LATENCYTOP
 1276         bool "Latency measuring infrastructure"
 1277         depends on HAVE_LATENCYTOP_SUPPORT
 1278         depends on DEBUG_KERNEL
 1279         depends on STACKTRACE_SUPPORT
 1280         depends on PROC_FS
 1281         select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND
 1282         select KALLSYMS
 1283         select KALLSYMS_ALL
 1284         select STACKTRACE
 1285         select SCHEDSTATS
 1286         select SCHED_DEBUG
 1287         help
 1288           Enable this option if you want to use the LatencyTOP tool
 1289           to find out which userspace is blocking on what kernel operations.
 1290 
 1291 source mm/Kconfig.debug
 1292 source kernel/trace/Kconfig
 1293 
 1294 config RBTREE_TEST
 1295         tristate "Red-Black tree test"
 1296         depends on m && DEBUG_KERNEL
 1297         help
 1298           A benchmark measuring the performance of the rbtree library.
 1299           Also includes rbtree invariant checks.
 1300 
 1301 config INTERVAL_TREE_TEST
 1302         tristate "Interval tree test"
 1303         depends on m && DEBUG_KERNEL
 1304         help
 1305           A benchmark measuring the performance of the interval tree library
 1306 
 1307 config PROVIDE_OHCI1394_DMA_INIT
 1308         bool "Remote debugging over FireWire early on boot"
 1309         depends on PCI && X86
 1310         help
 1311           If you want to debug problems which hang or crash the kernel early
 1312           on boot and the crashing machine has a FireWire port, you can use
 1313           this feature to remotely access the memory of the crashed machine
 1314           over FireWire. This employs remote DMA as part of the OHCI1394
 1315           specification which is now the standard for FireWire controllers.
 1316 
 1317           With remote DMA, you can monitor the printk buffer remotely using
 1318           firescope and access all memory below 4GB using fireproxy from gdb.
 1319           Even controlling a kernel debugger is possible using remote DMA.
 1320 
 1321           Usage:
 1322 
 1323           If ohci1394_dma=early is used as boot parameter, it will initialize
 1324           all OHCI1394 controllers which are found in the PCI config space.
 1325 
 1326           As all changes to the FireWire bus such as enabling and disabling
 1327           devices cause a bus reset and thereby disable remote DMA for all
 1328           devices, be sure to have the cable plugged and FireWire enabled on
 1329           the debugging host before booting the debug target for debugging.
 1330 
 1331           This code (~1k) is freed after boot. By then, the firewire stack
 1332           in charge of the OHCI-1394 controllers should be used instead.
 1333 
 1334           See Documentation/debugging-via-ohci1394.txt for more information.
 1335 
 1336 config FIREWIRE_OHCI_REMOTE_DMA
 1337         bool "Remote debugging over FireWire with firewire-ohci"
 1338         depends on FIREWIRE_OHCI
 1339         help
 1340           This option lets you use the FireWire bus for remote debugging
 1341           with help of the firewire-ohci driver. It enables unfiltered
 1342           remote DMA in firewire-ohci.
 1343           See Documentation/debugging-via-ohci1394.txt for more information.
 1344 
 1345           If unsure, say N.
 1346 
 1347 config BUILD_DOCSRC
 1348         bool "Build targets in Documentation/ tree"
 1349         depends on HEADERS_CHECK
 1350         help
 1351           This option attempts to build objects from the source files in the
 1352           kernel Documentation/ tree.
 1353 
 1354           Say N if you are unsure.
 1355 
 1356 config DYNAMIC_DEBUG
 1357         bool "Enable dynamic printk() support"
 1358         default n
 1359         depends on PRINTK
 1360         depends on DEBUG_FS
 1361         help
 1362 
 1363           Compiles debug level messages into the kernel, which would not
 1364           otherwise be available at runtime. These messages can then be
 1365           enabled/disabled based on various levels of scope - per source file,
 1366           function, module, format string, and line number. This mechanism
 1367           implicitly compiles in all pr_debug() and dev_dbg() calls, which
 1368           enlarges the kernel text size by about 2%.
 1369 
 1370           If a source file is compiled with DEBUG flag set, any
 1371           pr_debug() calls in it are enabled by default, but can be
 1372           disabled at runtime as below.  Note that DEBUG flag is
 1373           turned on by many CONFIG_*DEBUG* options.
 1374 
 1375           Usage:
 1376 
 1377           Dynamic debugging is controlled via the 'dynamic_debug/control' file,
 1378           which is contained in the 'debugfs' filesystem. Thus, the debugfs
 1379           filesystem must first be mounted before making use of this feature.
 1380           We refer the control file as: <debugfs>/dynamic_debug/control. This
 1381           file contains a list of the debug statements that can be enabled. The
 1382           format for each line of the file is:
 1383 
 1384                 filename:lineno [module]function flags format
 1385 
 1386           filename : source file of the debug statement
 1387           lineno : line number of the debug statement
 1388           module : module that contains the debug statement
 1389           function : function that contains the debug statement
 1390           flags : '=p' means the line is turned 'on' for printing
 1391           format : the format used for the debug statement
 1392 
 1393           From a live system:
 1394 
 1395                 nullarbor:~ # cat <debugfs>/dynamic_debug/control
 1396                 # filename:lineno [module]function flags format
 1397                 fs/aio.c:222 [aio]__put_ioctx =_ "__put_ioctx:\040freeing\040%p\012"
 1398                 fs/aio.c:248 [aio]ioctx_alloc =_ "ENOMEM:\040nr_events\040too\040high\012"
 1399                 fs/aio.c:1770 [aio]sys_io_cancel =_ "calling\040cancel\012"
 1400 
 1401           Example usage:
 1402 
 1403                 // enable the message at line 1603 of file svcsock.c
 1404                 nullarbor:~ # echo -n 'file svcsock.c line 1603 +p' >
 1405                                                 <debugfs>/dynamic_debug/control
 1406 
 1407                 // enable all the messages in file svcsock.c
 1408                 nullarbor:~ # echo -n 'file svcsock.c +p' >
 1409                                                 <debugfs>/dynamic_debug/control
 1410 
 1411                 // enable all the messages in the NFS server module
 1412                 nullarbor:~ # echo -n 'module nfsd +p' >
 1413                                                 <debugfs>/dynamic_debug/control
 1414 
 1415                 // enable all 12 messages in the function svc_process()
 1416                 nullarbor:~ # echo -n 'func svc_process +p' >
 1417                                                 <debugfs>/dynamic_debug/control
 1418 
 1419                 // disable all 12 messages in the function svc_process()
 1420                 nullarbor:~ # echo -n 'func svc_process -p' >
 1421                                                 <debugfs>/dynamic_debug/control
 1422 
 1423           See Documentation/dynamic-debug-howto.txt for additional information.
 1424 
 1425 config DMA_API_DEBUG
 1426         bool "Enable debugging of DMA-API usage"
 1427         depends on HAVE_DMA_API_DEBUG
 1428         help
 1429           Enable this option to debug the use of the DMA API by device drivers.
 1430           With this option you will be able to detect common bugs in device
 1431           drivers like double-freeing of DMA mappings or freeing mappings that
 1432           were never allocated.
 1433           This option causes a performance degredation.  Use only if you want
 1434           to debug device drivers. If unsure, say N.
 1435 
 1436 config ATOMIC64_SELFTEST
 1437         bool "Perform an atomic64_t self-test at boot"
 1438         help
 1439           Enable this option to test the atomic64_t functions at boot.
 1440 
 1441           If unsure, say N.
 1442 
 1443 config ASYNC_RAID6_TEST
 1444         tristate "Self test for hardware accelerated raid6 recovery"
 1445         depends on ASYNC_RAID6_RECOV
 1446         select ASYNC_MEMCPY
 1447         ---help---
 1448           This is a one-shot self test that permutes through the
 1449           recovery of all the possible two disk failure scenarios for a
 1450           N-disk array.  Recovery is performed with the asynchronous
 1451           raid6 recovery routines, and will optionally use an offload
 1452           engine if one is available.
 1453 
 1454           If unsure, say N.
 1455 
 1456 source "samples/Kconfig"
 1457 
 1458 source "lib/Kconfig.kgdb"
 1459 
 1460 source "lib/Kconfig.kmemcheck"
 1461 
 1462 config TEST_KSTRTOX
 1463         tristate "Test kstrto*() family of functions at runtime"

Cache object: fd0a24b5db9aef995dae768d88fcbf1d


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.