2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
6 menu "X86 Processor Configuration"
27 config GENERIC_ISA_DMA
36 prompt "Processor family"
42 This is the processor type of your CPU. This information is used for
43 optimizing purposes. In order to compile a kernel that can run on
44 all x86 CPU types (albeit not optimally fast), you can specify
47 The kernel will not necessarily run on earlier architectures than
48 the one you have chosen, e.g. a Pentium optimized kernel will run on
49 a PPro, but not necessarily on a i486.
51 Here are the settings recommended for greatest speed:
52 - "386" for the AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI
53 486DLC/DLC2, UMC 486SX-S and NexGen Nx586. Only "386" kernels
54 will run on a 386 class machine.
55 - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or
56 SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
57 - "586" for generic Pentium CPUs lacking the TSC
58 (time stamp counter) register.
59 - "Pentium-Classic" for the Intel Pentium.
60 - "Pentium-MMX" for the Intel Pentium MMX.
61 - "Pentium-Pro" for the Intel Pentium Pro.
62 - "Pentium-II" for the Intel Pentium II or pre-Coppermine Celeron.
63 - "Pentium-III" for the Intel Pentium III or Coppermine Celeron.
64 - "Pentium-4" for the Intel Pentium 4 or P4-based Celeron.
65 - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D).
66 - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird).
67 - "Crusoe" for the Transmeta Crusoe series.
68 - "Efficeon" for the Transmeta Efficeon series.
69 - "Winchip-C6" for original IDT Winchip.
70 - "Winchip-2" for IDT Winchip 2.
71 - "Winchip-2A" for IDT Winchips with 3dNow! capabilities.
72 - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
73 - "VIA C3-2 for VIA C3-2 "Nehemiah" (model 9 and above).
75 If you don't know what to do, choose "386".
80 Select this for a 486 series processor, either Intel or one of the
81 compatible processors from AMD, Cyrix, IBM, or Intel. Includes DX,
82 DX2, and DX4 variants; also SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or
86 bool "586/K5/5x86/6x86/6x86MX"
88 Select this for an 586 or 686 series processor such as the AMD K5,
89 the Cyrix 5x86, 6x86 and 6x86MX. This choice does not
90 assume the RDTSC (Read Time Stamp Counter) instruction.
93 bool "Pentium-Classic"
95 Select this for a Pentium Classic processor with the RDTSC (Read
96 Time Stamp Counter) instruction for benchmarking.
101 Select this for a Pentium with the MMX graphics/multimedia
102 extended instructions.
107 Select this for Intel Pentium Pro chips. This enables the use of
108 Pentium Pro extended instructions, and disables the init-time guard
109 against the f00f bug found in earlier Pentiums.
112 bool "Pentium-II/Celeron(pre-Coppermine)"
114 Select this for Intel chips based on the Pentium-II and
115 pre-Coppermine Celeron core. This option enables an unaligned
116 copy optimization, compiles the kernel with optimization flags
117 tailored for the chip, and applies any applicable Pentium Pro
121 bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon"
123 Select this for Intel chips based on the Pentium-III and
124 Celeron-Coppermine core. This option enables use of some
125 extended prefetch instructions in addition to the Pentium II
131 Select this for Intel Pentium M (not Pentium-4 M)
135 bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon"
137 Select this for Intel Pentium 4 chips. This includes the
138 Pentium 4, P4-based Celeron and Xeon, and Pentium-4 M
139 (not Pentium M) chips. This option enables compile flags
140 optimized for the chip, uses the correct cache shift, and
141 applies any applicable Pentium III optimizations.
144 bool "K6/K6-II/K6-III"
146 Select this for an AMD K6-family processor. Enables use of
147 some extended instructions, and passes appropriate optimization
151 bool "Athlon/Duron/K7"
153 Select this for an AMD Athlon K7-family processor. Enables use of
154 some extended instructions, and passes appropriate optimization
158 bool "Opteron/Athlon64/Hammer/K8"
160 Select this for an AMD Opteron or Athlon64 Hammer-family processor. Enables
161 use of some extended instructions, and passes appropriate optimization
167 Select this for a Transmeta Crusoe processor. Treats the processor
168 like a 586 with TSC, and sets some GCC optimization flags (like a
169 Pentium Pro with no alignment requirements).
174 Select this for a Transmeta Efficeon processor.
179 Select this for an IDT Winchip C6 chip. Linux and GCC
180 treat this chip as a 586TSC with some extended instructions
181 and alignment requirements.
186 Select this for an IDT Winchip-2. Linux and GCC
187 treat this chip as a 586TSC with some extended instructions
188 and alignment requirements.
191 bool "Winchip-2A/Winchip-3"
193 Select this for an IDT Winchip-2A or 3. Linux and GCC
194 treat this chip as a 586TSC with some extended instructions
195 and alignment reqirements. Also enable out of order memory
196 stores for this CPU, which can increase performance of some
200 bool "CyrixIII/VIA-C3"
202 Select this for a Cyrix III or C3 chip. Presently Linux and GCC
203 treat this chip as a generic 586. Whilst the CPU is 686 class,
204 it lacks the cmov extension which gcc assumes is present when
206 Note that Nehemiah (Model 9) and above will not boot with this
207 kernel due to them lacking the 3DNow! instructions used in earlier
208 incarnations of the CPU.
211 bool "VIA C3-2 (Nehemiah)"
213 Select this for a VIA C3 "Nehemiah". Selecting this enables usage
214 of SSE and tells gcc to treat the CPU as a 686.
215 Note, this kernel will not boot on older (pre model 9) C3s.
220 bool "Generic x86 support"
222 Instead of just including optimizations for the selected
223 x86 variant (e.g. PII, Crusoe or Athlon), include some more
224 generic optimizations as well. This will make the kernel
225 perform better on x86 CPUs other than that selected.
227 This is really intended for distributors who need more
228 generic optimizations.
231 # Define implied options from the CPU selection here
243 config X86_L1_CACHE_SHIFT
245 default "7" if MPENTIUM4 || X86_GENERIC
246 default "4" if X86_ELAN || M486 || M386
247 default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2
248 default "6" if MK7 || MK8 || MPENTIUMM
250 config RWSEM_GENERIC_SPINLOCK
255 config RWSEM_XCHGADD_ALGORITHM
260 config GENERIC_CALIBRATE_DELAY
264 config X86_PPRO_FENCE
266 depends on M686 || M586MMX || M586TSC || M586 || M486 || M386
271 depends on M586MMX || M586TSC || M586 || M486 || M386
274 config X86_WP_WORKS_OK
294 config X86_ALIGNMENT_16
296 depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2
301 depends on MK7 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8 || MEFFICEON
304 config X86_INTEL_USERCOPY
306 depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON
309 config X86_USE_PPRO_CHECKSUM
311 depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MEFFICEON
316 depends on MCYRIXIII || MK7
321 depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6) && MTRR
328 # bool "HPET Timer Support"
330 # This enables the use of the HPET for the kernel's internal timer.
331 # HPET is the next generation timer replacing legacy 8254s.
332 # You can safely choose Y here. However, HPET will only be
333 # activated if the platform and the BIOS support this feature.
334 # Otherwise the 8254 will be used for timing services.
336 # Choose N to continue using the legacy 8254 timer.
338 config HPET_EMULATE_RTC
339 def_bool HPET_TIMER && RTC=y
342 bool "Symmetric multi-processing support"
344 This enables support for systems with more than one CPU. If you have
345 a system with only one CPU, like most personal computers, say N. If
346 you have a system with more than one CPU, say Y.
348 If you say N here, the kernel will run on single and multiprocessor
349 machines, but will use only one CPU of a multiprocessor machine. If
350 you say Y here, the kernel will run on many, but not all,
351 singleprocessor machines. On a singleprocessor machine, the kernel
352 will run faster if you say N here.
354 Note that if you say Y here and choose architecture "586" or
355 "Pentium" under "Processor family", the kernel will not work on 486
356 architectures. Similarly, multiprocessor kernels for the "PPro"
357 architecture may not work on all Pentium based boards.
359 People using multiprocessor machines who say Y here should also say
360 Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
361 Management" code will be disabled if you say Y here.
363 See also the <file:Documentation/smp.txt>,
364 <file:Documentation/i386/IO-APIC.txt>,
365 <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
366 <http://www.tldp.org/docs.html#howto>.
368 If you don't know what to do here, say N.
371 int "Maximum number of CPUs (2-255)"
374 default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000
377 This allows you to specify the maximum number of CPUs which this
378 kernel will support. The maximum supported value is 255 and the
379 minimum value which makes sense is 2.
381 This is purely to save memory - each supported CPU adds
382 approximately eight kilobytes to the kernel image.
385 bool "SMT (Hyperthreading) scheduler support"
389 SMT scheduler support improves the CPU scheduler's decision making
390 when dealing with Intel Pentium 4 chips with HyperThreading at a
391 cost of slightly increased overhead in some places. If unsure say
395 bool "Preemptible Kernel"
397 This option reduces the latency of the kernel when reacting to
398 real-time or interactive events by allowing a low priority process to
399 be preempted even if it is in kernel mode executing a system call.
400 This allows applications to run more reliably even when the system is
403 Say Y here if you are building a kernel for a desktop, embedded
404 or real-time system. Say N if you are unsure.
407 bool "Preempt The Big Kernel Lock"
411 This option reduces the latency of the kernel by making the
412 big kernel lock preemptible.
414 Say Y here if you are building a kernel for a desktop system.
415 Say N if you are unsure.
419 # depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2) && !X86_NUMAQ
423 # bool "Machine Check Exception"
424 # depends on !X86_VOYAGER
426 # Machine Check Exception support allows the processor to notify the
427 # kernel if it detects a problem (e.g. overheating, component failure).
428 # The action the kernel takes depends on the severity of the problem,
429 # ranging from a warning message on the console, to halting the machine.
430 # Your processor must be a Pentium or newer to support this - check the
431 # flags in /proc/cpuinfo for mce. Note that some older Pentium systems
432 # have a design flaw which leads to false MCE events - hence MCE is
433 # disabled on all P5 processors, unless explicitly enabled with "mce"
434 # as a boot argument. Similarly, if MCE is built in and creates a
435 # problem on some new non-standard machine, you can boot with "nomce"
436 # to disable it. MCE support simply ignores non-MCE processors like
437 # the 386 and 486, so nearly everyone can say Y here.
439 #config X86_MCE_NONFATAL
440 # tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
443 # Enabling this feature starts a timer that triggers every 5 seconds which
444 # will look at the machine check registers to see if anything happened.
445 # Non-fatal problems automatically get corrected (but still logged).
446 # Disable this if you don't want to see these messages.
447 # Seeing the messages this option prints out may be indicative of dying hardware,
448 # or out-of-spec (ie, overclocked) hardware.
449 # This option only does something on certain CPUs.
450 # (AMD Athlon/Duron and Intel Pentium 4)
452 #config X86_MCE_P4THERMAL
453 # bool "check for P4 thermal throttling interrupt."
454 # depends on X86_MCE && (X86_UP_APIC || SMP)
456 # Enabling this feature will cause a message to be printed when the P4
457 # enters thermal throttling.
460 tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support"
461 depends on XEN_PRIVILEGED_GUEST
463 If you say Y here and also to "/dev file system support" in the
464 'File systems' section, you will be able to update the microcode on
465 Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II,
466 Pentium III, Pentium 4, Xeon etc. You will obviously need the
467 actual microcode binary data itself which is not shipped with the
470 For latest news and information on obtaining all the required
471 ingredients for this driver, check:
472 <http://www.urbanmyth.org/microcode/>.
474 To compile this driver as a module, choose M here: the
475 module will be called microcode.
478 # tristate "/dev/cpu/*/msr - Model-specific register support"
480 # This device gives privileged processes access to the x86
481 # Model-Specific Registers (MSRs). It is a character device with
482 # major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
483 # MSR accesses are directed to a specific CPU on multi-processor
487 tristate "/dev/cpu/*/cpuid - CPU information support"
489 This device gives processes access to the x86 CPUID instruction to
490 be executed on a specific processor. It is a character device
491 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
494 source "drivers/firmware/Kconfig"
497 prompt "High Memory Support"
503 Linux can use up to 64 Gigabytes of physical memory on x86 systems.
504 However, the address space of 32-bit x86 processors is only 4
505 Gigabytes large. That means that, if you have a large amount of
506 physical memory, not all of it can be "permanently mapped" by the
507 kernel. The physical memory that's not permanently mapped is called
510 If you are compiling a kernel which will never run on a machine with
511 more than 1 Gigabyte total physical RAM, answer "off" here (default
512 choice and suitable for most users). This will result in a "3GB/1GB"
513 split: 3GB are mapped so that each process sees a 3GB virtual memory
514 space and the remaining part of the 4GB virtual memory space is used
515 by the kernel to permanently map as much physical memory as
518 If the machine has between 1 and 4 Gigabytes physical RAM, then
521 If more than 4 Gigabytes is used then answer "64GB" here. This
522 selection turns Intel PAE (Physical Address Extension) mode on.
523 PAE implements 3-level paging on IA32 processors. PAE is fully
524 supported by Linux, PAE mode is implemented on all recent Intel
525 processors (Pentium Pro and better). NOTE: If you say "64GB" here,
526 then the kernel will not boot on CPUs that don't support PAE!
528 The actual amount of total physical memory will either be
529 auto detected or can be forced by using a kernel command line option
530 such as "mem=256M". (Try "man bootparam" or see the documentation of
531 your boot loader (lilo or loadlin) about how to pass options to the
532 kernel at boot time.)
534 If unsure, say "off".
539 Select this if you have a 32-bit processor and between 1 and 4
540 gigabytes of physical RAM.
545 # Select this if you have a 32-bit processor and more than 4
546 # gigabytes of physical RAM.
552 depends on HIGHMEM64G || HIGHMEM4G
557 depends on HIGHMEM64G
560 # Common NUMA Features
562 bool "Numa Memory Allocation and Scheduler Support"
563 depends on SMP && HIGHMEM64G && (X86_NUMAQ || X86_GENERICARCH || (X86_SUMMIT && ACPI))
565 default y if (X86_NUMAQ || X86_SUMMIT)
567 # Need comments to help the hapless user trying to turn on NUMA support
568 comment "NUMA (NUMA-Q) requires SMP, 64GB highmem support"
569 depends on X86_NUMAQ && (!HIGHMEM64G || !SMP)
571 comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
572 depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI)
579 config HAVE_ARCH_BOOTMEM_NODE
585 # bool "Allocate 3rd-level pagetables from highmem"
586 # depends on HIGHMEM4G || HIGHMEM64G
588 # The VM uses one page table entry for each page of physical memory.
589 # For systems with a lot of RAM, this can be wasteful of precious
590 # low memory. Setting this option will put user-space page table
591 # entries in high memory.
595 depends on XEN_PRIVILEGED_GUEST
599 # bool "MTRR (Memory Type Range Register) support"
601 # On Intel P6 family processors (Pentium Pro, Pentium II and later)
602 # the Memory Type Range Registers (MTRRs) may be used to control
603 # processor access to memory ranges. This is most useful if you have
604 # a video (VGA) card on a PCI or AGP bus. Enabling write-combining
605 # allows bus write transfers to be combined into a larger transfer
606 # before bursting over the PCI/AGP bus. This can increase performance
607 # of image write operations 2.5 times or more. Saying Y here creates a
608 # /proc/mtrr file which may be used to manipulate your processor's
609 # MTRRs. Typically the X server should use this.
611 # This code has a reasonably generic interface so that similar
612 # control registers on other processors can be easily supported
615 # The Cyrix 6x86, 6x86MX and M II processors have Address Range
616 # Registers (ARRs) which provide a similar functionality to MTRRs. For
617 # these, the ARRs are used to emulate the MTRRs.
618 # The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
619 # MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
620 # write-combining. All of these processors are supported by this code
621 # and it makes sense to say Y here if you have one of them.
623 # Saying Y here also fixes a problem with buggy SMP BIOSes which only
624 # set the MTRRs for the boot CPU and not for the secondary CPUs. This
625 # can lead to all sorts of problems, so it's good to say Y here.
627 # You can safely say Y even if your machine doesn't have MTRRs, you'll
628 # just add about 9 KB to your kernel.
630 # See <file:Documentation/mtrr.txt> for more information.
633 bool "Enable kernel irq balancing"
634 depends on SMP && X86_IO_APIC
637 The default yes will allow the kernel to do irq load balancing.
638 Saying no will keep the kernel from doing irq load balancing.
642 depends on (SMP || PREEMPT) && X86_CMPXCHG
645 # turning this on wastes a bunch of space.
646 # Summit needs it only when NUMA is on
649 depends on (((X86_SUMMIT || X86_GENERICARCH) && NUMA) || (X86 && EFI))
653 bool "Use register arguments (EXPERIMENTAL)"
654 depends on EXPERIMENTAL
657 Compile the kernel with -mregparm=3. This uses a different ABI
658 and passes the first three arguments of a function call in registers.
659 This will probably break binary only modules.
661 This feature is only enabled for gcc-3.0 and later - earlier compilers
662 generate incorrect output with certain kernel constructs when
665 config KERN_PHYS_OFFSET
666 int "Physical address where the kernel is loaded (1-112)MB"
670 This gives the physical address where the kernel is loaded.
671 Primarily used in the case of kexec on panic where the
672 recovery kernel needs to run at a different address than
675 config X86_LOCAL_APIC
677 depends on (X86_VISWS || SMP) && !X86_VOYAGER
680 if XEN_PHYSDEV_ACCESS
682 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
684 config X86_VISWS_APIC
691 # depends on SMP && !(X86_VISWS || X86_VOYAGER)
695 bool "PCI support" if !X86_VISWS
696 depends on !X86_VOYAGER
697 default y if X86_VISWS
699 Find out whether you have a PCI motherboard. PCI is the name of a
700 bus system, i.e. the way the CPU talks to the other stuff inside
701 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
702 VESA. If you have PCI, say Y, otherwise N.
704 The PCI-HOWTO, available from
705 <http://www.tldp.org/docs.html#howto>, contains valuable
706 information about which PCI hardware does work under Linux and which
710 # prompt "PCI access mode"
711 # depends on PCI && !X86_VISWS
714 # On PCI systems, the BIOS can be used to detect the PCI devices and
715 # determine their configuration. However, some old PCI motherboards
716 # have BIOS bugs and may crash if this is done. Also, some embedded
717 # PCI-based systems don't have any BIOS at all. Linux can also try to
718 # detect the PCI hardware directly without using the BIOS.
720 # With this option, you can specify how Linux should detect the
721 # PCI devices. If you choose "BIOS", the BIOS will be used,
722 # if you choose "Direct", the BIOS won't be used, and if you
723 # choose "MMConfig", then PCI Express MMCONFIG will be used.
724 # If you choose "Any", the kernel will try MMCONFIG, then the
725 # direct access method and falls back to the BIOS if that doesn't
726 # work. If unsure, go with the default, which is "Any".
731 #config PCI_GOMMCONFIG
744 # depends on !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY)
749 # depends on PCI && ((PCI_GODIRECT || PCI_GOANY) || X86_VISWS)
757 source "drivers/pci/pcie/Kconfig"
759 source "drivers/pci/Kconfig"
763 depends on !(X86_VOYAGER || X86_VISWS)
765 Find out whether you have ISA slots on your motherboard. ISA is the
766 name of a bus system, i.e. the way the CPU talks to the other stuff
767 inside your box. Other bus systems are PCI, EISA, MicroChannel
768 (MCA) or VESA. ISA is an older system, now being displaced by PCI;
769 newer boards don't support it. If you have ISA, say Y, otherwise N.
775 The Extended Industry Standard Architecture (EISA) bus was
776 developed as an open alternative to the IBM MicroChannel bus.
778 The EISA bus provided some of the features of the IBM MicroChannel
779 bus while maintaining backward compatibility with cards made for
780 the older ISA bus. The EISA bus saw limited use between 1988 and
781 1995 when it was made obsolete by the PCI bus.
783 Say Y here if you are building a kernel for an EISA-based machine.
787 source "drivers/eisa/Kconfig"
791 depends on !(X86_VISWS || X86_VOYAGER)
793 MicroChannel Architecture is found in some IBM PS/2 machines and
794 laptops. It is a bus system similar to PCI or ISA. See
795 <file:Documentation/mca.txt> (and especially the web page given
796 there) before attempting to build an MCA bus kernel.
799 depends on X86_VOYAGER
800 default y if X86_VOYAGER
802 source "drivers/mca/Kconfig"
805 tristate "NatSemi SCx200 support"
806 depends on !X86_VOYAGER
808 This provides basic support for the National Semiconductor SCx200
809 processor. Right now this is just a driver for the GPIO pins.
811 If you don't know what to do here, say N.
813 This support is also available as a module. If compiled as a
814 module, it will be called scx200.
816 source "drivers/pcmcia/Kconfig"
818 source "drivers/pci/hotplug/Kconfig"
824 menu "Kernel hacking"
827 bool "Kernel debugging"
829 Say Y here if you are developing drivers or trying to debug and
830 identify kernel problems.
833 bool "Early printk" if EMBEDDED
836 Write kernel log output directly into the VGA buffer or to a serial
839 This is useful for kernel debugging when your machine crashes very
840 early before the console code is initialized. For normal operation
841 it is not recommended because it looks ugly and doesn't cooperate
842 with klogd/syslogd or the X server. You should normally N here,
843 unless you want to debug such a crash.
845 config DEBUG_STACKOVERFLOW
846 bool "Check for stack overflows"
847 depends on DEBUG_KERNEL
849 config DEBUG_STACK_USAGE
850 bool "Stack utilization instrumentation"
851 depends on DEBUG_KERNEL
853 Enables the display of the minimum amount of free stack which each
854 task has ever had available in the sysrq-T and sysrq-P debug output.
856 This option will slow down process creation somewhat.
859 bool "Debug memory allocations"
860 depends on DEBUG_KERNEL
862 Say Y here to have the kernel do limited verification on memory
863 allocation as well as poisoning memory on free to catch use of freed
867 bool "Magic SysRq key"
868 depends on DEBUG_KERNEL
870 If you say Y here, you will have some control over the system even
871 if the system crashes for example during kernel debugging (e.g., you
872 will be able to flush the buffer cache to disk, reboot the system
873 immediately or dump some status information). This is accomplished
874 by pressing various keys while holding SysRq (Alt+PrintScreen). It
875 also works on a serial console (on PC hardware at least), if you
876 send a BREAK and then within 5 seconds a command keypress. The
877 keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
878 unless you really know what this hack does.
880 config DEBUG_SPINLOCK
881 bool "Spinlock debugging"
882 depends on DEBUG_KERNEL
884 Say Y here and build SMP to catch missing spinlock initialization
885 and certain other kinds of spinlock errors commonly made. This is
886 best used in conjunction with the NMI watchdog so that spinlock
887 deadlocks are also debuggable.
889 config DEBUG_PAGEALLOC
890 bool "Page alloc debugging"
891 depends on DEBUG_KERNEL
893 Unmap pages from the kernel linear mapping after free_pages().
894 This results in a large slowdown, but helps to find certain types
895 of memory corruptions.
898 bool "Highmem debugging"
899 depends on DEBUG_KERNEL && HIGHMEM
901 This options enables addition error checking for high memory systems.
902 Disable for production systems.
905 bool "Compile the kernel with debug info"
906 depends on DEBUG_KERNEL
908 If you say Y here the resulting kernel image will include
909 debugging info resulting in a larger kernel image.
910 Say Y here only if you plan to use gdb to debug the kernel.
911 If you don't debug the kernel, you can say N.
913 config DEBUG_SPINLOCK_SLEEP
914 bool "Sleep-inside-spinlock checking"
916 If you say Y here, various routines which may sleep will become very
917 noisy if they are called with a spinlock held.
920 bool "Compile the kernel with frame pointers"
922 If you say Y here the resulting kernel image will be slightly larger
923 and slower, but it will give very useful debugging information.
924 If you don't debug the kernel, you can say N, but we may not be able
925 to solve problems without frame pointers.
928 bool "Use 4Kb for kernel stacks instead of 8Kb"
930 If you say Y here the kernel will use a 4Kb stacksize for the
931 kernel stack attached to each process/thread. This facilitates
932 running more threads on a system and also reduces the pressure
933 on the VM subsystem for higher order allocations. This option
934 will also use IRQ stacks to compensate for the reduced stackspace.
936 config X86_FIND_SMP_CONFIG
938 depends on X86_LOCAL_APIC || X86_VOYAGER
943 depends on X86_LOCAL_APIC && !X86_VISWS
949 # Use the generic interrupt handling code in kernel/irq/:
951 config GENERIC_HARDIRQS
955 config GENERIC_IRQ_PROBE
961 depends on SMP && !X86_VOYAGER
966 # depends on SMP && !(X86_VISWS || X86_VOYAGER)
969 config X86_BIOS_REBOOT
971 depends on !(X86_VISWS || X86_VOYAGER)
974 config X86_TRAMPOLINE
976 depends on X86_SMP || (X86_VOYAGER && SMP)
981 depends on X86 && !EMBEDDED