[S390] convert some assembler to C.
[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 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 config AUDIT_ARCH
122         bool
123         default y
124
125 comment "Code generation options"
126
127 choice
128         prompt "Processor type"
129         default MARCH_G5
130
131 config MARCH_G5
132         bool "S/390 model G5 and G6"
133         depends on !64BIT
134         help
135           Select this to build a 31 bit kernel that works
136           on all S/390 and zSeries machines.
137
138 config MARCH_Z900
139         bool "IBM eServer zSeries model z800 and z900"
140         help
141           Select this to optimize for zSeries machines. This
142           will enable some optimizations that are not available
143           on older 31 bit only CPUs.
144
145 config MARCH_Z990
146         bool "IBM eServer zSeries model z890 and z990"
147         help
148           Select this enable optimizations for model z890/z990.
149           This will be slightly faster but does not work on
150           older machines such as the z900.
151
152 endchoice
153
154 config PACK_STACK
155         bool "Pack kernel stack"
156         help
157           This option enables the compiler option -mkernel-backchain if it
158           is available. If the option is available the compiler supports
159           the new stack layout which dramatically reduces the minimum stack
160           frame size. With an old compiler a non-leaf function needs a
161           minimum of 96 bytes on 31 bit and 160 bytes on 64 bit. With
162           -mkernel-backchain the minimum size drops to 16 byte on 31 bit
163           and 24 byte on 64 bit.
164
165           Say Y if you are unsure.
166
167 config SMALL_STACK
168         bool "Use 4kb/8kb for kernel stack instead of 8kb/16kb"
169         depends on PACK_STACK
170         help
171           If you say Y here and the compiler supports the -mkernel-backchain
172           option the kernel will use a smaller kernel stack size. For 31 bit
173           the reduced size is 4kb instead of 8kb and for 64 bit it is 8kb
174           instead of 16kb. This allows to run more thread on a system and
175           reduces the pressure on the memory management for higher order
176           page allocations.
177
178           Say N if you are unsure.
179
180
181 config CHECK_STACK
182         bool "Detect kernel stack overflow"
183         help
184           This option enables the compiler option -mstack-guard and
185           -mstack-size if they are available. If the compiler supports them
186           it will emit additional code to each function prolog to trigger
187           an illegal operation if the kernel stack is about to overflow.
188
189           Say N if you are unsure.
190
191 config STACK_GUARD
192         int "Size of the guard area (128-1024)"
193         range 128 1024
194         depends on CHECK_STACK
195         default "256"
196         help
197           This allows you to specify the size of the guard area at the lower
198           end of the kernel stack. If the kernel stack points into the guard
199           area on function entry an illegal operation is triggered. The size
200           needs to be a power of 2. Please keep in mind that the size of an
201           interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit.
202           The minimum size for the stack guard should be 256 for 31 bit and
203           512 for 64 bit.
204
205 config WARN_STACK
206         bool "Emit compiler warnings for function with broken stack usage"
207         help
208           This option enables the compiler options -mwarn-framesize and
209           -mwarn-dynamicstack. If the compiler supports these options it
210           will generate warnings for function which either use alloca or
211           create a stack frame bigger then CONFIG_WARN_STACK_SIZE.
212
213           Say N if you are unsure.
214
215 config WARN_STACK_SIZE
216         int "Maximum frame size considered safe (128-2048)"
217         range 128 2048
218         depends on WARN_STACK
219         default "256"
220         help
221           This allows you to specify the maximum frame size a function may
222           have without the compiler complaining about it.
223
224 source "mm/Kconfig"
225
226 comment "I/O subsystem configuration"
227
228 config MACHCHK_WARNING
229         bool "Process warning machine checks"
230         help
231           Select this option if you want the machine check handler on IBM S/390 or
232           zSeries to process warning machine checks (e.g. on power failures).
233           If unsure, say "Y".
234
235 config QDIO
236         tristate "QDIO support"
237         ---help---
238           This driver provides the Queued Direct I/O base support for
239           IBM mainframes.
240
241           For details please refer to the documentation provided by IBM at
242           <http://www10.software.ibm.com/developerworks/opensource/linux390>
243
244           To compile this driver as a module, choose M here: the
245           module will be called qdio.
246
247           If unsure, say Y.
248
249 config QDIO_PERF_STATS
250         bool "Performance statistics in /proc"
251         depends on QDIO
252         help
253           Say Y here to get performance statistics in /proc/qdio_perf
254
255           If unsure, say N.
256
257 config QDIO_DEBUG
258         bool "Extended debugging information"
259         depends on QDIO
260         help
261           Say Y here to get extended debugging output in
262             /sys/kernel/debug/s390dbf/qdio...
263           Warning: this option reduces the performance of the QDIO module.
264
265           If unsure, say N.
266
267 comment "Misc"
268
269 config PREEMPT
270         bool "Preemptible Kernel"
271         help
272           This option reduces the latency of the kernel when reacting to
273           real-time or interactive events by allowing a low priority process to
274           be preempted even if it is in kernel mode executing a system call.
275           This allows applications to run more reliably even when the system is
276           under load.
277
278           Say N if you are unsure.
279
280 config IPL
281         bool "Builtin IPL record support"
282         help
283           If you want to use the produced kernel to IPL directly from a
284           device, you have to merge a bootsector specific to the device
285           into the first bytes of the kernel. You will have to select the
286           IPL device.
287
288 choice
289         prompt "IPL method generated into head.S"
290         depends on IPL
291         default IPL_TAPE
292         help
293           Select "tape" if you want to IPL the image from a Tape.
294
295           Select "vm_reader" if you are running under VM/ESA and want
296           to IPL the image from the emulated card reader.
297
298 config IPL_TAPE
299         bool "tape"
300
301 config IPL_VM
302         bool "vm_reader"
303
304 endchoice
305
306 source "fs/Kconfig.binfmt"
307
308 config PROCESS_DEBUG
309         bool "Show crashed user process info"
310         help
311           Say Y to print all process fault locations to the console.  This is
312           a debugging option; you probably do not want to set it unless you
313           are an S390 port maintainer.
314
315 config PFAULT
316         bool "Pseudo page fault support"
317         help
318           Select this option, if you want to use PFAULT pseudo page fault
319           handling under VM. If running native or in LPAR, this option
320           has no effect. If your VM does not support PFAULT, PAGEEX
321           pseudo page fault handling will be used.
322           Note that VM 4.2 supports PFAULT but has a bug in its
323           implementation that causes some problems.
324           Everybody who wants to run Linux under VM != VM4.2 should select
325           this option.
326
327 config SHARED_KERNEL
328         bool "VM shared kernel support"
329         help
330           Select this option, if you want to share the text segment of the
331           Linux kernel between different VM guests. This reduces memory
332           usage with lots of guests but greatly increases kernel size.
333           You should only select this option if you know what you are
334           doing and want to exploit this feature.
335
336 config CMM
337         tristate "Cooperative memory management"
338         help
339           Select this option, if you want to enable the kernel interface
340           to reduce the memory size of the system. This is accomplished
341           by allocating pages of memory and put them "on hold". This only
342           makes sense for a system running under VM where the unused pages
343           will be reused by VM for other guest systems. The interface
344           allows an external monitor to balance memory of many systems.
345           Everybody who wants to run Linux under VM should select this
346           option.
347
348 config CMM_PROC
349         bool "/proc interface to cooperative memory management"
350         depends on CMM
351         help
352           Select this option to enable the /proc interface to the
353           cooperative memory management.
354
355 config CMM_IUCV
356         bool "IUCV special message interface to cooperative memory management"
357         depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
358         help
359           Select this option to enable the special message interface to
360           the cooperative memory management.
361
362 config VIRT_TIMER
363         bool "Virtual CPU timer support"
364         help
365           This provides a kernel interface for virtual CPU timers.
366           Default is disabled.
367
368 config VIRT_CPU_ACCOUNTING
369         bool "Base user process accounting on virtual cpu timer"
370         depends on VIRT_TIMER
371         help
372           Select this option to use CPU timer deltas to do user
373           process accounting.
374
375 config APPLDATA_BASE
376         bool "Linux - VM Monitor Stream, base infrastructure"
377         depends on PROC_FS && VIRT_TIMER=y
378         help
379           This provides a kernel interface for creating and updating z/VM APPLDATA
380           monitor records. The monitor records are updated at certain time
381           intervals, once the timer is started.
382           Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
383           i.e. enables or disables monitoring on the Linux side.
384           A custom interval value (in seconds) can be written to
385           /proc/appldata/interval.
386
387           Defaults are 60 seconds interval and timer off.
388           The /proc entries can also be read from, showing the current settings.
389
390 config APPLDATA_MEM
391         tristate "Monitor memory management statistics"
392         depends on APPLDATA_BASE
393         help
394           This provides memory management related data to the Linux - VM Monitor
395           Stream, like paging/swapping rate, memory utilisation, etc.
396           Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM
397           APPLDATA monitor record, i.e. enables or disables monitoring this record
398           on the z/VM side.
399
400           Default is disabled.
401           The /proc entry can also be read from, showing the current settings.
402
403           This can also be compiled as a module, which will be called
404           appldata_mem.o.
405
406 config APPLDATA_OS
407         tristate "Monitor OS statistics"
408         depends on APPLDATA_BASE
409         help
410           This provides OS related data to the Linux - VM Monitor Stream, like
411           CPU utilisation, etc.
412           Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
413           APPLDATA monitor record, i.e. enables or disables monitoring this record
414           on the z/VM side.
415
416           Default is disabled.
417           This can also be compiled as a module, which will be called
418           appldata_os.o.
419
420 config APPLDATA_NET_SUM
421         tristate "Monitor overall network statistics"
422         depends on APPLDATA_BASE
423         help
424           This provides network related data to the Linux - VM Monitor Stream,
425           currently there is only a total sum of network I/O statistics, no
426           per-interface data.
427           Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
428           APPLDATA monitor record, i.e. enables or disables monitoring this record
429           on the z/VM side.
430
431           Default is disabled.
432           This can also be compiled as a module, which will be called
433           appldata_net_sum.o.
434
435 config NO_IDLE_HZ
436         bool "No HZ timer ticks in idle"
437         help
438           Switches the regular HZ timer off when the system is going idle.
439           This helps z/VM to detect that the Linux system is idle. VM can
440           then "swap-out" this guest which reduces memory usage. It also
441           reduces the overhead of idle systems.
442
443           The HZ timer can be switched on/off via /proc/sys/kernel/hz_timer.
444           hz_timer=0 means HZ timer is disabled. hz_timer=1 means HZ
445           timer is active.
446
447 config NO_IDLE_HZ_INIT
448         bool "HZ timer in idle off by default"
449         depends on NO_IDLE_HZ
450         help
451           The HZ timer is switched off in idle by default. That means the
452           HZ timer is already disabled at boot time.
453
454 config S390_HYPFS_FS
455         bool "s390 hypervisor file system support"
456         select SYS_HYPERVISOR
457         default y
458         help
459           This is a virtual file system intended to provide accounting
460           information in an s390 hypervisor environment.
461
462 config KEXEC
463         bool "kexec system call (EXPERIMENTAL)"
464         depends on EXPERIMENTAL
465         help
466           kexec is a system call that implements the ability to shutdown your
467           current kernel, and to start another kernel.  It is like a reboot
468           but is independent of hardware/microcode support.
469
470 endmenu
471
472 source "net/Kconfig"
473
474 config PCMCIA
475         bool
476         default n
477
478 source "drivers/base/Kconfig"
479
480 source "drivers/connector/Kconfig"
481
482 source "drivers/scsi/Kconfig"
483
484 source "drivers/s390/Kconfig"
485
486 source "drivers/net/Kconfig"
487
488 source "fs/Kconfig"
489
490 menu "Instrumentation Support"
491
492 source "arch/s390/oprofile/Kconfig"
493
494 config KPROBES
495         bool "Kprobes (EXPERIMENTAL)"
496         depends on EXPERIMENTAL && MODULES
497         help
498           Kprobes allows you to trap at almost any kernel address and
499           execute a callback function.  register_kprobe() establishes
500           a probepoint and specifies the callback.  Kprobes is useful
501           for kernel debugging, non-intrusive instrumentation and testing.
502           If in doubt, say "N".
503
504 endmenu
505
506 source "arch/s390/Kconfig.debug"
507
508 source "security/Kconfig"
509
510 source "crypto/Kconfig"
511
512 source "lib/Kconfig"