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 DEBUG_TLBFLUSH
 133        bool "Set upper limit of TLB entries to flush one-by-one"
 134        depends on DEBUG_KERNEL && (X86_64 || X86_INVLPG)
 135        ---help---
 136
 137        X86-only for now.
 138
 139        This option allows the user to tune the amount of TLB entries the
 140        kernel flushes one-by-one instead of doing a full TLB flush. In
 141        certain situations, the former is cheaper. This is controlled by the
 142        tlb_flushall_shift knob under /sys/kernel/debug/x86. If you set it
 143        to -1, the code flushes the whole TLB unconditionally. Otherwise,
 144        for positive values of it, the kernel will use single TLB entry
 145        invalidating instructions according to the following formula:
 146
 147        flush_entries <= active_tlb_entries / 2^tlb_flushall_shift
 148
 149        If in doubt, say "N".
 150
 151config IOMMU_DEBUG
 152        bool "Enable IOMMU debugging"
 153        depends on GART_IOMMU && DEBUG_KERNEL
 154        depends on X86_64
 155        ---help---
 156          Force the IOMMU to on even when you have less than 4GB of
 157          memory and add debugging code. On overflow always panic. And
 158          allow to enable IOMMU leak tracing. Can be disabled at boot
 159          time with iommu=noforce. This will also enable scatter gather
 160          list merging.  Currently not recommended for production
 161          code. When you use it make sure you have a big enough
 162          IOMMU/AGP aperture.  Most of the options enabled by this can
 163          be set more finegrained using the iommu= command line
 164          options. See Documentation/x86/x86_64/boot-options.txt for more
 165          details.
 166
 167config IOMMU_STRESS
 168        bool "Enable IOMMU stress-test mode"
 169        ---help---
 170          This option disables various optimizations in IOMMU related
 171          code to do real stress testing of the IOMMU code. This option
 172          will cause a performance drop and should only be enabled for
 173          testing.
 174
 175config IOMMU_LEAK
 176        bool "IOMMU leak tracing"
 177        depends on IOMMU_DEBUG && DMA_API_DEBUG
 178        ---help---
 179          Add a simple leak tracer to the IOMMU code. This is useful when you
 180          are debugging a buggy device driver that leaks IOMMU mappings.
 181
 182config HAVE_MMIOTRACE_SUPPORT
 183        def_bool y
 184
 185config X86_DECODER_SELFTEST
 186        bool "x86 instruction decoder selftest"
 187        depends on DEBUG_KERNEL && KPROBES
 188        ---help---
 189         Perform x86 instruction decoder selftests at build time.
 190         This option is useful for checking the sanity of x86 instruction
 191         decoder code.
 192         If unsure, say "N".
 193
 194#
 195# IO delay types:
 196#
 197
 198config IO_DELAY_TYPE_0X80
 199        int
 200        default "0"
 201
 202config IO_DELAY_TYPE_0XED
 203        int
 204        default "1"
 205
 206config IO_DELAY_TYPE_UDELAY
 207        int
 208        default "2"
 209
 210config IO_DELAY_TYPE_NONE
 211        int
 212        default "3"
 213
 214choice
 215        prompt "IO delay type"
 216        default IO_DELAY_0X80
 217
 218config IO_DELAY_0X80
 219        bool "port 0x80 based port-IO delay [recommended]"
 220        ---help---
 221          This is the traditional Linux IO delay used for in/out_p.
 222          It is the most tested hence safest selection here.
 223
 224config IO_DELAY_0XED
 225        bool "port 0xed based port-IO delay"
 226        ---help---
 227          Use port 0xed as the IO delay. This frees up port 0x80 which is
 228          often used as a hardware-debug port.
 229
 230config IO_DELAY_UDELAY
 231        bool "udelay based port-IO delay"
 232        ---help---
 233          Use udelay(2) as the IO delay method. This provides the delay
 234          while not having any side-effect on the IO port space.
 235
 236config IO_DELAY_NONE
 237        bool "no port-IO delay"
 238        ---help---
 239          No port-IO delay. Will break on old boxes that require port-IO
 240          delay for certain operations. Should work on most new machines.
 241
 242endchoice
 243
 244if IO_DELAY_0X80
 245config DEFAULT_IO_DELAY_TYPE
 246        int
 247        default IO_DELAY_TYPE_0X80
 248endif
 249
 250if IO_DELAY_0XED
 251config DEFAULT_IO_DELAY_TYPE
 252        int
 253        default IO_DELAY_TYPE_0XED
 254endif
 255
 256if IO_DELAY_UDELAY
 257config DEFAULT_IO_DELAY_TYPE
 258        int
 259        default IO_DELAY_TYPE_UDELAY
 260endif
 261
 262if IO_DELAY_NONE
 263config DEFAULT_IO_DELAY_TYPE
 264        int
 265        default IO_DELAY_TYPE_NONE
 266endif
 267
 268config DEBUG_BOOT_PARAMS
 269        bool "Debug boot parameters"
 270        depends on DEBUG_KERNEL
 271        depends on DEBUG_FS
 272        ---help---
 273          This option will cause struct boot_params to be exported via debugfs.
 274
 275config CPA_DEBUG
 276        bool "CPA self-test code"
 277        depends on DEBUG_KERNEL
 278        ---help---
 279          Do change_page_attr() self-tests every 30 seconds.
 280
 281config OPTIMIZE_INLINING
 282        bool "Allow gcc to uninline functions marked 'inline'"
 283        ---help---
 284          This option determines if the kernel forces gcc to inline the functions
 285          developers have marked 'inline'. Doing so takes away freedom from gcc to
 286          do what it thinks is best, which is desirable for the gcc 3.x series of
 287          compilers. The gcc 4.x series have a rewritten inlining algorithm and
 288          enabling this option will generate a smaller kernel there. Hopefully
 289          this algorithm is so good that allowing gcc 4.x and above to make the
 290          decision will become the default in the future. Until then this option
 291          is there to test gcc for this.
 292
 293          If unsure, say N.
 294
 295config DEBUG_STRICT_USER_COPY_CHECKS
 296        bool "Strict copy size checks"
 297        depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING
 298        ---help---
 299          Enabling this option turns a certain set of sanity checks for user
 300          copy operations into compile time failures.
 301
 302          The copy_from_user() etc checks are there to help test if there
 303          are sufficient security checks on the length argument of
 304          the copy operation, by having gcc prove that the argument is
 305          within bounds.
 306
 307          If unsure, or if you run an older (pre 4.4) gcc, say N.
 308
 309config DEBUG_NMI_SELFTEST
 310        bool "NMI Selftest"
 311        depends on DEBUG_KERNEL && X86_LOCAL_APIC
 312        ---help---
 313          Enabling this option turns on a quick NMI selftest to verify
 314          that the NMI behaves correctly.
 315
 316          This might help diagnose strange hangs that rely on NMI to
 317          function properly.
 318
 319          If unsure, say N.
 320
 321endmenu
 322
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.