Merge branch 'sbp-target-merge' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-block.git] / arch / s390 / Kconfig
1 config MMU
2         def_bool y
3
4 config ZONE_DMA
5         def_bool y
6
7 config LOCKDEP_SUPPORT
8         def_bool y
9
10 config STACKTRACE_SUPPORT
11         def_bool y
12
13 config HAVE_LATENCYTOP_SUPPORT
14         def_bool y
15
16 config RWSEM_GENERIC_SPINLOCK
17         bool
18
19 config RWSEM_XCHGADD_ALGORITHM
20         def_bool y
21
22 config ARCH_HAS_ILOG2_U32
23         def_bool n
24
25 config ARCH_HAS_ILOG2_U64
26         def_bool n
27
28 config GENERIC_HWEIGHT
29         def_bool y
30
31 config GENERIC_TIME_VSYSCALL
32         def_bool y
33
34 config GENERIC_CLOCKEVENTS
35         def_bool y
36
37 config GENERIC_BUG
38         def_bool y if BUG
39
40 config GENERIC_BUG_RELATIVE_POINTERS
41         def_bool y
42
43 config NO_IOMEM
44         def_bool y
45
46 config NO_DMA
47         def_bool y
48
49 config ARCH_DMA_ADDR_T_64BIT
50         def_bool 64BIT
51
52 config GENERIC_LOCKBREAK
53         def_bool y if SMP && PREEMPT
54
55 config PGSTE
56         def_bool y if KVM
57
58 config VIRT_CPU_ACCOUNTING
59         def_bool y
60
61 config ARCH_SUPPORTS_DEBUG_PAGEALLOC
62         def_bool y
63
64 config S390
65         def_bool y
66         select USE_GENERIC_SMP_HELPERS if SMP
67         select GENERIC_CPU_DEVICES if !SMP
68         select HAVE_SYSCALL_WRAPPERS
69         select HAVE_FUNCTION_TRACER
70         select HAVE_FUNCTION_TRACE_MCOUNT_TEST
71         select HAVE_FTRACE_MCOUNT_RECORD
72         select HAVE_C_RECORDMCOUNT
73         select HAVE_SYSCALL_TRACEPOINTS
74         select HAVE_DYNAMIC_FTRACE
75         select HAVE_FUNCTION_GRAPH_TRACER
76         select HAVE_REGS_AND_STACK_ACCESS_API
77         select HAVE_OPROFILE
78         select HAVE_KPROBES
79         select HAVE_KRETPROBES
80         select HAVE_KVM if 64BIT
81         select HAVE_ARCH_TRACEHOOK
82         select INIT_ALL_POSSIBLE
83         select HAVE_IRQ_WORK
84         select HAVE_PERF_EVENTS
85         select ARCH_HAVE_NMI_SAFE_CMPXCHG
86         select HAVE_KERNEL_GZIP
87         select HAVE_KERNEL_BZIP2
88         select HAVE_KERNEL_LZMA
89         select HAVE_KERNEL_LZO
90         select HAVE_KERNEL_XZ
91         select HAVE_ARCH_MUTEX_CPU_RELAX
92         select HAVE_ARCH_JUMP_LABEL if !MARCH_G5
93         select ARCH_SAVE_PAGE_KEYS if HIBERNATION
94         select HAVE_MEMBLOCK
95         select HAVE_MEMBLOCK_NODE_MAP
96         select ARCH_DISCARD_MEMBLOCK
97         select ARCH_INLINE_SPIN_TRYLOCK
98         select ARCH_INLINE_SPIN_TRYLOCK_BH
99         select ARCH_INLINE_SPIN_LOCK
100         select ARCH_INLINE_SPIN_LOCK_BH
101         select ARCH_INLINE_SPIN_LOCK_IRQ
102         select ARCH_INLINE_SPIN_LOCK_IRQSAVE
103         select ARCH_INLINE_SPIN_UNLOCK
104         select ARCH_INLINE_SPIN_UNLOCK_BH
105         select ARCH_INLINE_SPIN_UNLOCK_IRQ
106         select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
107         select ARCH_INLINE_READ_TRYLOCK
108         select ARCH_INLINE_READ_LOCK
109         select ARCH_INLINE_READ_LOCK_BH
110         select ARCH_INLINE_READ_LOCK_IRQ
111         select ARCH_INLINE_READ_LOCK_IRQSAVE
112         select ARCH_INLINE_READ_UNLOCK
113         select ARCH_INLINE_READ_UNLOCK_BH
114         select ARCH_INLINE_READ_UNLOCK_IRQ
115         select ARCH_INLINE_READ_UNLOCK_IRQRESTORE
116         select ARCH_INLINE_WRITE_TRYLOCK
117         select ARCH_INLINE_WRITE_LOCK
118         select ARCH_INLINE_WRITE_LOCK_BH
119         select ARCH_INLINE_WRITE_LOCK_IRQ
120         select ARCH_INLINE_WRITE_LOCK_IRQSAVE
121         select ARCH_INLINE_WRITE_UNLOCK
122         select ARCH_INLINE_WRITE_UNLOCK_BH
123         select ARCH_INLINE_WRITE_UNLOCK_IRQ
124         select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
125         select GENERIC_SMP_IDLE_THREAD
126
127 config SCHED_OMIT_FRAME_POINTER
128         def_bool y
129
130 source "init/Kconfig"
131
132 source "kernel/Kconfig.freezer"
133
134 menu "Base setup"
135
136 comment "Processor type and features"
137
138 source "kernel/time/Kconfig"
139
140 config 64BIT
141         def_bool y
142         prompt "64 bit kernel"
143         help
144           Select this option if you have an IBM z/Architecture machine
145           and want to use the 64 bit addressing mode.
146
147 config 32BIT
148         def_bool y if !64BIT
149
150 config KTIME_SCALAR
151         def_bool 32BIT
152
153 config SMP
154         def_bool y
155         prompt "Symmetric multi-processing support"
156         ---help---
157           This enables support for systems with more than one CPU. If you have
158           a system with only one CPU, like most personal computers, say N. If
159           you have a system with more than one CPU, say Y.
160
161           If you say N here, the kernel will run on single and multiprocessor
162           machines, but will use only one CPU of a multiprocessor machine. If
163           you say Y here, the kernel will run on many, but not all,
164           singleprocessor machines. On a singleprocessor machine, the kernel
165           will run faster if you say N here.
166
167           See also the SMP-HOWTO available at
168           <http://www.tldp.org/docs.html#howto>.
169
170           Even if you don't know what to do here, say Y.
171
172 config NR_CPUS
173         int "Maximum number of CPUs (2-64)"
174         range 2 64
175         depends on SMP
176         default "32" if !64BIT
177         default "64" if 64BIT
178         help
179           This allows you to specify the maximum number of CPUs which this
180           kernel will support.  The maximum supported value is 64 and the
181           minimum value which makes sense is 2.
182
183           This is purely to save memory - each supported CPU adds
184           approximately sixteen kilobytes to the kernel image.
185
186 config HOTPLUG_CPU
187         def_bool y
188         prompt "Support for hot-pluggable CPUs"
189         depends on SMP
190         select HOTPLUG
191         help
192           Say Y here to be able to turn CPUs off and on. CPUs
193           can be controlled through /sys/devices/system/cpu/cpu#.
194           Say N if you want to disable CPU hotplug.
195
196 config SCHED_MC
197         def_bool n
198
199 config SCHED_BOOK
200         def_bool y
201         prompt "Book scheduler support"
202         depends on SMP
203         select SCHED_MC
204         help
205           Book scheduler support improves the CPU scheduler's decision making
206           when dealing with machines that have several books.
207
208 config MATHEMU
209         def_bool y
210         prompt "IEEE FPU emulation"
211         depends on MARCH_G5
212         help
213           This option is required for IEEE compliant floating point arithmetic
214           on older ESA/390 machines. Say Y unless you know your machine doesn't
215           need this.
216
217 config COMPAT
218         def_bool y
219         prompt "Kernel support for 31 bit emulation"
220         depends on 64BIT
221         select COMPAT_BINFMT_ELF if BINFMT_ELF
222         select ARCH_WANT_OLD_COMPAT_IPC
223         help
224           Select this option if you want to enable your system kernel to
225           handle system-calls from ELF binaries for 31 bit ESA.  This option
226           (and some other stuff like libraries and such) is needed for
227           executing 31 bit applications.  It is safe to say "Y".
228
229 config SYSVIPC_COMPAT
230         def_bool y if COMPAT && SYSVIPC
231
232 config KEYS_COMPAT
233         def_bool y if COMPAT && KEYS
234
235 config AUDIT_ARCH
236         def_bool y
237
238 config HAVE_MARCH_Z900_FEATURES
239         def_bool n
240
241 config HAVE_MARCH_Z990_FEATURES
242         def_bool n
243         select HAVE_MARCH_Z900_FEATURES
244
245 config HAVE_MARCH_Z9_109_FEATURES
246         def_bool n
247         select HAVE_MARCH_Z990_FEATURES
248
249 config HAVE_MARCH_Z10_FEATURES
250         def_bool n
251         select HAVE_MARCH_Z9_109_FEATURES
252
253 config HAVE_MARCH_Z196_FEATURES
254         def_bool n
255         select HAVE_MARCH_Z10_FEATURES
256
257 comment "Code generation options"
258
259 choice
260         prompt "Processor type"
261         default MARCH_G5
262
263 config MARCH_G5
264         bool "System/390 model G5 and G6"
265         depends on !64BIT
266         help
267           Select this to build a 31 bit kernel that works
268           on all ESA/390 and z/Architecture machines.
269
270 config MARCH_Z900
271         bool "IBM zSeries model z800 and z900"
272         select HAVE_MARCH_Z900_FEATURES if 64BIT
273         help
274           Select this to enable optimizations for model z800/z900 (2064 and
275           2066 series). This will enable some optimizations that are not
276           available on older ESA/390 (31 Bit) only CPUs.
277
278 config MARCH_Z990
279         bool "IBM zSeries model z890 and z990"
280         select HAVE_MARCH_Z990_FEATURES if 64BIT
281         help
282           Select this to enable optimizations for model z890/z990 (2084 and
283           2086 series). The kernel will be slightly faster but will not work
284           on older machines.
285
286 config MARCH_Z9_109
287         bool "IBM System z9"
288         select HAVE_MARCH_Z9_109_FEATURES if 64BIT
289         help
290           Select this to enable optimizations for IBM System z9 (2094 and
291           2096 series). The kernel will be slightly faster but will not work
292           on older machines.
293
294 config MARCH_Z10
295         bool "IBM System z10"
296         select HAVE_MARCH_Z10_FEATURES if 64BIT
297         help
298           Select this to enable optimizations for IBM System z10 (2097 and
299           2098 series). The kernel will be slightly faster but will not work
300           on older machines.
301
302 config MARCH_Z196
303         bool "IBM zEnterprise 114 and 196"
304         select HAVE_MARCH_Z196_FEATURES if 64BIT
305         help
306           Select this to enable optimizations for IBM zEnterprise 114 and 196
307           (2818 and 2817 series). The kernel will be slightly faster but will
308           not work on older machines.
309
310 endchoice
311
312 config PACK_STACK
313         def_bool y
314         prompt "Pack kernel stack"
315         help
316           This option enables the compiler option -mkernel-backchain if it
317           is available. If the option is available the compiler supports
318           the new stack layout which dramatically reduces the minimum stack
319           frame size. With an old compiler a non-leaf function needs a
320           minimum of 96 bytes on 31 bit and 160 bytes on 64 bit. With
321           -mkernel-backchain the minimum size drops to 16 byte on 31 bit
322           and 24 byte on 64 bit.
323
324           Say Y if you are unsure.
325
326 config SMALL_STACK
327         def_bool n
328         prompt "Use 8kb for kernel stack instead of 16kb"
329         depends on PACK_STACK && 64BIT && !LOCKDEP
330         help
331           If you say Y here and the compiler supports the -mkernel-backchain
332           option the kernel will use a smaller kernel stack size. The reduced
333           size is 8kb instead of 16kb. This allows to run more threads on a
334           system and reduces the pressure on the memory management for higher
335           order page allocations.
336
337           Say N if you are unsure.
338
339 config CHECK_STACK
340         def_bool y
341         prompt "Detect kernel stack overflow"
342         help
343           This option enables the compiler option -mstack-guard and
344           -mstack-size if they are available. If the compiler supports them
345           it will emit additional code to each function prolog to trigger
346           an illegal operation if the kernel stack is about to overflow.
347
348           Say N if you are unsure.
349
350 config STACK_GUARD
351         int "Size of the guard area (128-1024)"
352         range 128 1024
353         depends on CHECK_STACK
354         default "256"
355         help
356           This allows you to specify the size of the guard area at the lower
357           end of the kernel stack. If the kernel stack points into the guard
358           area on function entry an illegal operation is triggered. The size
359           needs to be a power of 2. Please keep in mind that the size of an
360           interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit.
361           The minimum size for the stack guard should be 256 for 31 bit and
362           512 for 64 bit.
363
364 config WARN_DYNAMIC_STACK
365         def_bool n
366         prompt "Emit compiler warnings for function with dynamic stack usage"
367         help
368           This option enables the compiler option -mwarn-dynamicstack. If the
369           compiler supports this options generates warnings for functions
370           that dynamically allocate stack space using alloca.
371
372           Say N if you are unsure.
373
374 comment "Kernel preemption"
375
376 source "kernel/Kconfig.preempt"
377
378 config ARCH_SPARSEMEM_ENABLE
379         def_bool y
380         select SPARSEMEM_VMEMMAP_ENABLE
381         select SPARSEMEM_VMEMMAP
382         select SPARSEMEM_STATIC if !64BIT
383
384 config ARCH_SPARSEMEM_DEFAULT
385         def_bool y
386
387 config ARCH_SELECT_MEMORY_MODEL
388         def_bool y
389
390 config ARCH_ENABLE_MEMORY_HOTPLUG
391         def_bool y if SPARSEMEM
392
393 config ARCH_ENABLE_MEMORY_HOTREMOVE
394         def_bool y
395
396 config ARCH_HIBERNATION_POSSIBLE
397         def_bool y if 64BIT
398
399 source "mm/Kconfig"
400
401 comment "I/O subsystem configuration"
402
403 config QDIO
404         def_tristate y
405         prompt "QDIO support"
406         ---help---
407           This driver provides the Queued Direct I/O base support for
408           IBM System z.
409
410           To compile this driver as a module, choose M here: the
411           module will be called qdio.
412
413           If unsure, say Y.
414
415 config CHSC_SCH
416         def_tristate m
417         prompt "Support for CHSC subchannels"
418         help
419           This driver allows usage of CHSC subchannels. A CHSC subchannel
420           is usually present on LPAR only.
421           The driver creates a device /dev/chsc, which may be used to
422           obtain I/O configuration information about the machine and
423           to issue asynchronous chsc commands (DANGEROUS).
424           You will usually only want to use this interface on a special
425           LPAR designated for system management.
426
427           To compile this driver as a module, choose M here: the
428           module will be called chsc_sch.
429
430           If unsure, say N.
431
432 comment "Misc"
433
434 source "fs/Kconfig.binfmt"
435
436 config FORCE_MAX_ZONEORDER
437         int
438         default "9"
439
440 config PFAULT
441         def_bool y
442         prompt "Pseudo page fault support"
443         help
444           Select this option, if you want to use PFAULT pseudo page fault
445           handling under VM. If running native or in LPAR, this option
446           has no effect. If your VM does not support PFAULT, PAGEEX
447           pseudo page fault handling will be used.
448           Note that VM 4.2 supports PFAULT but has a bug in its
449           implementation that causes some problems.
450           Everybody who wants to run Linux under VM != VM4.2 should select
451           this option.
452
453 config SHARED_KERNEL
454         def_bool y
455         prompt "VM shared kernel support"
456         help
457           Select this option, if you want to share the text segment of the
458           Linux kernel between different VM guests. This reduces memory
459           usage with lots of guests but greatly increases kernel size.
460           Also if a kernel was IPL'ed from a shared segment the kexec system
461           call will not work.
462           You should only select this option if you know what you are
463           doing and want to exploit this feature.
464
465 config CMM
466         def_tristate n
467         prompt "Cooperative memory management"
468         help
469           Select this option, if you want to enable the kernel interface
470           to reduce the memory size of the system. This is accomplished
471           by allocating pages of memory and put them "on hold". This only
472           makes sense for a system running under VM where the unused pages
473           will be reused by VM for other guest systems. The interface
474           allows an external monitor to balance memory of many systems.
475           Everybody who wants to run Linux under VM should select this
476           option.
477
478 config CMM_IUCV
479         def_bool y
480         prompt "IUCV special message interface to cooperative memory management"
481         depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
482         help
483           Select this option to enable the special message interface to
484           the cooperative memory management.
485
486 config APPLDATA_BASE
487         def_bool n
488         prompt "Linux - VM Monitor Stream, base infrastructure"
489         depends on PROC_FS
490         help
491           This provides a kernel interface for creating and updating z/VM APPLDATA
492           monitor records. The monitor records are updated at certain time
493           intervals, once the timer is started.
494           Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
495           i.e. enables or disables monitoring on the Linux side.
496           A custom interval value (in seconds) can be written to
497           /proc/appldata/interval.
498
499           Defaults are 60 seconds interval and timer off.
500           The /proc entries can also be read from, showing the current settings.
501
502 config APPLDATA_MEM
503         def_tristate m
504         prompt "Monitor memory management statistics"
505         depends on APPLDATA_BASE && VM_EVENT_COUNTERS
506         help
507           This provides memory management related data to the Linux - VM Monitor
508           Stream, like paging/swapping rate, memory utilisation, etc.
509           Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM
510           APPLDATA monitor record, i.e. enables or disables monitoring this record
511           on the z/VM side.
512
513           Default is disabled.
514           The /proc entry can also be read from, showing the current settings.
515
516           This can also be compiled as a module, which will be called
517           appldata_mem.o.
518
519 config APPLDATA_OS
520         def_tristate m
521         prompt "Monitor OS statistics"
522         depends on APPLDATA_BASE
523         help
524           This provides OS related data to the Linux - VM Monitor Stream, like
525           CPU utilisation, etc.
526           Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
527           APPLDATA monitor record, i.e. enables or disables monitoring this record
528           on the z/VM side.
529
530           Default is disabled.
531           This can also be compiled as a module, which will be called
532           appldata_os.o.
533
534 config APPLDATA_NET_SUM
535         def_tristate m
536         prompt "Monitor overall network statistics"
537         depends on APPLDATA_BASE && NET
538         help
539           This provides network related data to the Linux - VM Monitor Stream,
540           currently there is only a total sum of network I/O statistics, no
541           per-interface data.
542           Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
543           APPLDATA monitor record, i.e. enables or disables monitoring this record
544           on the z/VM side.
545
546           Default is disabled.
547           This can also be compiled as a module, which will be called
548           appldata_net_sum.o.
549
550 source kernel/Kconfig.hz
551
552 config S390_HYPFS_FS
553         def_bool y
554         prompt "s390 hypervisor file system support"
555         select SYS_HYPERVISOR
556         help
557           This is a virtual file system intended to provide accounting
558           information in an s390 hypervisor environment.
559
560 config KEXEC
561         def_bool n
562         prompt "kexec system call"
563         help
564           kexec is a system call that implements the ability to shutdown your
565           current kernel, and to start another kernel.  It is like a reboot
566           but is independent of hardware/microcode support.
567
568 config CRASH_DUMP
569         bool "kernel crash dumps"
570         depends on 64BIT && SMP
571         select KEXEC
572         help
573           Generate crash dump after being started by kexec.
574           Crash dump kernels are loaded in the main kernel with kexec-tools
575           into a specially reserved region and then later executed after
576           a crash by kdump/kexec.
577           For more details see Documentation/kdump/kdump.txt
578
579 config ZFCPDUMP
580         def_bool n
581         prompt "zfcpdump support"
582         select SMP
583         help
584           Select this option if you want to build an zfcpdump enabled kernel.
585           Refer to <file:Documentation/s390/zfcpdump.txt> for more details on this.
586
587 config S390_GUEST
588         def_bool y
589         prompt "s390 guest support for KVM (EXPERIMENTAL)"
590         depends on 64BIT && EXPERIMENTAL
591         select VIRTUALIZATION
592         select VIRTIO
593         select VIRTIO_RING
594         select VIRTIO_CONSOLE
595         help
596           Select this option if you want to run the kernel as a guest under
597           the KVM hypervisor. This will add detection for KVM as well  as a
598           virtio transport. If KVM is detected, the virtio console will be
599           the default console.
600
601 config SECCOMP
602         def_bool y
603         prompt "Enable seccomp to safely compute untrusted bytecode"
604         depends on PROC_FS
605         help
606           This kernel feature is useful for number crunching applications
607           that may need to compute untrusted bytecode during their
608           execution. By using pipes or other transports made available to
609           the process as file descriptors supporting the read/write
610           syscalls, it's possible to isolate those applications in
611           their own address space using seccomp. Once seccomp is
612           enabled via /proc/<pid>/seccomp, it cannot be disabled
613           and the task is only allowed to execute a few safe syscalls
614           defined by each seccomp mode.
615
616           If unsure, say Y.
617
618 endmenu
619
620 menu "Power Management"
621
622 source "kernel/power/Kconfig"
623
624 endmenu
625
626 source "net/Kconfig"
627
628 config PCMCIA
629         def_bool n
630
631 config CCW
632         def_bool y
633
634 source "drivers/Kconfig"
635
636 source "fs/Kconfig"
637
638 source "arch/s390/Kconfig.debug"
639
640 source "security/Kconfig"
641
642 source "crypto/Kconfig"
643
644 source "lib/Kconfig"
645
646 source "arch/s390/kvm/Kconfig"