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