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