123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259 |
- menu "Kernel hacking"
- config TRACE_IRQFLAGS_SUPPORT
- def_bool y
- 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
- default y
- help
- Write kernel log output directly into the VGA buffer or to a serial
- 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.
- config DEBUG_STACKOVERFLOW
- bool "Check for stack overflows"
- depends on DEBUG_KERNEL
- help
- This option will cause messages to be printed if free stack space
- drops below a certain limit.
- config DEBUG_STACK_USAGE
- bool "Stack utilization instrumentation"
- depends on DEBUG_KERNEL
- help
- Enables the display of the minimum amount of free stack which each
- task has ever had available in the sysrq-T and sysrq-P debug output.
- This option will slow down process creation somewhat.
- config DEBUG_PAGEALLOC
- bool "Debug page memory allocations"
- 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 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 X86_32
- default y
- help
- If you say Y here the kernel will use a 4Kb stacksize for the
- kernel stack attached to each process/thread. This facilitates
- running more threads on a system and also reduces the pressure
- 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_32 && (X86_LOCAL_APIC && !X86_VISWS)) || X86_64
- config DOUBLEFAULT
- default y
- bool "Enable doublefault exception handler" if EMBEDDED
- depends on X86_32
- help
- This option allows trapping of rare doublefault exceptions that
- would otherwise cause a system to silently reboot. Disabling this
- option saves about 4k and might cause you much additional grey
- hair.
- config IOMMU_DEBUG
- bool "Enable IOMMU debugging"
- depends on GART_IOMMU && DEBUG_KERNEL
- depends on X86_64
- help
- Force the IOMMU to on even when you have less than 4GB of
- memory and add debugging code. On overflow always panic. And
- allow to enable IOMMU leak tracing. Can be disabled at boot
- time with iommu=noforce. This will also enable scatter gather
- list merging. Currently not recommended for production
- code. When you use it make sure you have a big enough
- IOMMU/AGP aperture. Most of the options enabled by this can
- be set more finegrained using the iommu= command line
- options. See Documentation/x86_64/boot-options.txt for more
- details.
- config IOMMU_LEAK
- bool "IOMMU leak tracing"
- depends on DEBUG_KERNEL
- depends on IOMMU_DEBUG
- help
- Add a simple leak tracer to the IOMMU code. This is useful when you
- are debugging a buggy device driver that leaks IOMMU mappings.
- #
- # 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.
- endmenu
|