]> err.no Git - linux-2.6/blobdiff - arch/x86/Kconfig.debug
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[linux-2.6] / arch / x86 / Kconfig.debug
index 970b2defe7df3206a7706a39a98c79279866ae04..ac1e31ba4795cb0f067a280826da257432f93f33 100644 (file)
@@ -5,10 +5,20 @@ config TRACE_IRQFLAGS_SUPPORT
 
 source "lib/Kconfig.debug"
 
+config NONPROMISC_DEVMEM
+       bool "Disable promiscuous /dev/mem"
+       help
+         The /dev/mem file by default only allows userspace access to PCI
+         space and the BIOS code and data regions. This is sufficient for
+         dosemu and X and all common users of /dev/mem. With this config
+         option, you allow userspace access to all of memory, including
+         kernel and userspace memory. Accidental access to this is
+         obviously disasterous, but specific access can be used by people
+         debugging the kernel.
+
 config EARLY_PRINTK
-       bool "Early printk" if EMBEDDED && DEBUG_KERNEL
+       bool "Early printk" if EMBEDDED
        default y
-       depends on X86_32
        help
          Write kernel log output directly into the VGA buffer or to a serial
          port.
@@ -35,32 +45,78 @@ config DEBUG_STACK_USAGE
 
          This option will slow down process creation somewhat.
 
-comment "Page alloc debug is incompatible with Software Suspend on i386"
-       depends on DEBUG_KERNEL && HIBERNATION
-       depends on X86_32
-
 config DEBUG_PAGEALLOC
        bool "Debug page memory allocations"
-       depends on DEBUG_KERNEL && !HIBERNATION && !HUGETLBFS
-       depends on X86_32
+       depends on DEBUG_KERNEL
        help
          Unmap pages from the kernel linear mapping after free_pages().
          This results in a large slowdown, but helps to find certain types
          of memory corruptions.
 
+config DEBUG_PER_CPU_MAPS
+       bool "Debug access to per_cpu maps"
+       depends on DEBUG_KERNEL
+       depends on X86_64_SMP
+       default n
+       help
+         Say Y to verify that the per_cpu map being accessed has
+         been setup.  Adds a fair amount of code to kernel memory
+         and decreases performance.
+
+         Say N if unsure.
+
+config X86_PTDUMP
+       bool "Export kernel pagetable layout to userspace via debugfs"
+       depends on DEBUG_KERNEL
+       select DEBUG_FS
+       help
+         Say Y here if you want to show the kernel pagetable layout in a
+         debugfs file. This information is only useful for kernel developers
+         who are working in architecture specific areas of the kernel.
+         It is probably not a good idea to enable this feature in a production
+         kernel.
+         If in doubt, say "N"
+
 config DEBUG_RODATA
        bool "Write protect kernel read-only data structures"
+       default y
        depends on DEBUG_KERNEL
        help
          Mark the kernel read-only data as write-protected in the pagetables,
          in order to catch accidental (and incorrect) writes to such const
-         data. This option may have a slight performance impact because a
-         portion of the kernel code won't be covered by a 2MB TLB anymore.
+         data. This is recommended so that we can catch kernel bugs sooner.
+         If in doubt, say "Y".
+
+config DIRECT_GBPAGES
+       bool "Enable gbpages-mapped kernel pagetables"
+       depends on DEBUG_KERNEL && EXPERIMENTAL && X86_64
+       help
+         Enable gigabyte pages support (if the CPU supports it). This can
+         improve the kernel's performance a tiny bit by reducing TLB
+         pressure.
+
+         This is experimental code.
+
          If in doubt, say "N".
 
+config DEBUG_RODATA_TEST
+       bool "Testcase for the DEBUG_RODATA feature"
+       depends on DEBUG_RODATA
+       help
+         This option enables a testcase for the DEBUG_RODATA
+         feature as well as for the change_page_attr() infrastructure.
+         If in doubt, say "N"
+
+config DEBUG_NX_TEST
+       tristate "Testcase for the NX non-executable stack feature"
+       depends on DEBUG_KERNEL && m
+       help
+         This option enables a testcase for the CPU NX capability
+         and the software setup of this feature.
+         If in doubt, say "N"
+
 config 4KSTACKS
        bool "Use 4Kb for kernel stacks instead of 8Kb"
