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