2005-04-17 06:20:36 +08:00
|
|
|
#
|
|
|
|
# For a description of the syntax of this configuration file,
|
|
|
|
# see Documentation/kbuild/kconfig-language.txt.
|
|
|
|
#
|
|
|
|
|
|
|
|
config 64BIT
|
|
|
|
def_bool y
|
|
|
|
|
|
|
|
config MMU
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config UID16
|
|
|
|
bool
|
|
|
|
|
|
|
|
config RWSEM_GENERIC_SPINLOCK
|
|
|
|
bool
|
|
|
|
|
|
|
|
config RWSEM_XCHGADD_ALGORITHM
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config GENERIC_ISA_DMA
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config HAVE_DEC_LOCK
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config EARLY_PRINTK
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config COMPAT
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2005-05-06 07:15:11 +08:00
|
|
|
config SCHED_NO_NO_OMIT_FRAME_POINTER
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
# We optimistically allocate largepages from the VM, so make the limit
|
|
|
|
# large enough (16MB). This badly named config option is actually
|
|
|
|
# max order + 1
|
|
|
|
config FORCE_MAX_ZONEORDER
|
|
|
|
int
|
|
|
|
default "13"
|
|
|
|
|
|
|
|
source "init/Kconfig"
|
|
|
|
|
|
|
|
config SYSVIPC_COMPAT
|
|
|
|
bool
|
|
|
|
depends on COMPAT && SYSVIPC
|
|
|
|
default y
|
|
|
|
|
|
|
|
menu "Platform support"
|
|
|
|
|
|
|
|
choice
|
|
|
|
prompt "Platform Type"
|
|
|
|
default PPC_MULTIPLATFORM
|
|
|
|
|
|
|
|
config PPC_ISERIES
|
|
|
|
bool "IBM Legacy iSeries"
|
|
|
|
|
|
|
|
config PPC_MULTIPLATFORM
|
|
|
|
bool "Generic"
|
|
|
|
|
|
|
|
endchoice
|
|
|
|
|
|
|
|
config PPC_PSERIES
|
|
|
|
depends on PPC_MULTIPLATFORM
|
|
|
|
bool " IBM pSeries & new iSeries"
|
|
|
|
default y
|
|
|
|
|
|
|
|
config PPC_PMAC
|
|
|
|
depends on PPC_MULTIPLATFORM
|
|
|
|
bool " Apple G5 based machines"
|
|
|
|
default y
|
|
|
|
select U3_DART
|
|
|
|
|
|
|
|
config PPC_MAPLE
|
|
|
|
depends on PPC_MULTIPLATFORM
|
|
|
|
bool " Maple 970FX Evaluation Board"
|
|
|
|
select U3_DART
|
|
|
|
select MPIC_BROKEN_U3
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
This option enables support for the Maple 970FX Evaluation Board.
|
|
|
|
For more informations, refer to <http://www.970eval.com>
|
|
|
|
|
|
|
|
config PPC
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config PPC64
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config PPC_OF
|
|
|
|
depends on PPC_MULTIPLATFORM
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
# VMX is pSeries only for now until somebody writes the iSeries
|
|
|
|
# exception vectors for it
|
|
|
|
config ALTIVEC
|
|
|
|
bool "Support for VMX (Altivec) vector unit"
|
|
|
|
depends on PPC_MULTIPLATFORM
|
|
|
|
default y
|
|
|
|
|
|
|
|
config PPC_SPLPAR
|
|
|
|
depends on PPC_PSERIES
|
|
|
|
bool "Support for shared-processor logical partitions"
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
Enabling this option will make the kernel run more efficiently
|
|
|
|
on logically-partitioned pSeries systems which use shared
|
|
|
|
processors, that is, which share physical processors between
|
|
|
|
two or more partitions.
|
|
|
|
|
|
|
|
config IBMVIO
|
|
|
|
depends on PPC_PSERIES || PPC_ISERIES
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config U3_DART
|
|
|
|
bool
|
|
|
|
depends on PPC_MULTIPLATFORM
|
|
|
|
default n
|
|
|
|
|
|
|
|
config MPIC_BROKEN_U3
|
|
|
|
bool
|
|
|
|
depends on PPC_MAPLE
|
|
|
|
default y
|
|
|
|
|
|
|
|
config PPC_PMAC64
|
|
|
|
bool
|
|
|
|
depends on PPC_PMAC
|
|
|
|
default y
|
|
|
|
|
|
|
|
config BOOTX_TEXT
|
|
|
|
bool "Support for early boot text console"
|
|
|
|
depends PPC_OF
|
|
|
|
help
|
|
|
|
Say Y here to see progress messages from the boot firmware in text
|
|
|
|
mode. Requires an Open Firmware compatible video card.
|
|
|
|
|
|
|
|
config POWER4_ONLY
|
|
|
|
bool "Optimize for POWER4"
|
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
Cause the compiler to optimize for POWER4 processors. The resulting
|
|
|
|
binary will not work on POWER3 or RS64 processors when compiled with
|
|
|
|
binutils 2.15 or later.
|
|
|
|
|
|
|
|
config IOMMU_VMERGE
|
|
|
|
bool "Enable IOMMU virtual merging (EXPERIMENTAL)"
|
|
|
|
depends on EXPERIMENTAL
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
Cause IO segments sent to a device for DMA to be merged virtually
|
|
|
|
by the IOMMU when they happen to have been allocated contiguously.
|
|
|
|
This doesn't add pressure to the IOMMU allocator. However, some
|
|
|
|
drivers don't support getting large merged segments coming back
|
|
|
|
from *_map_sg(). Say Y if you know the drivers you are using are
|
|
|
|
properly handling this case.
|
|
|
|
|
|
|
|
config SMP
|
|
|
|
bool "Symmetric multi-processing support"
|
|
|
|
---help---
|
|
|
|
This enables support for systems with more than one CPU. If you have
|
|
|
|
a system with only one CPU, say N. If you have a system with more
|
|
|
|
than one CPU, say Y.
|
|
|
|
|
|
|
|
If you say N here, the kernel will run on single and multiprocessor
|
|
|
|
machines, but will use only one CPU of a multiprocessor machine. If
|
|
|
|
you say Y here, the kernel will run on single-processor machines.
|
|
|
|
On a single-processor machine, the kernel will run faster if you say
|
|
|
|
N here.
|
|
|
|
|
|
|
|
If you don't know what to do here, say Y.
|
|
|
|
|
|
|
|
config NR_CPUS
|
|
|
|
int "Maximum number of CPUs (2-128)"
|
|
|
|
range 2 128
|
|
|
|
depends on SMP
|
|
|
|
default "32"
|
|
|
|
|
|
|
|
config HMT
|
|
|
|
bool "Hardware multithreading"
|
|
|
|
depends on SMP && PPC_PSERIES && BROKEN
|
|
|
|
help
|
|
|
|
This option enables hardware multithreading on RS64 cpus.
|
|
|
|
pSeries systems p620 and p660 have such a cpu type.
|
|
|
|
|
2005-06-23 15:07:43 +08:00
|
|
|
config ARCH_DISCONTIGMEM_ENABLE
|
2005-06-23 15:07:51 +08:00
|
|
|
def_bool y
|
2005-04-17 06:20:36 +08:00
|
|
|
depends on SMP && PPC_PSERIES
|
|
|
|
|
2005-06-23 15:07:51 +08:00
|
|
|
config ARCH_DISCONTIGMEM_DEFAULT
|
|
|
|
def_bool y
|
|
|
|
depends on ARCH_DISCONTIGMEM_ENABLE
|
|
|
|
|
|
|
|
config ARCH_FLATMEM_ENABLE
|
|
|
|
def_bool y
|
|
|
|
|
2005-06-23 15:07:43 +08:00
|
|
|
source "mm/Kconfig"
|
|
|
|
|
2005-06-23 15:08:01 +08:00
|
|
|
config HAVE_ARCH_EARLY_PFN_TO_NID
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
[PATCH] sparsemem swiss cheese numa layouts
The part of the sparsemem patch which modifies memmap_init_zone() has recently
become a problem. It changes behavior so that there is a call to
pfn_to_page() for each individual page inside of a node's range:
node_start_pfn through node_end_pfn. It used to simply do this once, at the
beginning of the node, but having sparsemem's non-contiguous mem_map[]s inside
of a node made it necessary to change.
Mike Kravetz recently wrote a patch which made the NUMA code accept some new
kinds of layouts. The system's memory was laid out like this, with node 0's
memory in two pieces: one before and one after node 1's memory:
Node 0: +++++ +++++
Node 1: +++++
Previous behavior before Mike's patch was to assign nodes like this:
Node 0: 00000 XXXXX
Node 1: 11111
Where the 'X' areas were simply thrown away. The new behavior was to make the
pg_data_t span node 0 across all of its areas, including areas that are really
node 1's: Node 0: 000000000000000 Node 1: 11111
This wastes a little bit of mem_map space, but ends up being OK, and more
fully utilizes the system's memory. memmap_init_zone() initializes all of the
"struct page"s for node 0, even for the "hole", but those never get used,
because there is no pfn_to_page() that resolves to those pages. However, only
calling pfn_to_page() once, memmap_init_zone() always uses the pages that were
allocated for node0->node_mem_map because:
struct page *start = pfn_to_page(start_pfn);
// effectively start = &node->node_mem_map[0]
for (page = start; page < (start + size); page++) {
init_page_here();...
page++;
}
Slow, and wasteful, but generally harmless.
But, modify that to call pfn_to_page() for each loop iteration (like sparsemem
does):
for (pfn = start_pfn; pfn < < (start_pfn + size); pfn++++) {
page = pfn_to_page(pfn);
}
And you end up trying to initialize node 1's pages too early, along with bogus
data from node 0. This patch checks for those weird layouts and declines to
touch the pages, making the more frequent pfn_to_page() calls OK to do.
Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-23 15:07:59 +08:00
|
|
|
# Some NUMA nodes have memory ranges that span
|
|
|
|
# other nodes. Even though a pfn is valid and
|
|
|
|
# between a node's start and end pfns, it may not
|
|
|
|
# reside on that node.
|
|
|
|
#
|
|
|
|
# This is a relatively temporary hack that should
|
|
|
|
# be able to go away when sparsemem is fully in
|
|
|
|
# place
|
|
|
|
config NODES_SPAN_OTHER_NODES
|
|
|
|
def_bool y
|
|
|
|
depends on NEED_MULTIPLE_NODES
|
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
config NUMA
|
|
|
|
bool "NUMA support"
|
|
|
|
depends on DISCONTIGMEM
|
|
|
|
|
|
|
|
config SCHED_SMT
|
|
|
|
bool "SMT (Hyperthreading) scheduler support"
|
|
|
|
depends on SMP
|
|
|
|
default off
|
|
|
|
help
|
|
|
|
SMT scheduler support improves the CPU scheduler's decision making
|
|
|
|
when dealing with POWER5 cpus at a cost of slightly increased
|
|
|
|
overhead in some places. If unsure say N here.
|
|
|
|
|
|
|
|
config PREEMPT
|
|
|
|
bool "Preemptible Kernel"
|
|
|
|
help
|
|
|
|
This option reduces the latency of the kernel when reacting to
|
|
|
|
real-time or interactive events by allowing a low priority process to
|
|
|
|
be preempted even if it is in kernel mode executing a system call.
|
|
|
|
|
|
|
|
Say Y here if you are building a kernel for a desktop, embedded
|
|
|
|
or real-time system. Say N if you are unsure.
|
|
|
|
|
|
|
|
config PREEMPT_BKL
|
|
|
|
bool "Preempt The Big Kernel Lock"
|
|
|
|
depends on PREEMPT
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
This option reduces the latency of the kernel by making the
|
|
|
|
big kernel lock preemptible.
|
|
|
|
|
|
|
|
Say Y here if you are building a kernel for a desktop system.
|
|
|
|
Say N if you are unsure.
|
|
|
|
|
|
|
|
config EEH
|
|
|
|
bool "PCI Extended Error Handling (EEH)" if EMBEDDED
|
|
|
|
depends on PPC_PSERIES
|
|
|
|
default y if !EMBEDDED
|
|
|
|
|
|
|
|
#
|
|
|
|
# Use the generic interrupt handling code in kernel/irq/:
|
|
|
|
#
|
|
|
|
config GENERIC_HARDIRQS
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config MSCHUNKS
|
|
|
|
bool
|
|
|
|
depends on PPC_ISERIES
|
|
|
|
default y
|
|
|
|
|
|
|
|
|
|
|
|
config PPC_RTAS
|
|
|
|
bool
|
|
|
|
depends on PPC_PSERIES
|
|
|
|
default y
|
|
|
|
|
|
|
|
config RTAS_PROC
|
|
|
|
bool "Proc interface to RTAS"
|
|
|
|
depends on PPC_RTAS
|
2005-05-07 08:41:03 +08:00
|
|
|
default y
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
config RTAS_FLASH
|
|
|
|
tristate "Firmware flash interface"
|
|
|
|
depends on RTAS_PROC
|
|
|
|
|
|
|
|
config SCANLOG
|
|
|
|
tristate "Scanlog dump interface"
|
|
|
|
depends on RTAS_PROC && PPC_PSERIES
|
|
|
|
|
|
|
|
config LPARCFG
|
|
|
|
tristate "LPAR Configuration Data"
|
|
|
|
depends on PPC_PSERIES || PPC_ISERIES
|
|
|
|
help
|
|
|
|
Provide system capacity information via human readable
|
|
|
|
<key word>=<value> pairs through a /proc/ppc64/lparcfg interface.
|
|
|
|
|
|
|
|
config SECCOMP
|
|
|
|
bool "Enable seccomp to safely compute untrusted bytecode"
|
|
|
|
depends on PROC_FS
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
This kernel feature is useful for number crunching applications
|
|
|
|
that may need to compute untrusted bytecode during their
|
|
|
|
execution. By using pipes or other transports made available to
|
|
|
|
the process as file descriptors supporting the read/write
|
|
|
|
syscalls, it's possible to isolate those applications in
|
|
|
|
their own address space using seccomp. Once seccomp is
|
|
|
|
enabled via /proc/<pid>/seccomp, it cannot be disabled
|
|
|
|
and the task is only allowed to execute a few safe syscalls
|
|
|
|
defined by each seccomp mode.
|
|
|
|
|
|
|
|
If unsure, say Y. Only embedded should say N here.
|
|
|
|
|
|
|
|
endmenu
|
|
|
|
|
2005-05-04 12:39:22 +08:00
|
|
|
config ISA_DMA_API
|
|
|
|
bool
|
|
|
|
default y
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
menu "General setup"
|
|
|
|
|
|
|
|
config ISA
|
|
|
|
bool
|
|
|
|
help
|
|
|
|
Find out whether you have ISA slots on your motherboard. ISA is the
|
|
|
|
name of a bus system, i.e. the way the CPU talks to the other stuff
|
|
|
|
inside your box. If you have an Apple machine, say N here; if you
|
|
|
|
have an IBM RS/6000 or pSeries machine or a PReP machine, say Y. If
|
|
|
|
you have an embedded board, consult your board documentation.
|
|
|
|
|
|
|
|
config SBUS
|
|
|
|
bool
|
|
|
|
|
|
|
|
config MCA
|
|
|
|
bool
|
|
|
|
|
|
|
|
config EISA
|
|
|
|
bool
|
|
|
|
|
|
|
|
config PCI
|
2005-06-22 08:15:52 +08:00
|
|
|
bool "support for PCI devices" if (EMBEDDED && PPC_ISERIES)
|
2005-04-17 06:20:36 +08:00
|
|
|
default y
|
|
|
|
help
|
|
|
|
Find out whether your system includes a PCI bus. PCI is the name of
|
|
|
|
a bus system, i.e. the way the CPU talks to the other stuff inside
|
|
|
|
your box. If you say Y here, the kernel will include drivers and
|
|
|
|
infrastructure code to support PCI bus devices.
|
|
|
|
|
|
|
|
config PCI_DOMAINS
|
|
|
|
bool
|
|
|
|
default PCI
|
|
|
|
|
|
|
|
source "fs/Kconfig.binfmt"
|
|
|
|
|
|
|
|
source "drivers/pci/Kconfig"
|
|
|
|
|
|
|
|
config HOTPLUG_CPU
|
|
|
|
bool "Support for hot-pluggable CPUs"
|
|
|
|
depends on SMP && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
|
|
|
|
select HOTPLUG
|
|
|
|
---help---
|
|
|
|
Say Y here to be able to turn CPUs off and on.
|
|
|
|
|
|
|
|
Say N if you are unsure.
|
|
|
|
|
|
|
|
source "drivers/pcmcia/Kconfig"
|
|
|
|
|
|
|
|
source "drivers/pci/hotplug/Kconfig"
|
|
|
|
|
|
|
|
config PROC_DEVICETREE
|
|
|
|
bool "Support for Open Firmware device tree in /proc"
|
|
|
|
depends on !PPC_ISERIES
|
|
|
|
help
|
|
|
|
This option adds a device-tree directory under /proc which contains
|
|
|
|
an image of the device tree that the kernel copies from Open
|
|
|
|
Firmware. If unsure, say Y here.
|
|
|
|
|
|
|
|
config CMDLINE_BOOL
|
|
|
|
bool "Default bootloader kernel arguments"
|
|
|
|
depends on !PPC_ISERIES
|
|
|
|
|
|
|
|
config CMDLINE
|
|
|
|
string "Initial kernel command string"
|
|
|
|
depends on CMDLINE_BOOL
|
|
|
|
default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
|
|
|
|
help
|
|
|
|
On some platforms, there is currently no way for the boot loader to
|
|
|
|
pass arguments to the kernel. For these platforms, you can supply
|
|
|
|
some command-line options at build time by entering them here. In
|
|
|
|
most cases you will need to specify the root device here.
|
|
|
|
|
|
|
|
endmenu
|
|
|
|
|
|
|
|
source "drivers/Kconfig"
|
|
|
|
|
|
|
|
source "fs/Kconfig"
|
|
|
|
|
|
|
|
menu "iSeries device drivers"
|
|
|
|
depends on PPC_ISERIES
|
|
|
|
|
|
|
|
config VIOCONS
|
|
|
|
tristate "iSeries Virtual Console Support"
|
|
|
|
|
|
|
|
config VIODASD
|
|
|
|
tristate "iSeries Virtual I/O disk support"
|
|
|
|
help
|
|
|
|
If you are running on an iSeries system and you want to use
|
|
|
|
virtual disks created and managed by OS/400, say Y.
|
|
|
|
|
|
|
|
config VIOCD
|
|
|
|
tristate "iSeries Virtual I/O CD support"
|
|
|
|
help
|
|
|
|
If you are running Linux on an IBM iSeries system and you want to
|
|
|
|
read a CD drive owned by OS/400, say Y here.
|
|
|
|
|
|
|
|
config VIOTAPE
|
|
|
|
tristate "iSeries Virtual Tape Support"
|
|
|
|
help
|
|
|
|
If you are running Linux on an iSeries system and you want Linux
|
|
|
|
to read and/or write a tape drive owned by OS/400, say Y here.
|
|
|
|
|
|
|
|
endmenu
|
|
|
|
|
|
|
|
config VIOPATH
|
|
|
|
bool
|
|
|
|
depends on VIOCONS || VIODASD || VIOCD || VIOTAPE || VETH
|
|
|
|
default y
|
|
|
|
|
|
|
|
source "arch/ppc64/oprofile/Kconfig"
|
|
|
|
|
|
|
|
source "arch/ppc64/Kconfig.debug"
|
|
|
|
|
|
|
|
source "security/Kconfig"
|
|
|
|
|
|
|
|
config KEYS_COMPAT
|
|
|
|
bool
|
|
|
|
depends on COMPAT && KEYS
|
|
|
|
default y
|
|
|
|
|
|
|
|
source "crypto/Kconfig"
|
|
|
|
|
|
|
|
source "lib/Kconfig"
|