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