-       depends on DEBUG_KERNEL
        depends on X86_32
        help
          If you say Y here the kernel will use a 4Kb stacksize for the
@@ -76,8 +132,7 @@ config X86_FIND_SMP_CONFIG
 
 config X86_MPPARSE
        def_bool y
-       depends on X86_LOCAL_APIC && !X86_VISWS
-       depends on X86_32
+       depends on (X86_32 && (X86_LOCAL_APIC && !X86_VISWS)) || X86_64
 
 config DOUBLEFAULT
        default y
@@ -91,7 +146,7 @@ config DOUBLEFAULT
 
 config IOMMU_DEBUG
        bool "Enable IOMMU debugging"
-       depends on IOMMU && DEBUG_KERNEL
+       depends on GART_IOMMU && DEBUG_KERNEL
        depends on X86_64
        help
          Force the IOMMU to on even when you have less than 4GB of
@@ -113,7 +168,105 @@ config IOMMU_LEAK
          Add a simple leak tracer to the IOMMU code. This is useful when you
          are debugging a buggy device driver that leaks IOMMU mappings.
 
-#config X86_REMOTE_DEBUG
-#      bool "kgdb debugging stub"
+#
+# IO delay types:
+#
+
+config IO_DELAY_TYPE_0X80
+       int
+       default "0"
+
+config IO_DELAY_TYPE_0XED
+       int
+       default "1"
+
+config IO_DELAY_TYPE_UDELAY
+       int
+       default "2"
+
+config IO_DELAY_TYPE_NONE
+       int
+       default "3"
+
+choice
+       prompt "IO delay type"
+       default IO_DELAY_0X80
+
+config IO_DELAY_0X80
+       bool "port 0x80 based port-IO delay [recommended]"
+       help
+         This is the traditional Linux IO delay used for in/out_p.
+         It is the most tested hence safest selection here.
+
+config IO_DELAY_0XED
+       bool "port 0xed based port-IO delay"
+       help
+         Use port 0xed as the IO delay. This frees up port 0x80 which is
+         often used as a hardware-debug port.
+
+config IO_DELAY_UDELAY
+       bool "udelay based port-IO delay"
+       help
+         Use udelay(2) as the IO delay method. This provides the delay
+         while not having any side-effect on the IO port space.
+
+config IO_DELAY_NONE
+       bool "no port-IO delay"
+       help
+         No port-IO delay. Will break on old boxes that require port-IO
+         delay for certain operations. Should work on most new machines.
+
+endchoice
+
+if IO_DELAY_0X80
+config DEFAULT_IO_DELAY_TYPE
+       int
+       default IO_DELAY_TYPE_0X80
+endif
+
+if IO_DELAY_0XED
+config DEFAULT_IO_DELAY_TYPE
+       int
+       default IO_DELAY_TYPE_0XED
+endif
+
+if IO_DELAY_UDELAY
+config DEFAULT_IO_DELAY_TYPE
+       int
+       default IO_DELAY_TYPE_UDELAY
+endif
+
+if IO_DELAY_NONE
+config DEFAULT_IO_DELAY_TYPE
+       int
+       default IO_DELAY_TYPE_NONE
+endif
+
+config DEBUG_BOOT_PARAMS
+       bool "Debug boot parameters"
+       depends on DEBUG_KERNEL
+       depends on DEBUG_FS
+       help
+         This option will cause struct boot_params to be exported via debugfs.
+
+config CPA_DEBUG
+       bool "CPA self-test code"
+       depends on DEBUG_KERNEL
+       help
+         Do change_page_attr() self-tests every 30 seconds.
+
+config OPTIMIZE_INLINING
+       bool "Allow gcc to uninline functions marked 'inline'"
+       depends on BROKEN
+       help
+         This option determines if the kernel forces gcc to inline the functions
+         developers have marked 'inline'. Doing so takes away freedom from gcc to
+         do what it thinks is best, which is desirable for the gcc 3.x series of
+         compilers. The gcc 4.x series have a rewritten inlining algorithm and
+         disabling this option will generate a smaller kernel there. Hopefully
+         this algorithm is so good that allowing gcc4 to make the decision can
+         become the default in the future, until then this option is there to
+         test gcc for this.
 
 endmenu
+