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 timing information to be
   7          included in printk output.  This allows you to measure
   8          the interval between kernel operations, including bootup
   9          operations.  This is useful for identifying long delays
  10          in kernel startup.
  11
  12config ENABLE_WARN_DEPRECATED
  13        bool "Enable __deprecated logic"
  14        default y
  15        help
  16          Enable the __deprecated logic in the kernel build.
  17          Disable this to suppress the "warning: 'foo' is deprecated
  18          (declared at kernel/power/somefile.c:1234)" messages.
  19
  20config ENABLE_MUST_CHECK
  21        bool "Enable __must_check logic"
  22        default y
  23        help
  24          Enable the __must_check logic in the kernel build.  Disable this to
  25          suppress the "warning: ignoring return value of 'foo', declared with
  26          attribute warn_unused_result" messages.
  27
  28config FRAME_WARN
  29        int "Warn for stack frames larger than (needs gcc 4.4)"
  30        range 0 8192
  31        default 1024 if !64BIT
  32        default 2048 if 64BIT
  33        help
  34          Tell gcc to warn at build time for stack frames larger than this.
  35          Setting this too low will cause a lot of warnings.
  36          Setting it to 0 disables the warning.
  37          Requires gcc 4.4
  38
  39config MAGIC_SYSRQ
  40        bool "Magic SysRq key"
  41        depends on !UML
  42        help
  43          If you say Y here, you will have some control over the system even
  44          if the system crashes for example during kernel debugging (e.g., you
  45          will be able to flush the buffer cache to disk, reboot the system
  46          immediately or dump some status information). This is accomplished
  47          by pressing various keys while holding SysRq (Alt+PrintScreen). It
  48          also works on a serial console (on PC hardware at least), if you
  49          send a BREAK and then within 5 seconds a command keypress. The
  50          keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
  51          unless you really know what this hack does.
  52
  53config UNUSED_SYMBOLS
  54        bool "Enable unused/obsolete exported symbols"
  55        default y if X86
  56        help
  57          Unused but exported symbols make the kernel needlessly bigger.  For
  58          that reason most of these unused exports will soon be removed.  This
  59          option is provided temporarily to provide a transition period in case
  60          some external kernel module needs one of these symbols anyway. If you
  61          encounter such a case in your module, consider if you are actually
  62          using the right API.  (rationale: since nobody in the kernel is using
  63          this in a module, there is a pretty good chance it's actually the
  64          wrong interface to use).  If you really need the symbol, please send a
  65          mail to the linux kernel mailing list mentioning the symbol and why
  66          you really need it, and what the merge plan to the mainline kernel for
  67          your module is.
  68
  69config DEBUG_FS
  70        bool "Debug Filesystem"
  71        depends on SYSFS
  72        help
  73          debugfs is a virtual file system that kernel developers use to put
  74          debugging files into.  Enable this option to be able to read and
  75          write to these files.
  76
  77          For detailed documentation on the debugfs API, see
  78          Documentation/DocBook/filesystems.
  79
  80          If unsure, say N.
  81
  82config HEADERS_CHECK
  83        bool "Run 'make headers_check' when building vmlinux"
  84        depends on !UML
  85        help
  86          This option will extract the user-visible kernel headers whenever
  87          building the kernel, and will run basic sanity checks on them to
  88          ensure that exported files do not attempt to include files which
  89          were not exported, etc.
  90
  91          If you're making modifications to header files which are
  92          relevant for userspace, say 'Y', and check the headers
  93          exported to $(INSTALL_HDR_PATH) (usually 'usr/include' in
  94          your build tree), to make sure they're suitable.
  95
  96config DEBUG_SECTION_MISMATCH
  97        bool "Enable full Section mismatch analysis"
  98        depends on UNDEFINED
  99        # This option is on purpose disabled for now.
 100        # It will be enabled when we are down to a resonable number
 101        # of section mismatch warnings (< 10 for an allyesconfig build)
 102        help
 103          The section mismatch analysis checks if there are illegal
 104          references from one section to another section.
 105          Linux will during link or during runtime drop some sections
 106          and any use of code/data previously in these sections will
 107          most likely result in an oops.
 108          In the code functions and variables are annotated with
 109          __init, __devinit etc. (see full list in include/linux/init.h)
 110          which results in the code/data being placed in specific sections.
 111          The section mismatch analysis is always done after a full
 112          kernel build but enabling this option will in addition
 113          do the following:
 114          - Add the option -fno-inline-functions-called-once to gcc
 115            When inlining a function annotated __init in a non-init
 116            function we would lose the section information and thus
 117            the analysis would not catch the illegal reference.
 118            This option tells gcc to inline less but will also
 119            result in a larger kernel.
 120          - Run the section mismatch analysis for each module/built-in.o
 121            When we run the section mismatch analysis on vmlinux.o we
 122            lose valueble information about where the mismatch was
 123            introduced.
 124            Running the analysis for each module/built-in.o file
 125            will tell where the mismatch happens much closer to the
 126            source. The drawback is that we will report the same
 127            mismatch at least twice.
 128          - Enable verbose reporting from modpost to help solving
 129            the section mismatches reported.
 130
 131config DEBUG_KERNEL
 132        bool "Kernel debugging"
 133        help
 134          Say Y here if you are developing drivers or trying to debug and
 135          identify kernel problems.
 136
 137config DEBUG_SHIRQ
 138        bool "Debug shared IRQ handlers"
 139        depends on DEBUG_KERNEL && GENERIC_HARDIRQS
 140        help
 141          Enable this to generate a spurious interrupt as soon as a shared
 142          interrupt handler is registered, and just before one is deregistered.
 143          Drivers ought to be able to handle interrupts coming in at those
 144          points; some don't and need to be caught.
 145
 146config DETECT_SOFTLOCKUP
 147        bool "Detect Soft Lockups"
 148        depends on DEBUG_KERNEL && !S390
 149        default y
 150        help
 151          Say Y here to enable the kernel to detect "soft lockups",
 152          which are bugs that cause the kernel to loop in kernel
 153          mode for more than 60 seconds, without giving other tasks a
 154          chance to run.
 155
 156          When a soft-lockup is detected, the kernel will print the
 157          current stack trace (which you should report), but the
 158          system will stay locked up. This feature has negligible
 159          overhead.
 160
 161          (Note that "hard lockups" are separate type of bugs that
 162           can be detected via the NMI-watchdog, on platforms that
 163           support it.)
 164
 165config BOOTPARAM_SOFTLOCKUP_PANIC
 166        bool "Panic (Reboot) On Soft Lockups"
 167        depends on DETECT_SOFTLOCKUP
 168        help
 169          Say Y here to enable the kernel to panic on "soft lockups",
 170          which are bugs that cause the kernel to loop in kernel
 171          mode for more than 60 seconds, without giving other tasks a
 172          chance to run.
 173
 174          The panic can be used in combination with panic_timeout,
 175          to cause the system to reboot automatically after a
 176          lockup has been detected. This feature is useful for
 177          high-availability systems that have uptime guarantees and
 178          where a lockup must be resolved ASAP.
 179
 180          Say N if unsure.
 181
 182config BOOTPARAM_SOFTLOCKUP_PANIC_VALUE
 183        int
 184        depends on DETECT_SOFTLOCKUP
 185        range 0 1
 186        default 0 if !BOOTPARAM_SOFTLOCKUP_PANIC
 187        default 1 if BOOTPARAM_SOFTLOCKUP_PANIC
 188
 189config SCHED_DEBUG
 190        bool "Collect scheduler debugging info"
 191        depends on DEBUG_KERNEL && PROC_FS
 192        default y
 193        help
 194          If you say Y here, the /proc/sched_debug file will be provided
 195          that can help debug the scheduler. The runtime overhead of this
 196          option is minimal.
 197
 198config SCHEDSTATS
 199        bool "Collect scheduler statistics"
 200        depends on DEBUG_KERNEL && PROC_FS
 201        help
 202          If you say Y here, additional code will be inserted into the
 203          scheduler and related routines to collect statistics about
 204          scheduler behavior and provide them in /proc/schedstat.  These
 205          stats may be useful for both tuning and debugging the scheduler
 206          If you aren't debugging the scheduler or trying to tune a specific
 207          application, you can say N to avoid the very slight overhead
 208          this adds.
 209
 210config TIMER_STATS
 211        bool "Collect kernel timers statistics"
 212        depends on DEBUG_KERNEL && PROC_FS
 213        help
 214          If you say Y here, additional code will be inserted into the
 215          timer routines to collect statistics about kernel timers being
 216          reprogrammed. The statistics can be read from /proc/timer_stats.
 217          The statistics collection is started by writing 1 to /proc/timer_stats,
 218          writing 0 stops it. This feature is useful to collect information
 219          about timer usage patterns in kernel and userspace. This feature
 220          is lightweight if enabled in the kernel config but not activated
 221          (it defaults to deactivated on bootup and will only be activated
 222          if some application like powertop activates it explicitly).
 223
 224config DEBUG_OBJECTS
 225        bool "Debug object operations"
 226        depends on DEBUG_KERNEL
 227        help
 228          If you say Y here, additional code will be inserted into the
 229          kernel to track the life time of various objects and validate
 230          the operations on those objects.
 231
 232config DEBUG_OBJECTS_SELFTEST
 233        bool "Debug objects selftest"
 234        depends on DEBUG_OBJECTS
 235        help
 236          This enables the selftest of the object debug code.
 237
 238config DEBUG_OBJECTS_FREE
 239        bool "Debug objects in freed memory"
 240        depends on DEBUG_OBJECTS
 241        help
 242          This enables checks whether a k/v free operation frees an area
 243          which contains an object which has not been deactivated
 244          properly. This can make kmalloc/kfree-intensive workloads
 245          much slower.
 246
 247config DEBUG_OBJECTS_TIMERS
 248        bool "Debug timer objects"
 249        depends on DEBUG_OBJECTS
 250        help
 251          If you say Y here, additional code will be inserted into the
 252          timer routines to track the life time of timer objects and
 253          validate the timer operations.
 254
 255config DEBUG_OBJECTS_ENABLE_DEFAULT
 256        int "debug_objects bootup default value (0-1)"
 257        range 0 1
 258        default "1"
 259        depends on DEBUG_OBJECTS
 260        help
 261          Debug objects boot parameter default value
 262
 263config DEBUG_SLAB
 264        bool "Debug slab memory allocations"
 265        depends on DEBUG_KERNEL && SLAB
 266        help
 267          Say Y here to have the kernel do limited verification on memory
 268          allocation as well as poisoning memory on free to catch use of freed
 269          memory. This can make kmalloc/kfree-intensive workloads much slower.
 270
 271config DEBUG_SLAB_LEAK
 272        bool "Memory leak debugging"
 273        depends on DEBUG_SLAB
 274
 275config SLUB_DEBUG_ON
 276        bool "SLUB debugging on by default"
 277        depends on SLUB && SLUB_DEBUG
 278        default n
 279        help
 280          Boot with debugging on by default. SLUB boots by default with
 281          the runtime debug capabilities switched off. Enabling this is
 282          equivalent to specifying the "slub_debug" parameter on boot.
 283          There is no support for more fine grained debug control like
 284          possible with slub_debug=xxx. SLUB debugging may be switched
 285          off in a kernel built with CONFIG_SLUB_DEBUG_ON by specifying
 286          "slub_debug=-".
 287
 288config SLUB_STATS
 289        default n
 290        bool "Enable SLUB performance statistics"
 291        depends on SLUB && SLUB_DEBUG && SYSFS
 292        help
 293          SLUB statistics are useful to debug SLUBs allocation behavior in
 294          order find ways to optimize the allocator. This should never be
 295          enabled for production use since keeping statistics slows down
 296          the allocator by a few percentage points. The slabinfo command
 297          supports the determination of the most active slabs to figure
 298          out which slabs are relevant to a particular load.
 299          Try running: slabinfo -DA
 300
 301config DEBUG_PREEMPT
 302        bool "Debug preemptible kernel"
 303        depends on DEBUG_KERNEL && PREEMPT && (TRACE_IRQFLAGS_SUPPORT || PPC64)
 304        default y
 305        help
 306          If you say Y here then the kernel will use a debug variant of the
 307          commonly used smp_processor_id() function and will print warnings
 308          if kernel code uses it in a preemption-unsafe way. Also, the kernel
 309          will detect preemption count underflows.
 310
 311config DEBUG_RT_MUTEXES
 312        bool "RT Mutex debugging, deadlock detection"
 313        depends on DEBUG_KERNEL && RT_MUTEXES
 314        help
 315         This allows rt mutex semantics violations and rt mutex related
 316         deadlocks (lockups) to be detected and reported automatically.
 317
 318config DEBUG_PI_LIST
 319        bool
 320        default y
 321        depends on DEBUG_RT_MUTEXES
 322
 323config RT_MUTEX_TESTER
 324        bool "Built-in scriptable tester for rt-mutexes"
 325        depends on DEBUG_KERNEL && RT_MUTEXES
 326        help
 327          This option enables a rt-mutex tester.
 328
 329config DEBUG_SPINLOCK
 330        bool "Spinlock and rw-lock debugging: basic checks"
 331        depends on DEBUG_KERNEL
 332        help
 333          Say Y here and build SMP to catch missing spinlock initialization
 334          and certain other kinds of spinlock errors commonly made.  This is
 335          best used in conjunction with the NMI watchdog so that spinlock
 336          deadlocks are also debuggable.
 337
 338config DEBUG_MUTEXES
 339        bool "Mutex debugging: basic checks"
 340        depends on DEBUG_KERNEL
 341        help
 342         This feature allows mutex semantics violations to be detected and
 343         reported.
 344
 345config DEBUG_LOCK_ALLOC
 346        bool "Lock debugging: detect incorrect freeing of live locks"
 347        depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
 348        select DEBUG_SPINLOCK
 349        select DEBUG_MUTEXES
 350        select LOCKDEP
 351        help
 352         This feature will check whether any held lock (spinlock, rwlock,
 353         mutex or rwsem) is incorrectly freed by the kernel, via any of the
 354         memory-freeing routines (kfree(), kmem_cache_free(), free_pages(),
 355         vfree(), etc.), whether a live lock is incorrectly reinitialized via
 356         spin_lock_init()/mutex_init()/etc., or whether there is any lock
 357         held during task exit.
 358
 359config PROVE_LOCKING
 360        bool "Lock debugging: prove locking correctness"
 361        depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
 362        select LOCKDEP
 363        select DEBUG_SPINLOCK
 364        select DEBUG_MUTEXES
 365        select DEBUG_LOCK_ALLOC
 366        default n
 367        help
 368         This feature enables the kernel to prove that all locking
 369         that occurs in the kernel runtime is mathematically
 370         correct: that under no circumstance could an arbitrary (and
 371         not yet triggered) combination of observed locking
 372         sequences (on an arbitrary number of CPUs, running an
 373         arbitrary number of tasks and interrupt contexts) cause a
 374         deadlock.
 375
 376         In short, this feature enables the kernel to report locking
 377         related deadlocks before they actually occur.
 378
 379         The proof does not depend on how hard and complex a
 380         deadlock scenario would be to trigger: how many
 381         participant CPUs, tasks and irq-contexts would be needed
 382         for it to trigger. The proof also does not depend on
 383         timing: if a race and a resulting deadlock is possible
 384         theoretically (no matter how unlikely the race scenario
 385         is), it will be proven so and will immediately be
 386         reported by the kernel (once the event is observed that
 387         makes the deadlock theoretically possible).
 388
 389         If a deadlock is impossible (i.e. the locking rules, as
 390         observed by the kernel, are mathematically correct), the
 391         kernel reports nothing.
 392
 393         NOTE: this feature can also be enabled for rwlocks, mutexes
 394         and rwsems - in which case all dependencies between these
 395         different locking variants are observed and mapped too, and
 396         the proof of observed correctness is also maintained for an
 397         arbitrary combination of these separate locking variants.
 398
 399         For more details, see Documentation/lockdep-design.txt.
 400
 401config LOCKDEP
 402        bool
 403        depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
 404        select STACKTRACE
 405        select FRAME_POINTER if !X86 && !MIPS && !PPC
 406        select KALLSYMS
 407        select KALLSYMS_ALL
 408
 409config LOCK_STAT
 410        bool "Lock usage statistics"
 411        depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
 412        select LOCKDEP
 413        select DEBUG_SPINLOCK
 414        select DEBUG_MUTEXES
 415        select DEBUG_LOCK_ALLOC
 416        default n
 417        help
 418         This feature enables tracking lock contention points
 419
 420         For more details, see Documentation/lockstat.txt
 421
 422config DEBUG_LOCKDEP
 423        bool "Lock dependency engine debugging"
 424        depends on DEBUG_KERNEL && LOCKDEP
 425        help
 426          If you say Y here, the lock dependency engine will do
 427          additional runtime checks to debug itself, at the price
 428          of more runtime overhead.
 429
 430config TRACE_IRQFLAGS
 431        depends on DEBUG_KERNEL
 432        bool
 433        default y
 434        depends on TRACE_IRQFLAGS_SUPPORT
 435        depends on PROVE_LOCKING
 436
 437config DEBUG_SPINLOCK_SLEEP
 438        bool "Spinlock debugging: sleep-inside-spinlock checking"
 439        depends on DEBUG_KERNEL
 440        help
 441          If you say Y here, various routines which may sleep will become very
 442          noisy if they are called with a spinlock held.
 443
 444config DEBUG_LOCKING_API_SELFTESTS
 445        bool "Locking API boot-time self-tests"
 446        depends on DEBUG_KERNEL
 447        help
 448          Say Y here if you want the kernel to run a short self-test during
 449          bootup. The self-test checks whether common types of locking bugs
 450          are detected by debugging mechanisms or not. (if you disable
 451          lock debugging then those bugs wont be detected of course.)
 452          The following locking APIs are covered: spinlocks, rwlocks,
 453          mutexes and rwsems.
 454
 455config STACKTRACE
 456        bool
 457        depends on STACKTRACE_SUPPORT
 458
 459config DEBUG_KOBJECT
 460        bool "kobject debugging"
 461        depends on DEBUG_KERNEL
 462        help
 463          If you say Y here, some extra kobject debugging messages will be sent
 464          to the syslog. 
 465
 466config DEBUG_HIGHMEM
 467        bool "Highmem debugging"
 468        depends on DEBUG_KERNEL && HIGHMEM
 469        help
 470          This options enables addition error checking for high memory systems.
 471          Disable for production systems.
 472
 473config DEBUG_BUGVERBOSE
 474        bool "Verbose BUG() reporting (adds 70K)" if DEBUG_KERNEL && EMBEDDED
 475        depends on BUG
 476        depends on ARM || AVR32 || M32R || M68K || SPARC32 || SPARC64 || \
 477                   FRV || SUPERH || GENERIC_BUG || BLACKFIN || MN10300
 478        default !EMBEDDED
 479        help
 480          Say Y here to make BUG() panics output the file name and line number
 481          of the BUG call as well as the EIP and oops trace.  This aids
 482          debugging but costs about 70-100K of memory.
 483
 484config DEBUG_INFO
 485        bool "Compile the kernel with debug info"
 486        depends on DEBUG_KERNEL
 487        help
 488          If you say Y here the resulting kernel image will include
 489          debugging info resulting in a larger kernel image.
 490          This adds debug symbols to the kernel and modules (gcc -g), and
 491          is needed if you intend to use kernel crashdump or binary object
 492          tools like crash, kgdb, LKCD, gdb, etc on the kernel.
 493          Say Y here only if you plan to debug the kernel.
 494
 495          If unsure, say N.
 496
 497config DEBUG_VM
 498        bool "Debug VM"
 499        depends on DEBUG_KERNEL
 500        help
 501          Enable this to turn on extended checks in the virtual-memory system
 502          that may impact performance.
 503
 504          If unsure, say N.
 505
 506config DEBUG_VIRTUAL
 507        bool "Debug VM translations"
 508        depends on DEBUG_KERNEL && X86
 509        help
 510          Enable some costly sanity checks in virtual to page code. This can
 511          catch mistakes with virt_to_page() and friends.
 512
 513          If unsure, say N.
 514
 515config DEBUG_NOMMU_REGIONS
 516        bool "Debug the global anon/private NOMMU mapping region tree"
 517        depends on DEBUG_KERNEL && !MMU
 518        help
 519          This option causes the global tree of anonymous and private mapping
 520          regions to be regularly checked for invalid topology.
 521
 522config DEBUG_WRITECOUNT
 523        bool "Debug filesystem writers count"
 524        depends on DEBUG_KERNEL
 525        help
 526          Enable this to catch wrong use of the writers count in struct
 527          vfsmount.  This will increase the size of each file struct by
 528          32 bits.
 529
 530          If unsure, say N.
 531
 532config DEBUG_MEMORY_INIT
 533        bool "Debug memory initialisation" if EMBEDDED
 534        default !EMBEDDED
 535        help
 536          Enable this for additional checks during memory initialisation.
 537          The sanity checks verify aspects of the VM such as the memory model
 538          and other information provided by the architecture. Verbose
 539          information will be printed at KERN_DEBUG loglevel depending
 540          on the mminit_loglevel= command-line option.
 541
 542          If unsure, say Y
 543
 544config DEBUG_LIST
 545        bool "Debug linked list manipulation"
 546        depends on DEBUG_KERNEL
 547        help
 548          Enable this to turn on extended checks in the linked-list
 549          walking routines.
 550
 551          If unsure, say N.
 552
 553config DEBUG_SG
 554        bool "Debug SG table operations"
 555        depends on DEBUG_KERNEL
 556        help
 557          Enable this to turn on checks on scatter-gather tables. This can
 558          help find problems with drivers that do not properly initialize
 559          their sg tables.
 560
 561          If unsure, say N.
 562
 563config DEBUG_NOTIFIERS
 564        bool "Debug notifier call chains"
 565        depends on DEBUG_KERNEL
 566        help
 567          Enable this to turn on sanity checking for notifier call chains.
 568          This is most useful for kernel developers to make sure that
 569          modules properly unregister themselves from notifier chains.
 570          This is a relatively cheap check but if you care about maximum
 571          performance, say N.
 572
 573#
 574# Select this config option from the architecture Kconfig, if it
 575# it is preferred to always offer frame pointers as a config
 576# option on the architecture (regardless of KERNEL_DEBUG):
 577#
 578config ARCH_WANT_FRAME_POINTERS
 579        bool
 580        help
 581
 582config FRAME_POINTER
 583        bool "Compile the kernel with frame pointers"
 584        depends on DEBUG_KERNEL && \
 585                (CRIS || M68K || M68KNOMMU || FRV || UML || S390 || \
 586                 AVR32 || SUPERH || BLACKFIN || MN10300) || \
 587                ARCH_WANT_FRAME_POINTERS
 588        default y if (DEBUG_INFO && UML) || ARCH_WANT_FRAME_POINTERS
 589        help
 590          If you say Y here the resulting kernel image will be slightly
 591          larger and slower, but it gives very useful debugging information
 592          in case of kernel bugs. (precise oopses/stacktraces/warnings)
 593
 594config BOOT_PRINTK_DELAY
 595        bool "Delay each boot printk message by N milliseconds"
 596        depends on DEBUG_KERNEL && PRINTK && GENERIC_CALIBRATE_DELAY
 597        help
 598          This build option allows you to read kernel boot messages
 599          by inserting a short delay after each one.  The delay is
 600          specified in milliseconds on the kernel command line,
 601          using "boot_delay=N".
 602
 603          It is likely that you would also need to use "lpj=M" to preset
 604          the "loops per jiffie" value.
 605          See a previous boot log for the "lpj" value to use for your
 606          system, and then set "lpj=M" before setting "boot_delay=N".
 607          NOTE:  Using this option may adversely affect SMP systems.
 608          I.e., processors other than the first one may not boot up.
 609          BOOT_PRINTK_DELAY also may cause DETECT_SOFTLOCKUP to detect
 610          what it believes to be lockup conditions.
 611
 612config RCU_TORTURE_TEST
 613        tristate "torture tests for RCU"
 614        depends on DEBUG_KERNEL
 615        default n
 616        help
 617          This option provides a kernel module that runs torture tests
 618          on the RCU infrastructure.  The kernel module may be built
 619          after the fact on the running kernel to be tested, if desired.
 620
 621          Say Y here if you want RCU torture tests to be built into
 622          the kernel.
 623          Say M if you want the RCU torture tests to build as a module.
 624          Say N if you are unsure.
 625
 626config RCU_TORTURE_TEST_RUNNABLE
 627        bool "torture tests for RCU runnable by default"
 628        depends on RCU_TORTURE_TEST = y
 629        default n
 630        help
 631          This option provides a way to build the RCU torture tests
 632          directly into the kernel without them starting up at boot
 633          time.  You can use /proc/sys/kernel/rcutorture_runnable
 634          to manually override this setting.  This /proc file is
 635          available only when the RCU torture tests have been built
 636          into the kernel.
 637
 638          Say Y here if you want the RCU torture tests to start during
 639          boot (you probably don't).
 640          Say N here if you want the RCU torture tests to start only
 641          after being manually enabled via /proc.
 642
 643config RCU_CPU_STALL_DETECTOR
 644        bool "Check for stalled CPUs delaying RCU grace periods"
 645        depends on CLASSIC_RCU || TREE_RCU
 646        default n
 647        help
 648          This option causes RCU to printk information on which
 649          CPUs are delaying the current grace period, but only when
 650          the grace period extends for excessive time periods.
 651
 652          Say Y if you want RCU to perform such checks.
 653
 654          Say N if you are unsure.
 655
 656config KPROBES_SANITY_TEST
 657        bool "Kprobes sanity tests"
 658        depends on DEBUG_KERNEL
 659        depends on KPROBES
 660        default n
 661        help
 662          This option provides for testing basic kprobes functionality on
 663          boot. A sample kprobe, jprobe and kretprobe are inserted and
 664          verified for functionality.
 665
 666          Say N if you are unsure.
 667
 668config BACKTRACE_SELF_TEST
 669        tristate "Self test for the backtrace code"
 670        depends on DEBUG_KERNEL
 671        default n
 672        help
 673          This option provides a kernel module that can be used to test
 674          the kernel stack backtrace code. This option is not useful
 675          for distributions or general kernels, but only for kernel
 676          developers working on architecture code.
 677
 678          Note that if you want to also test saved backtraces, you will
 679          have to enable STACKTRACE as well.
 680
 681          Say N if you are unsure.
 682
 683config DEBUG_BLOCK_EXT_DEVT
 684        bool "Force extended block device numbers and spread them"
 685        depends on DEBUG_KERNEL
 686        depends on BLOCK
 687        default n
 688        help
 689          BIG FAT WARNING: ENABLING THIS OPTION MIGHT BREAK BOOTING ON
 690          SOME DISTRIBUTIONS.  DO NOT ENABLE THIS UNLESS YOU KNOW WHAT
 691          YOU ARE DOING.  Distros, please enable this and fix whatever
 692          is broken.
 693
 694          Conventionally, block device numbers are allocated from
 695          predetermined contiguous area.  However, extended block area
 696          may introduce non-contiguous block device numbers.  This
 697          option forces most block device numbers to be allocated from
 698          the extended space and spreads them to discover kernel or
 699          userland code paths which assume predetermined contiguous
 700          device number allocation.
 701
 702          Note that turning on this debug option shuffles all the
 703          device numbers for all IDE and SCSI devices including libata
 704          ones, so root partition specified using device number
 705          directly (via rdev or root=MAJ:MIN) won't work anymore.
 706          Textual device names (root=/dev/sdXn) will continue to work.
 707
 708          Say N if you are unsure.
 709
 710config LKDTM
 711        tristate "Linux Kernel Dump Test Tool Module"
 712        depends on DEBUG_KERNEL
 713        depends on KPROBES
 714        depends on BLOCK
 715        default n
 716        help
 717        This module enables testing of the different dumping mechanisms by
 718        inducing system failures at predefined crash points.
 719        If you don't need it: say N
 720        Choose M here to compile this code as a module. The module will be
 721        called lkdtm.
 722
 723        Documentation on how to use the module can be found in
 724        drivers/misc/lkdtm.c
 725
 726config FAULT_INJECTION
 727        bool "Fault-injection framework"
 728        depends on DEBUG_KERNEL
 729        help
 730          Provide fault-injection framework.
 731          For more details, see Documentation/fault-injection/.
 732
 733config FAILSLAB
 734        bool "Fault-injection capability for kmalloc"
 735        depends on FAULT_INJECTION
 736        depends on SLAB || SLUB
 737        help
 738          Provide fault-injection capability for kmalloc.
 739
 740config FAIL_PAGE_ALLOC
 741        bool "Fault-injection capabilitiy for alloc_pages()"
 742        depends on FAULT_INJECTION
 743        help
 744          Provide fault-injection capability for alloc_pages().
 745
 746config FAIL_MAKE_REQUEST
 747        bool "Fault-injection capability for disk IO"
 748        depends on FAULT_INJECTION && BLOCK
 749        help
 750          Provide fault-injection capability for disk IO.
 751
 752config FAIL_IO_TIMEOUT
 753        bool "Faul-injection capability for faking disk interrupts"
 754        depends on FAULT_INJECTION && BLOCK
 755        help
 756          Provide fault-injection capability on end IO handling. This
 757          will make the block layer "forget" an interrupt as configured,
 758          thus exercising the error handling.
 759
 760          Only works with drivers that use the generic timeout handling,
 761          for others it wont do anything.
 762
 763config FAULT_INJECTION_DEBUG_FS
 764        bool "Debugfs entries for fault-injection capabilities"
 765        depends on FAULT_INJECTION && SYSFS && DEBUG_FS
 766        help
 767          Enable configuration of fault-injection capabilities via debugfs.
 768
 769config FAULT_INJECTION_STACKTRACE_FILTER
 770        bool "stacktrace filter for fault-injection capabilities"
 771        depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT
 772        depends on !X86_64
 773        select STACKTRACE
 774        select FRAME_POINTER if !PPC
 775        help
 776          Provide stacktrace filter for fault-injection capabilities
 777
 778config LATENCYTOP
 779        bool "Latency measuring infrastructure"
 780        select FRAME_POINTER if !MIPS && !PPC
 781        select KALLSYMS
 782        select KALLSYMS_ALL
 783        select STACKTRACE
 784        select SCHEDSTATS
 785        select SCHED_DEBUG
 786        depends on HAVE_LATENCYTOP_SUPPORT
 787        help
 788          Enable this option if you want to use the LatencyTOP tool
 789          to find out which userspace is blocking on what kernel operations.
 790
 791config SYSCTL_SYSCALL_CHECK
 792        bool "Sysctl checks"
 793        depends on SYSCTL_SYSCALL
 794        ---help---
 795          sys_sysctl uses binary paths that have been found challenging
 796          to properly maintain and use. This enables checks that help
 797          you to keep things correct.
 798
 799source kernel/trace/Kconfig
 800
 801config PROVIDE_OHCI1394_DMA_INIT
 802        bool "Remote debugging over FireWire early on boot"
 803        depends on PCI && X86
 804        help
 805          If you want to debug problems which hang or crash the kernel early
 806          on boot and the crashing machine has a FireWire port, you can use
 807          this feature to remotely access the memory of the crashed machine
 808          over FireWire. This employs remote DMA as part of the OHCI1394
 809          specification which is now the standard for FireWire controllers.
 810
 811          With remote DMA, you can monitor the printk buffer remotely using
 812          firescope and access all memory below 4GB using fireproxy from gdb.
 813          Even controlling a kernel debugger is possible using remote DMA.
 814
 815          Usage:
 816
 817          If ohci1394_dma=early is used as boot parameter, it will initialize
 818          all OHCI1394 controllers which are found in the PCI config space.
 819
 820          As all changes to the FireWire bus such as enabling and disabling
 821          devices cause a bus reset and thereby disable remote DMA for all
 822          devices, be sure to have the cable plugged and FireWire enabled on
 823          the debugging host before booting the debug target for debugging.
 824
 825          This code (~1k) is freed after boot. By then, the firewire stack
 826          in charge of the OHCI-1394 controllers should be used instead.
 827
 828          See Documentation/debugging-via-ohci1394.txt for more information.
 829
 830config FIREWIRE_OHCI_REMOTE_DMA
 831        bool "Remote debugging over FireWire with firewire-ohci"
 832        depends on FIREWIRE_OHCI
 833        help
 834          This option lets you use the FireWire bus for remote debugging
 835          with help of the firewire-ohci driver. It enables unfiltered
 836          remote DMA in firewire-ohci.
 837          See Documentation/debugging-via-ohci1394.txt for more information.
 838
 839          If unsure, say N.
 840
 841config BUILD_DOCSRC
 842        bool "Build targets in Documentation/ tree"
 843        depends on HEADERS_CHECK
 844        help
 845          This option attempts to build objects from the source files in the
 846          kernel Documentation/ tree.
 847
 848          Say N if you are unsure.
 849
 850config DYNAMIC_PRINTK_DEBUG
 851        bool "Enable dynamic printk() call support"
 852        default n
 853        depends on PRINTK
 854        select PRINTK_DEBUG
 855        help
 856
 857          Compiles debug level messages into the kernel, which would not
 858          otherwise be available at runtime. These messages can then be
 859          enabled/disabled on a per module basis. This mechanism implicitly
 860          enables all pr_debug() and dev_dbg() calls. The impact of this
 861          compile option is a larger kernel text size of about 2%.
 862
 863          Usage:
 864
 865          Dynamic debugging is controlled by the debugfs file,
 866          dynamic_printk/modules. This file contains a list of the modules that
 867          can be enabled. The format of the file is the module name, followed
 868          by a set of flags that can be enabled. The first flag is always the
 869          'enabled' flag. For example:
 870
 871                <module_name> <enabled=0/1>
 872                                .
 873                                .
 874                                .
 875
 876          <module_name> : Name of the module in which the debug call resides
 877          <enabled=0/1> : whether the messages are enabled or not
 878
 879          From a live system:
 880
 881                snd_hda_intel enabled=0
 882                fixup enabled=0
 883                driver enabled=0
 884
 885          Enable a module:
 886
 887                $echo "set enabled=1 <module_name>" > dynamic_printk/modules
 888
 889          Disable a module:
 890
 891                $echo "set enabled=0 <module_name>" > dynamic_printk/modules
 892
 893          Enable all modules:
 894
 895                $echo "set enabled=1 all" > dynamic_printk/modules
 896
 897          Disable all modules:
 898
 899                $echo "set enabled=0 all" > dynamic_printk/modules
 900
 901          Finally, passing "dynamic_printk" at the command line enables
 902          debugging for all modules. This mode can be turned off via the above
 903          disable command.
 904
 905source "samples/Kconfig"
 906
 907source "lib/Kconfig.kgdb"
 908