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