x86, mm: enable GBPAGES option by default
[safe/jmp/linux-2.6] / arch / x86 / Kconfig.debug
index 6f32beb..567fe54 100644 (file)
@@ -5,8 +5,33 @@ config TRACE_IRQFLAGS_SUPPORT
 
 source "lib/Kconfig.debug"
 
+config STRICT_DEVMEM
+       bool "Filter access to /dev/mem"
+       help
+         If this option is disabled, you allow userspace (root) access to all
+         of memory, including kernel and userspace memory. Accidental
+         access to this is obviously disastrous, but specific access can
+         be used by people debugging the kernel. Note that with PAT support
+         enabled, even in this case there are restrictions on /dev/mem
+         use due to the cache aliasing requirements.
+
+         If this option is switched on, the /dev/mem file 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.
+
+         If in doubt, say Y.
+
+config X86_VERBOSE_BOOTUP
+       bool "Enable verbose x86 bootup info messages"
+       default y
+       help
+         Enables the informational output from the decompression stage
+         (e.g. bzImage) of the boot. If you disable this you will still
+         see errors. Disable this if you want silent bootup.
+
 config EARLY_PRINTK
-       bool "Early printk" if EMBEDDED && DEBUG_KERNEL && X86_32
+       bool "Early printk" if EMBEDDED
        default y
        help
          Write kernel log output directly into the VGA buffer or to a serial
@@ -18,6 +43,19 @@ config EARLY_PRINTK
          with klogd/syslogd or the X server. You should normally N here,
          unless you want to debug such a crash.
 
+config EARLY_PRINTK_DBGP
+       bool "Early printk via EHCI debug port"
+       default n
+       depends on EARLY_PRINTK && PCI
+       help
+         Write kernel log output directly into the EHCI debug port.
+
+         This is useful for kernel debugging when your machine crashes very
+         early before the console code is initialized. For normal operation
+         it is not recommended because it looks ugly and doesn't cooperate
+         with klogd/syslogd or the X server. You should normally N here,
+         unless you want to debug such a crash. You need usb debug device.
+
 config DEBUG_STACKOVERFLOW
        bool "Check for stack overflows"
        depends on DEBUG_KERNEL
@@ -34,32 +72,66 @@ 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_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.
-         If in doubt, say "N".
+         data. This is recommended so that we can catch kernel bugs sooner.
+         If in doubt, say "Y".
+
+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
@@ -68,16 +140,6 @@ config 4KSTACKS
          on the VM subsystem for higher order allocations. This option
          will also use IRQ stacks to compensate for the reduced stackspace.
 
-config X86_FIND_SMP_CONFIG
-       def_bool y
-       depends on X86_LOCAL_APIC || X86_VOYAGER
-       depends on X86_32
-
-config X86_MPPARSE
-       def_bool y
-       depends on X86_LOCAL_APIC && !X86_VISWS
-       depends on X86_32
-
 config DOUBLEFAULT
        default y
        bool "Enable doublefault exception handler" if EMBEDDED
@@ -112,7 +174,133 @@ 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"
+config MMIOTRACE_HOOKS
+       bool
+
+config MMIOTRACE
+       bool "Memory mapped IO tracing"
+       depends on DEBUG_KERNEL && PCI
+       select TRACING
+       select MMIOTRACE_HOOKS
+       help
+         Mmiotrace traces Memory Mapped I/O access and is meant for
+         debugging and reverse engineering. It is called from the ioremap
+         implementation and works via page faults. Tracing is disabled by
+         default and can be enabled at run-time.
+
+         See Documentation/tracers/mmiotrace.txt.
+         If you are not helping to develop drivers, say N.
+
+config MMIOTRACE_TEST
+       tristate "Test module for mmiotrace"
+       depends on MMIOTRACE && m
+       help
+         This is a dumb module for testing mmiotrace. It is very dangerous
+         as it will write garbage to IO memory starting at a given address.
+         However, it should be safe to use on e.g. unused portion of VRAM.
+
+         Say N, unless you absolutely know what you are doing.
+
+#
+# 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'"
+       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.
+
+         If unsure, say N.
 
 endmenu
+