linux/lib/Kconfig.debug
<<
>>
Prefs
   1
   2config 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
  17config 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
  28config 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
  36config 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
  44config 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
  55config 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
  69config 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
  77config 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
  86config 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
 102config 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
 114config 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
 128config 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, __devinit, 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
 159config 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
 165config 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
 174config 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
 198config HARDLOCKUP_DETECTOR
 199        def_bool y
 200        depends on LOCKUP_DETECTOR && !HAVE_NMI_WATCHDOG
 201        depends on PERF_EVENTS && HAVE_PERF_EVENTS_NMI
 202
 203config 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
 214config 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
 221config 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
 238config 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
 245config 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
 259config 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
 265config 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
 280config 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
 296config 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
 312config 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
 319config 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
 328config 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
 340config 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
 354config 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
 362config 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
 368config 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
 377config 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
 385config 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
 393config 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
 399config 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
 407config 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
 415config 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
 423config DEBUG_SLAB_LEAK
 424        bool "Memory leak debugging"
 425        depends on DEBUG_SLAB
 426
 427config 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
 440config 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
 453config HAVE_DEBUG_KMEMLEAK
 454        bool
 455
 456config 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
 479config 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
 491config 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
 499config 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
 506config 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
 516config 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
 523config DEBUG_PI_LIST
 524        bool
 525        default y
 526        depends on DEBUG_RT_MUTEXES
 527
 528config 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
 534config 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
 544config 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
 551config 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
 565config 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
 608config 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
 620config 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
 634config 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
 648config 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
 663config 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
 671config 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
 692config 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
 700config TRACE_IRQFLAGS
 701        bool
 702        help
 703          Enables hooks to interrupt enabling and disabling for
 704          either tracing or lock debugging.
 705
 706config 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
 716config 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
 727config STACKTRACE
 728        bool
 729        depends on STACKTRACE_SUPPORT
 730
 731config 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
 740config 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
 747config 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
 754config HAVE_DEBUG_BUGVERBOSE
 755        bool
 756
 757config 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
 766config 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
 779config 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
 792config 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
 801config 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
 810config 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
 819config 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
 826config 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
 836config 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
 848config 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
 857config 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
 866config 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
 876config 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
 886config 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#
 906config ARCH_WANT_FRAME_POINTERS
 907        bool
 908        help
 909
 910config 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
 922config 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
 940config 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
 954config 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
 971config 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 60
 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
 982config 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
 994config 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
1008config 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
1018config 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
1030config 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
1045config 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
1072config 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
1087config 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
1098config 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
1113config 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 artifical 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
1124config 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 artifical
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
1148config 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 artifical 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
1172config 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 artifical 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
1195config PSERIES_RECONFIG_NOTIFIER_ERROR_INJECT
1196        tristate "pSeries reconfig notifier error injection module"
1197        depends on PPC_PSERIES && NOTIFIER_ERROR_INJECTION
1198        help
1199          This option provides the ability to inject artifical errors to
1200          pSeries reconfig notifier chain callbacks.  It is controlled
1201          through debugfs interface under
1202          /sys/kernel/debug/notifier-error-inject/pSeries-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
1212config 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
1219config 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
1226config 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
1232config 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
1238config 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
1249config 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
1260config 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
1266config 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
1275config 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
1291source mm/Kconfig.debug
1292source kernel/trace/Kconfig
1293
1294config 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
1301config 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
1307config 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
1336config 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
1347config 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
1356config 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
1425config 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
1436config 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
1443config 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
1456source "samples/Kconfig"
1457
1458source "lib/Kconfig.kgdb"
1459
1460source "lib/Kconfig.kmemcheck"
1461
1462config TEST_KSTRTOX
1463        tristate "Test kstrto*() family of functions at runtime"
1464
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.