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