123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288 |
- menu "Kernel hacking"
- config TRACE_IRQFLAGS_SUPPORT
- def_bool y
- 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 EXPERT
- 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 EARLY_PRINTK_MRST
- bool "Early printk for MRST platform support"
- depends on EARLY_PRINTK && X86_MRST
- config EARLY_PRINTK_DBGP
- bool "Early printk via EHCI debug port"
- 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
- ---help---
- This option will cause messages to be printed if free stack space
- drops below a certain limit.
- 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 DEBUG_RODATA_TEST
- bool "Testcase for the DEBUG_RODATA feature"
- depends on DEBUG_RODATA
- default y
- ---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_SET_MODULE_RONX
- bool "Set loadable kernel module data as NX and text as RO"
- depends on MODULES
- ---help---
- This option helps catch unintended modifications to loadable
- kernel module's text and read-only data. It also prevents execution
- of module data. Such protection may interfere with run-time code
- patching and dynamic kernel tracing - and they might also protect
- against certain classes of kernel exploits.
- 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 DOUBLEFAULT
- default y
- bool "Enable doublefault exception handler" if EXPERT
- 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_STRESS
- bool "Enable IOMMU stress-test mode"
- ---help---
- This option disables various optimizations in IOMMU related
- code to do real stress testing of the IOMMU code. This option
- will cause a performance drop and should only be enabled for
- testing.
- config IOMMU_LEAK
- bool "IOMMU leak tracing"
- depends on IOMMU_DEBUG && DMA_API_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.
- config HAVE_MMIOTRACE_SUPPORT
- def_bool y
- config X86_DECODER_SELFTEST
- bool "x86 instruction decoder selftest"
- depends on DEBUG_KERNEL && KPROBES
- ---help---
- Perform x86 instruction decoder selftests at build time.
- This option is useful for checking the sanity of x86 instruction
- decoder code.
- If unsure, say "N".
- #
- # 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
- enabling this option will generate a smaller kernel there. Hopefully
- this algorithm is so good that allowing gcc 4.x and above to make the
- decision will become the default in the future. Until then this option
- is there to test gcc for this.
- If unsure, say N.
- config DEBUG_STRICT_USER_COPY_CHECKS
- bool "Strict copy size checks"
- depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING
- ---help---
- Enabling this option turns a certain set of sanity checks for user
- copy operations into compile time failures.
- The copy_from_user() etc checks are there to help test if there
- are sufficient security checks on the length argument of
- the copy operation, by having gcc prove that the argument is
- within bounds.
- If unsure, or if you run an older (pre 4.4) gcc, say N.
- endmenu
|