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