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_MRST
  47        bool "Early printk for MRST platform support"
  48        depends on EARLY_PRINTK && X86_MRST
  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          This option will cause messages to be printed if free stack space
  67          drops below a certain limit.
  68
  69config X86_PTDUMP
  70        bool "Export kernel pagetable layout to userspace via debugfs"
  71        depends on DEBUG_KERNEL
  72        select DEBUG_FS
  73        ---help---
  74          Say Y here if you want to show the kernel pagetable layout in a
  75          debugfs file. This information is only useful for kernel developers
  76          who are working in architecture specific areas of the kernel.
  77          It is probably not a good idea to enable this feature in a production
  78          kernel.
  79          If in doubt, say "N"
  80
  81config DEBUG_RODATA
  82        bool "Write protect kernel read-only data structures"
  83        default y
  84        depends on DEBUG_KERNEL
  85        ---help---
  86          Mark the kernel read-only data as write-protected in the pagetables,
  87          in order to catch accidental (and incorrect) writes to such const
  88          data. This is recommended so that we can catch kernel bugs sooner.
  89          If in doubt, say "Y".
  90
  91config DEBUG_RODATA_TEST
  92        bool "Testcase for the DEBUG_RODATA feature"
  93        depends on DEBUG_RODATA
  94        default y
  95        ---help---
  96          This option enables a testcase for the DEBUG_RODATA
  97          feature as well as for the change_page_attr() infrastructure.
  98          If in doubt, say "N"
  99
 100config DEBUG_SET_MODULE_RONX
 101        bool "Set loadable kernel module data as NX and text as RO"
 102        depends on MODULES
 103        ---help---
 104          This option helps catch unintended modifications to loadable
 105          kernel module's text and read-only data. It also prevents execution
 106          of module data. Such protection may interfere with run-time code
 107          patching and dynamic kernel tracing - and they might also protect
 108          against certain classes of kernel exploits.
 109          If in doubt, say "N".
 110
 111config DEBUG_NX_TEST
 112        tristate "Testcase for the NX non-executable stack feature"
 113        depends on DEBUG_KERNEL && m
 114        ---help---
 115          This option enables a testcase for the CPU NX capability
 116          and the software setup of this feature.
 117          If in doubt, say "N"
 118
 119config DOUBLEFAULT
 120        default y
 121        bool "Enable doublefault exception handler" if EXPERT
 122        depends on X86_32
 123        ---help---
 124          This option allows trapping of rare doublefault exceptions that
 125          would otherwise cause a system to silently reboot. Disabling this
 126          option saves about 4k and might cause you much additional grey
 127          hair.
 128
 129config IOMMU_DEBUG
 130        bool "Enable IOMMU debugging"
 131        depends on GART_IOMMU && DEBUG_KERNEL
 132        depends on X86_64
 133        ---help---
 134          Force the IOMMU to on even when you have less than 4GB of
 135          memory and add debugging code. On overflow always panic. And
 136          allow to enable IOMMU leak tracing. Can be disabled at boot
 137          time with iommu=noforce. This will also enable scatter gather
 138          list merging.  Currently not recommended for production
 139          code. When you use it make sure you have a big enough
 140          IOMMU/AGP aperture.  Most of the options enabled by this can
 141          be set more finegrained using the iommu= command line
 142          options. See Documentation/x86/x86_64/boot-options.txt for more
 143          details.
 144
 145config IOMMU_STRESS
 146        bool "Enable IOMMU stress-test mode"
 147        ---help---
 148          This option disables various optimizations in IOMMU related
 149          code to do real stress testing of the IOMMU code. This option
 150          will cause a performance drop and should only be enabled for
 151          testing.
 152
 153config IOMMU_LEAK
 154        bool "IOMMU leak tracing"
 155        depends on IOMMU_DEBUG && DMA_API_DEBUG
 156        ---help---
 157          Add a simple leak tracer to the IOMMU code. This is useful when you
 158          are debugging a buggy device driver that leaks IOMMU mappings.
 159
 160config HAVE_MMIOTRACE_SUPPORT
 161        def_bool y
 162
 163config X86_DECODER_SELFTEST
 164        bool "x86 instruction decoder selftest"
 165        depends on DEBUG_KERNEL && KPROBES
 166        ---help---
 167         Perform x86 instruction decoder selftests at build time.
 168         This option is useful for checking the sanity of x86 instruction
 169         decoder code.
 170         If unsure, say "N".
 171
 172#
 173# IO delay types:
 174#
 175
 176config IO_DELAY_TYPE_0X80
 177        int
 178        default "0"
 179
 180config IO_DELAY_TYPE_0XED
 181        int
 182        default "1"
 183
 184config IO_DELAY_TYPE_UDELAY
 185        int
 186        default "2"
 187
 188config IO_DELAY_TYPE_NONE
 189        int
 190        default "3"
 191
 192choice
 193        prompt "IO delay type"
 194        default IO_DELAY_0X80
 195
 196config IO_DELAY_0X80
 197        bool "port 0x80 based port-IO delay [recommended]"
 198        ---help---
 199          This is the traditional Linux IO delay used for in/out_p.
 200          It is the most tested hence safest selection here.
 201
 202config IO_DELAY_0XED
 203        bool "port 0xed based port-IO delay"
 204        ---help---
 205          Use port 0xed as the IO delay. This frees up port 0x80 which is
 206          often used as a hardware-debug port.
 207
 208config IO_DELAY_UDELAY
 209        bool "udelay based port-IO delay"
 210        ---help---
 211          Use udelay(2) as the IO delay method. This provides the delay
 212          while not having any side-effect on the IO port space.
 213
 214config IO_DELAY_NONE
 215        bool "no port-IO delay"
 216        ---help---
 217          No port-IO delay. Will break on old boxes that require port-IO
 218          delay for certain operations. Should work on most new machines.
 219
 220endchoice
 221
 222if IO_DELAY_0X80
 223config DEFAULT_IO_DELAY_TYPE
 224        int
 225        default IO_DELAY_TYPE_0X80
 226endif
 227
 228if IO_DELAY_0XED
 229config DEFAULT_IO_DELAY_TYPE
 230        int
 231        default IO_DELAY_TYPE_0XED
 232endif
 233
 234if IO_DELAY_UDELAY
 235config DEFAULT_IO_DELAY_TYPE
 236        int
 237        default IO_DELAY_TYPE_UDELAY
 238endif
 239
 240if IO_DELAY_NONE
 241config DEFAULT_IO_DELAY_TYPE
 242        int
 243        default IO_DELAY_TYPE_NONE
 244endif
 245
 246config DEBUG_BOOT_PARAMS
 247        bool "Debug boot parameters"
 248        depends on DEBUG_KERNEL
 249        depends on DEBUG_FS
 250        ---help---
 251          This option will cause struct boot_params to be exported via debugfs.
 252
 253config CPA_DEBUG
 254        bool "CPA self-test code"
 255        depends on DEBUG_KERNEL
 256        ---help---
 257          Do change_page_attr() self-tests every 30 seconds.
 258
 259config OPTIMIZE_INLINING
 260        bool "Allow gcc to uninline functions marked 'inline'"
 261        ---help---
 262          This option determines if the kernel forces gcc to inline the functions
 263          developers have marked 'inline'. Doing so takes away freedom from gcc to
 264          do what it thinks is best, which is desirable for the gcc 3.x series of
 265          compilers. The gcc 4.x series have a rewritten inlining algorithm and
 266          enabling this option will generate a smaller kernel there. Hopefully
 267          this algorithm is so good that allowing gcc 4.x and above to make the
 268          decision will become the default in the future. Until then this option
 269          is there to test gcc for this.
 270
 271          If unsure, say N.
 272
 273config DEBUG_STRICT_USER_COPY_CHECKS
 274        bool "Strict copy size checks"
 275        depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING
 276        ---help---
 277          Enabling this option turns a certain set of sanity checks for user
 278          copy operations into compile time failures.
 279
 280          The copy_from_user() etc checks are there to help test if there
 281          are sufficient security checks on the length argument of
 282          the copy operation, by having gcc prove that the argument is
 283          within bounds.
 284
 285          If unsure, or if you run an older (pre 4.4) gcc, say N.
 286
 287endmenu
 288
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.