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