ae071a11ce71aa16a657320789435a2d9a8e4779
[linux-2.6.git] / arch / s390 / Kconfig
1 #
2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
4 #
5
6 config MMU
7         bool
8         default y
9
10 config LOCKDEP_SUPPORT
11         bool
12         default y
13
14 config STACKTRACE_SUPPORT
15         bool
16         default y
17
18 config RWSEM_GENERIC_SPINLOCK
19         bool
20
21 config RWSEM_XCHGADD_ALGORITHM
22         bool
23         default y
24
25 config GENERIC_HWEIGHT
26         bool
27         default y
28
29 config GENERIC_CALIBRATE_DELAY
30         bool
31         default y
32
33 config GENERIC_BUST_SPINLOCK
34         bool
35
36 mainmenu "Linux Kernel Configuration"
37
38 config S390
39         bool
40         default y
41
42 source "init/Kconfig"
43
44 menu "Base setup"
45
46 comment "Processor type and features"
47
48 config 64BIT
49         bool "64 bit kernel"
50         help
51           Select this option if you have a 64 bit IBM zSeries machine
52           and want to use the 64 bit addressing mode.
53
54 config SMP
55         bool "Symmetric multi-processing support"
56         ---help---
57           This enables support for systems with more than one CPU. If you have
58           a system with only one CPU, like most personal computers, say N. If
59           you have a system with more than one CPU, say Y.
60
61           If you say N here, the kernel will run on single and multiprocessor
62           machines, but will use only one CPU of a multiprocessor machine. If
63           you say Y here, the kernel will run on many, but not all,
64           singleprocessor machines. On a singleprocessor machine, the kernel
65           will run faster if you say N here.
66
67           See also the <file:Documentation/smp.txt> and the SMP-HOWTO
68           available at <http://www.tldp.org/docs.html#howto>.
69
70           Even if you don't know what to do here, say Y.
71
72 config NR_CPUS
73         int "Maximum number of CPUs (2-64)"
74         range 2 64
75         depends on SMP
76         default "32"
77         help
78           This allows you to specify the maximum number of CPUs which this
79           kernel will support.  The maximum supported value is 64 and the
80           minimum value which makes sense is 2.
81
82           This is purely to save memory - each supported CPU adds
83           approximately sixteen kilobytes to the kernel image.
84
85 config HOTPLUG_CPU
86         bool "Support for hot-pluggable CPUs"
87         depends on SMP
88         select HOTPLUG
89         default n
90         help
91           Say Y here to be able to turn CPUs off and on. CPUs
92           can be controlled through /sys/devices/system/cpu/cpu#.
93           Say N if you want to disable CPU hotplug.
94
95 config DEFAULT_MIGRATION_COST
96         int
97         default "1000000"
98
99 config MATHEMU
100         bool "IEEE FPU emulation"
101         depends on MARCH_G5
102         help
103           This option is required for IEEE compliant floating point arithmetic
104           on older S/390 machines. Say Y unless you know your machine doesn't
105           need this.
106
107 config COMPAT
108         bool "Kernel support for 31 bit emulation"
109         depends on 64BIT
110         help
111           Select this option if you want to enable your system kernel to
112           handle system-calls from ELF binaries for 31 bit ESA.  This option
113           (and some other stuff like libraries and such) is needed for
114           executing 31 bit applications.  It is safe to say "Y".
115
116 config SYSVIPC_COMPAT
117         bool
118         depends on COMPAT && SYSVIPC
119         default y
120
121 comment "Code generation options"
122
123 choice
124         prompt "Processor type"
125         default MARCH_G5
126
127 config MARCH_G5
128         bool "S/390 model G5 and G6"
129         depends on !64BIT
130         help
131           Select this to build a 31 bit kernel that works
132           on all S/390 and zSeries machines.
133
134 config MARCH_Z900
135         bool "IBM eServer zSeries model z800 and z900"
136         help
137           Select this to optimize for zSeries machines. This
138           will enable some optimizations that are not available
139           on older 31 bit only CPUs.
140
141 config MARCH_Z990
142         bool "IBM eServer zSeries model z890 and z990"
143         help
144           Select this enable optimizations for model z890/z990.
145           This will be slightly faster but does not work on
146           older machines such as the z900.
147
148 endchoice
149
150 config PACK_STACK
151         bool "Pack kernel stack"
152         help
153           This option enables the compiler option -mkernel-backchain if it
154           is available. If the option is available the compiler supports
155           the new stack layout which dramatically reduces the minimum stack
156           frame size. With an old compiler a non-leaf function needs a
157           minimum of 96 bytes on 31 bit and 160 bytes on 64 bit. With
158           -mkernel-backchain the minimum size drops to 16 byte on 31 bit
159           and 24 byte on 64 bit.
160
161           Say Y if you are unsure.
162
163 config SMALL_STACK
164         bool "Use 4kb/8kb for kernel stack instead of 8kb/16kb"
165         depends on PACK_STACK
166         help
167           If you say Y here and the compiler supports the -mkernel-backchain
168           option the kernel will use a smaller kernel stack size. For 31 bit
169           the reduced size is 4kb instead of 8kb and for 64 bit it is 8kb
170           instead of 16kb. This allows to run more thread on a system and
171           reduces the pressure on the memory management for higher order
172           page allocations.
173
174           Say N if you are unsure.
175
176
177 config CHECK_STACK
178         bool "Detect kernel stack overflow"
179         help
180           This option enables the compiler option -mstack-guard and
181           -mstack-size if they are available. If the compiler supports them
182           it will emit additional code to each function prolog to trigger
183           an illegal operation if the kernel stack is about to overflow.
184
185           Say N if you are unsure.
186
187 config STACK_GUARD
188         int "Size of the guard area (128-1024)"
189         range 128 1024
190         depends on CHECK_STACK
191         default "256"
192         help
193           This allows you to specify the size of the guard area at the lower
194           end of the kernel stack. If the kernel stack points into the guard
195           area on function entry an illegal operation is triggered. The size
196           needs to be a power of 2. Please keep in mind that the size of an
197           interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit.
198           The minimum size for the stack guard should be 256 for 31 bit and
199           512 for 64 bit.
200
201 config WARN_STACK
202         bool "Emit compiler warnings for function with broken stack usage"
203         help
204           This option enables the compiler options -mwarn-framesize and
205           -mwarn-dynamicstack. If the compiler supports these options it
206           will generate warnings for function which either use alloca or
207           create a stack frame bigger then CONFIG_WARN_STACK_SIZE.
208
209           Say N if you are unsure.
210
211 config WARN_STACK_SIZE
212         int "Maximum frame size considered safe (128-2048)"
213         range 128 2048
214         depends on WARN_STACK
215         default "256"
216         help
217           This allows you to specify the maximum frame size a function may
218           have without the compiler complaining about it.
219
220 source "mm/Kconfig"
221
222 comment "I/O subsystem configuration"
223
224 config MACHCHK_WARNING
225         bool "Process warning machine checks"
226         help
227           Select this option if you want the machine check handler on IBM S/390 or
228           zSeries to process warning machine checks (e.g. on power failures).
229           If unsure, say "Y".
230
231 config QDIO
232         tristate "QDIO support"
233         ---help---
234           This driver provides the Queued Direct I/O base support for
235           IBM mainframes.
236
237           For details please refer to the documentation provided by IBM at
238           <http://www10.software.ibm.com/developerworks/opensource/linux390>
239
240           To compile this driver as a module, choose M here: the
241           module will be called qdio.
242
243           If unsure, say Y.
244
245 config QDIO_PERF_STATS
246         bool "Performance statistics in /proc"
247         depends on QDIO
248         help
249           Say Y here to get performance statistics in /proc/qdio_perf
250
251           If unsure, say N.
252
253 config QDIO_DEBUG
254         bool "Extended debugging information"
255         depends on QDIO
256         help
257           Say Y here to get extended debugging output in
258             /sys/kernel/debug/s390dbf/qdio...
259           Warning: this option reduces the performance of the QDIO module.
260
261           If unsure, say N.
262
263 comment "Misc"
264
265 config PREEMPT
266         bool "Preemptible Kernel"
267         help
268           This option reduces the latency of the kernel when reacting to
269           real-time or interactive events by allowing a low priority process to
270           be preempted even if it is in kernel mode executing a system call.
271           This allows applications to run more reliably even when the system is
272           under load.
273
274           Say N if you are unsure.
275
276 config IPL
277         bool "Builtin IPL record support"
278         help
279           If you want to use the produced kernel to IPL directly from a
280           device, you have to merge a bootsector specific to the device
281           into the first bytes of the kernel. You will have to select the
282           IPL device.
283
284 choice
285         prompt "IPL method generated into head.S"
286         depends on IPL
287         default IPL_TAPE
288         help
289           Select "tape" if you want to IPL the image from a Tape.
290
291           Select "vm_reader" if you are running under VM/ESA and want
292           to IPL the image from the emulated card reader.
293
294 config IPL_TAPE
295         bool "tape"
296
297 config IPL_VM
298         bool "vm_reader"
299
300 endchoice
301
302 source "fs/Kconfig.binfmt"
303
304 config PROCESS_DEBUG
305         bool "Show crashed user process info"
306         help
307           Say Y to print all process fault locations to the console.  This is
308           a debugging option; you probably do not want to set it unless you
309           are an S390 port maintainer.
310
311 config PFAULT
312         bool "Pseudo page fault support"
313         help
314           Select this option, if you want to use PFAULT pseudo page fault
315           handling under VM. If running native or in LPAR, this option
316           has no effect. If your VM does not support PFAULT, PAGEEX
317           pseudo page fault handling will be used.
318           Note that VM 4.2 supports PFAULT but has a bug in its
319           implementation that causes some problems.
320           Everybody who wants to run Linux under VM != VM4.2 should select
321           this option.
322
323 config SHARED_KERNEL
324         bool "VM shared kernel support"
325         help
326           Select this option, if you want to share the text segment of the
327           Linux kernel between different VM guests. This reduces memory
328           usage with lots of guests but greatly increases kernel size.
329           You should only select this option if you know what you are
330           doing and want to exploit this feature.
331
332 config CMM
333         tristate "Cooperative memory management"
334         help
335           Select this option, if you want to enable the kernel interface
336           to reduce the memory size of the system. This is accomplished
337           by allocating pages of memory and put them "on hold". This only
338           makes sense for a system running under VM where the unused pages
339           will be reused by VM for other guest systems. The interface
340           allows an external monitor to balance memory of many systems.
341           Everybody who wants to run Linux under VM should select this
342           option.
343
344 config CMM_PROC
345         bool "/proc interface to cooperative memory management"
346         depends on CMM
347         help
348           Select this option to enable the /proc interface to the
349           cooperative memory management.
350
351 config CMM_IUCV
352         bool "IUCV special message interface to cooperative memory management"
353         depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
354         help
355           Select this option to enable the special message interface to
356           the cooperative memory management.
357
358 config VIRT_TIMER
359         bool "Virtual CPU timer support"
360         help
361           This provides a kernel interface for virtual CPU timers.
362           Default is disabled.
363
364 config VIRT_CPU_ACCOUNTING
365         bool "Base user process accounting on virtual cpu timer"
366         depends on VIRT_TIMER
367         help
368           Select this option to use CPU timer deltas to do user
369           process accounting.
370
371 config APPLDATA_BASE
372         bool "Linux - VM Monitor Stream, base infrastructure"
373         depends on PROC_FS && VIRT_TIMER=y
374         help
375           This provides a kernel interface for creating and updating z/VM APPLDATA
376           monitor records. The monitor records are updated at certain time
377           intervals, once the timer is started.
378           Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
379           i.e. enables or disables monitoring on the Linux side.
380           A custom interval value (in seconds) can be written to
381           /proc/appldata/interval.
382
383           Defaults are 60 seconds interval and timer off.
384           The /proc entries can also be read from, showing the current settings.
385
386 config APPLDATA_MEM
387         tristate "Monitor memory management statistics"
388         depends on APPLDATA_BASE
389         help
390           This provides memory management related data to the Linux - VM Monitor
391           Stream, like paging/swapping rate, memory utilisation, etc.
392           Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM
393           APPLDATA monitor record, i.e. enables or disables monitoring this record
394           on the z/VM side.
395
396           Default is disabled.
397           The /proc entry can also be read from, showing the current settings.
398
399           This can also be compiled as a module, which will be called
400           appldata_mem.o.
401
402 config APPLDATA_OS
403         tristate "Monitor OS statistics"
404         depends on APPLDATA_BASE
405         help
406           This provides OS related data to the Linux - VM Monitor Stream, like
407           CPU utilisation, etc.
408           Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
409           APPLDATA monitor record, i.e. enables or disables monitoring this record
410           on the z/VM side.
411
412           Default is disabled.
413           This can also be compiled as a module, which will be called
414           appldata_os.o.
415
416 config APPLDATA_NET_SUM
417         tristate "Monitor overall network statistics"
418         depends on APPLDATA_BASE
419         help
420           This provides network related data to the Linux - VM Monitor Stream,
421           currently there is only a total sum of network I/O statistics, no
422           per-interface data.
423           Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
424           APPLDATA monitor record, i.e. enables or disables monitoring this record
425           on the z/VM side.
426
427           Default is disabled.
428           This can also be compiled as a module, which will be called
429           appldata_net_sum.o.
430
431 config NO_IDLE_HZ
432         bool "No HZ timer ticks in idle"
433         help
434           Switches the regular HZ timer off when the system is going idle.
435           This helps z/VM to detect that the Linux system is idle. VM can
436           then "swap-out" this guest which reduces memory usage. It also
437           reduces the overhead of idle systems.
438
439           The HZ timer can be switched on/off via /proc/sys/kernel/hz_timer.
440           hz_timer=0 means HZ timer is disabled. hz_timer=1 means HZ
441           timer is active.
442
443 config NO_IDLE_HZ_INIT
444         bool "HZ timer in idle off by default"
445         depends on NO_IDLE_HZ
446         help
447           The HZ timer is switched off in idle by default. That means the
448           HZ timer is already disabled at boot time.
449
450 config S390_HYPFS_FS
451         bool "s390 hypervisor file system support"
452         select SYS_HYPERVISOR
453         default y
454         help
455           This is a virtual file system intended to provide accounting
456           information in an s390 hypervisor environment.
457
458 config KEXEC
459         bool "kexec system call (EXPERIMENTAL)"
460         depends on EXPERIMENTAL
461         help
462           kexec is a system call that implements the ability to shutdown your
463           current kernel, and to start another kernel.  It is like a reboot
464           but is independent of hardware/microcode support.
465
466 endmenu
467
468 source "net/Kconfig"
469
470 config PCMCIA
471         bool
472         default n
473
474 source "drivers/base/Kconfig"
475
476 source "drivers/connector/Kconfig"
477
478 source "drivers/scsi/Kconfig"
479
480 source "drivers/s390/Kconfig"
481
482 source "drivers/net/Kconfig"
483
484 source "fs/Kconfig"
485
486 source "arch/s390/oprofile/Kconfig"
487
488 source "arch/s390/Kconfig.debug"
489
490 source "security/Kconfig"
491
492 source "crypto/Kconfig"
493
494 source "lib/Kconfig"