linux/arch/x86/Kconfig.debug
<<
>>
Prefs
   1menu "Kernel hacking"
   2
   3config TRACE_IRQFLAGS_SUPPORT
   4        def_bool y
   5
   6source "lib/Kconfig.debug"
   7
   8config STRICT_DEVMEM
   9        bool "Filter access to /dev/mem"
  10        ---help---
  11          If this option is disabled, you allow userspace (root) access to all
  12          of memory, including kernel and userspace memory. Accidental
  13          access to this is obviously disastrous, but specific access can
  14          be used by people debugging the kernel. Note that with PAT support
  15          enabled, even in this case there are restrictions on /dev/mem
  16          use due to the cache aliasing requirements.
  17
  18          If this option is switched on, the /dev/mem file only allows
  19          userspace access to PCI space and the BIOS code and data regions.
  20          This is sufficient for dosemu and X and all common users of
  21          /dev/mem.
  22
  23          If in doubt, say Y.
  24
  25config X86_VERBOSE_BOOTUP
  26        bool "Enable verbose x86 bootup info messages"
  27        default y
  28        ---help---
  29          Enables the informational output from the decompression stage
  30          (e.g. bzImage) of the boot. If you disable this you will still
  31          see errors. Disable this if you want silent bootup.
  32
  33config EARLY_PRINTK
  34        bool "Early printk" if EXPERT
  35        default y
  36        ---help---
  37          Write kernel log output directly into the VGA buffer or to a serial
  38          port.
  39
  40          This is useful for kernel debugging when your machine crashes very
  41          early before the console code is initialized. For normal operation
  42          it is not recommended because it looks ugly and doesn't cooperate
  43          with klogd/syslogd or the X server. You should normally N here,
  44          unless you want to debug such a crash.
  45
  46config EARLY_PRINTK_INTEL_MID
  47        bool "Early printk for Intel MID platform support"
  48        depends on EARLY_PRINTK && X86_INTEL_MID
  49
  50config EARLY_PRINTK_DBGP
  51        bool "Early printk via EHCI debug port"
  52        depends on EARLY_PRINTK && PCI
  53        ---help---
  54          Write kernel log output directly into the EHCI debug port.
  55
  56          This is useful for kernel debugging when your machine crashes very
  57          early before the console code is initialized. For normal operation
  58          it is not recommended because it looks ugly and doesn't cooperate
  59          with klogd/syslogd or the X server. You should normally N here,
  60          unless you want to debug such a crash. You need usb debug device.
  61
  62config DEBUG_STACKOVERFLOW
  63        bool "Check for stack overflows"
  64        depends on DEBUG_KERNEL
  65        ---help---
  66          Say Y here if you want to check the overflows of kernel, IRQ
  67          and exception stacks. This option will cause messages of the
  68          stacks in detail when free stack space drops below a certain
  69          limit.
  70          If in doubt, say "N".
  71
  72config X86_PTDUMP
  73        bool "Export kernel pagetable layout to userspace via debugfs"
  74        depends on DEBUG_KERNEL
  75        select DEBUG_FS
  76        ---help---
  77          Say Y here if you want to show the kernel pagetable layout in a
  78          debugfs file. This information is only useful for kernel developers
  79          who are working in architecture specific areas of the kernel.
  80          It is probably not a good idea to enable this feature in a production
  81          kernel.
  82          If in doubt, say "N"
  83
  84config DEBUG_RODATA
  85        bool "Write protect kernel read-only data structures"
  86        default y
  87        depends on DEBUG_KERNEL
  88        ---help---
  89          Mark the kernel read-only data as write-protected in the pagetables,
  90          in order to catch accidental (and incorrect) writes to such const
  91          data. This is recommended so that we can catch kernel bugs sooner.
  92          If in doubt, say "Y".
  93
  94config DEBUG_RODATA_TEST
  95        bool "Testcase for the DEBUG_RODATA feature"
  96        depends on DEBUG_RODATA
  97        default y
  98        ---help---
  99          This option enables a testcase for the DEBUG_RODATA
 100          feature as well as for the change_page_attr() infrastructure.
 101          If in doubt, say "N"
 102
 103config DEBUG_SET_MODULE_RONX
 104        bool "Set loadable kernel module data as NX and text as RO"
 105        depends on MODULES
 106        ---help---
 107          This option helps catch unintended modifications to loadable
 108          kernel module's text and read-only data. It also prevents execution
 109          of module data. Such protection may interfere with run-time code
 110          patching and dynamic kernel tracing - and they might also protect
 111          against certain classes of kernel exploits.
 112          If in doubt, say "N".
 113
 114config DEBUG_NX_TEST
 115        tristate "Testcase for the NX non-executable stack feature"
 116        depends on DEBUG_KERNEL && m
 117        ---help---
 118          This option enables a testcase for the CPU NX capability
 119          and the software setup of this feature.
 120          If in doubt, say "N"
 121
 122config DOUBLEFAULT
 123        default y
 124        bool "Enable doublefault exception handler" if EXPERT
 125        depends on X86_32
 126        ---help---
 127          This option allows trapping of rare doublefault exceptions that
 128          would otherwise cause a system to silently reboot. Disabling this
 129          option saves about 4k and might cause you much additional grey
 130          hair.
 131
 132config IOMMU_DEBUG
 133        bool "Enable IOMMU debugging"
 134        depends on GART_IOMMU && DEBUG_KERNEL
 135        depends on X86_64
 136        ---help---
 137          Force the IOMMU to on even when you have less than 4GB of
 138          memory and add debugging code. On overflow always panic. And
 139          allow to enable IOMMU leak tracing. Can be disabled at boot
 140          time with iommu=noforce. This will also enable scatter gather
 141          list merging.  Currently not recommended for production
 142          code. When you use it make sure you have a big enough
 143          IOMMU/AGP aperture.  Most of the options enabled by this can
 144          be set more finegrained using the iommu= command line
 145          options. See Documentation/x86/x86_64/boot-options.txt for more
 146          details.
 147
 148config IOMMU_STRESS
 149        bool "Enable IOMMU stress-test mode"
 150        ---help---
 151          This option disables various optimizations in IOMMU related
 152          code to do real stress testing of the IOMMU code. This option
 153          will cause a performance drop and should only be enabled for
 154          testing.
 155
 156config IOMMU_LEAK
 157        bool "IOMMU leak tracing"
 158        depends on IOMMU_DEBUG && DMA_API_DEBUG
 159        ---help---
 160          Add a simple leak tracer to the IOMMU code. This is useful when you
 161          are debugging a buggy device driver that leaks IOMMU mappings.
 162
 163config HAVE_MMIOTRACE_SUPPORT
 164        def_bool y
 165
 166config X86_DECODER_SELFTEST
 167        bool "x86 instruction decoder selftest"
 168        depends on DEBUG_KERNEL && KPROBES
 169        ---help---
 170         Perform x86 instruction decoder selftests at build time.
 171         This option is useful for checking the sanity of x86 instruction
 172         decoder code.
 173         If unsure, say "N".
 174
 175#
 176# IO delay types:
 177#
 178
 179config IO_DELAY_TYPE_0X80
 180        int
 181        default "0"
 182
 183config IO_DELAY_TYPE_0XED
 184        int
 185        default "1"
 186
 187config IO_DELAY_TYPE_UDELAY
 188        int
 189        default "2"
 190
 191config IO_DELAY_TYPE_NONE
 192        int
 193        default "3"
 194
 195choice
 196        prompt "IO delay type"
 197        default IO_DELAY_0X80
 198
 199config IO_DELAY_0X80
 200        bool "port 0x80 based port-IO delay [recommended]"
 201        ---help---
 202          This is the traditional Linux IO delay used for in/out_p.
 203          It is the most tested hence safest selection here.
 204
 205config IO_DELAY_0XED
 206        bool "port 0xed based port-IO delay"
 207        ---help---
 208          Use port 0xed as the IO delay. This frees up port 0x80 which is
 209          often used as a hardware-debug port.
 210
 211config IO_DELAY_UDELAY
 212        bool "udelay based port-IO delay"
 213        ---help---
 214          Use udelay(2) as the IO delay method. This provides the delay
 215          while not having any side-effect on the IO port space.
 216
 217config IO_DELAY_NONE
 218        bool "no port-IO delay"
 219        ---help---
 220          No port-IO delay. Will break on old boxes that require port-IO
 221          delay for certain operations. Should work on most new machines.
 222
 223endchoice
 224
 225if IO_DELAY_0X80
 226config DEFAULT_IO_DELAY_TYPE
 227        int
 228        default IO_DELAY_TYPE_0X80
 229endif
 230
 231if IO_DELAY_0XED
 232config DEFAULT_IO_DELAY_TYPE
 233        int
 234        default IO_DELAY_TYPE_0XED
 235endif
 236
 237if IO_DELAY_UDELAY
 238config DEFAULT_IO_DELAY_TYPE
 239        int
 240        default IO_DELAY_TYPE_UDELAY
 241endif
 242
 243if IO_DELAY_NONE
 244config DEFAULT_IO_DELAY_TYPE
 245        int
 246        default IO_DELAY_TYPE_NONE
 247endif
 248
 249config DEBUG_BOOT_PARAMS
 250        bool "Debug boot parameters"
 251        depends on DEBUG_KERNEL
 252        depends on DEBUG_FS
 253        ---help---
 254          This option will cause struct boot_params to be exported via debugfs.
 255
 256config CPA_DEBUG
 257        bool "CPA self-test code"
 258        depends on DEBUG_KERNEL
 259        ---help---
 260          Do change_page_attr() self-tests every 30 seconds.
 261
 262config OPTIMIZE_INLINING
 263        bool "Allow gcc to uninline functions marked 'inline'"
 264        ---help---
 265          This option determines if the kernel forces gcc to inline the functions
 266          developers have marked 'inline'. Doing so takes away freedom from gcc to
 267          do what it thinks is best, which is desirable for the gcc 3.x series of
 268          compilers. The gcc 4.x series have a rewritten inlining algorithm and
 269          enabling this option will generate a smaller kernel there. Hopefully
 270          this algorithm is so good that allowing gcc 4.x and above to make the
 271          decision will become the default in the future. Until then this option
 272          is there to test gcc for this.
 273
 274          If unsure, say N.
 275
 276config DEBUG_STRICT_USER_COPY_CHECKS
 277        bool "Strict copy size checks"
 278        depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING
 279        ---help---
 280          Enabling this option turns a certain set of sanity checks for user
 281          copy operations into compile time failures.
 282
 283          The copy_from_user() etc checks are there to help test if there
 284          are sufficient security checks on the length argument of
 285          the copy operation, by having gcc prove that the argument is
 286          within bounds.
 287
 288          If unsure, or if you run an older (pre 4.4) gcc, say N.
 289
 290config DEBUG_NMI_SELFTEST
 291        bool "NMI Selftest"
 292        depends on DEBUG_KERNEL && X86_LOCAL_APIC
 293        ---help---
 294          Enabling this option turns on a quick NMI selftest to verify
 295          that the NMI behaves correctly.
 296
 297          This might help diagnose strange hangs that rely on NMI to
 298          function properly.
 299
 300          If unsure, say N.
 301
 302endmenu
 303