Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
[linux-2.6-microblaze.git] / arch / s390 / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2 config MMU
3         def_bool y
4
5 config ZONE_DMA
6         def_bool y
7
8 config CPU_BIG_ENDIAN
9         def_bool y
10
11 config LOCKDEP_SUPPORT
12         def_bool y
13
14 config STACKTRACE_SUPPORT
15         def_bool y
16
17 config RWSEM_GENERIC_SPINLOCK
18         bool
19
20 config RWSEM_XCHGADD_ALGORITHM
21         def_bool y
22
23 config ARCH_HAS_ILOG2_U32
24         def_bool n
25
26 config ARCH_HAS_ILOG2_U64
27         def_bool n
28
29 config GENERIC_HWEIGHT
30         def_bool y
31
32 config GENERIC_BUG
33         def_bool y if BUG
34
35 config GENERIC_BUG_RELATIVE_POINTERS
36         def_bool y
37
38 config ARCH_DMA_ADDR_T_64BIT
39         def_bool y
40
41 config GENERIC_LOCKBREAK
42         def_bool y if SMP && PREEMPT
43
44 config PGSTE
45         def_bool y if KVM
46
47 config ARCH_SUPPORTS_DEBUG_PAGEALLOC
48         def_bool y
49
50 config KEXEC
51         def_bool y
52         select KEXEC_CORE
53
54 config AUDIT_ARCH
55         def_bool y
56
57 config NO_IOPORT_MAP
58         def_bool y
59
60 config PCI_QUIRKS
61         def_bool n
62
63 config ARCH_SUPPORTS_UPROBES
64         def_bool y
65
66 config S390
67         def_bool y
68         select ARCH_BINFMT_ELF_STATE
69         select ARCH_HAS_DEVMEM_IS_ALLOWED
70         select ARCH_HAS_ELF_RANDOMIZE
71         select ARCH_HAS_FORTIFY_SOURCE
72         select ARCH_HAS_GCOV_PROFILE_ALL
73         select ARCH_HAS_GIGANTIC_PAGE if (MEMORY_ISOLATION && COMPACTION) || CMA
74         select ARCH_HAS_KCOV
75         select ARCH_HAS_SET_MEMORY
76         select ARCH_HAS_SG_CHAIN
77         select ARCH_HAS_STRICT_KERNEL_RWX
78         select ARCH_HAS_STRICT_MODULE_RWX
79         select ARCH_HAS_UBSAN_SANITIZE_ALL
80         select ARCH_HAVE_NMI_SAFE_CMPXCHG
81         select ARCH_INLINE_READ_LOCK
82         select ARCH_INLINE_READ_LOCK_BH
83         select ARCH_INLINE_READ_LOCK_IRQ
84         select ARCH_INLINE_READ_LOCK_IRQSAVE
85         select ARCH_INLINE_READ_TRYLOCK
86         select ARCH_INLINE_READ_UNLOCK
87         select ARCH_INLINE_READ_UNLOCK_BH
88         select ARCH_INLINE_READ_UNLOCK_IRQ
89         select ARCH_INLINE_READ_UNLOCK_IRQRESTORE
90         select ARCH_INLINE_SPIN_LOCK
91         select ARCH_INLINE_SPIN_LOCK_BH
92         select ARCH_INLINE_SPIN_LOCK_IRQ
93         select ARCH_INLINE_SPIN_LOCK_IRQSAVE
94         select ARCH_INLINE_SPIN_TRYLOCK
95         select ARCH_INLINE_SPIN_TRYLOCK_BH
96         select ARCH_INLINE_SPIN_UNLOCK
97         select ARCH_INLINE_SPIN_UNLOCK_BH
98         select ARCH_INLINE_SPIN_UNLOCK_IRQ
99         select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
100         select ARCH_INLINE_WRITE_LOCK
101         select ARCH_INLINE_WRITE_LOCK_BH
102         select ARCH_INLINE_WRITE_LOCK_IRQ
103         select ARCH_INLINE_WRITE_LOCK_IRQSAVE
104         select ARCH_INLINE_WRITE_TRYLOCK
105         select ARCH_INLINE_WRITE_UNLOCK
106         select ARCH_INLINE_WRITE_UNLOCK_BH
107         select ARCH_INLINE_WRITE_UNLOCK_IRQ
108         select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
109         select ARCH_SAVE_PAGE_KEYS if HIBERNATION
110         select ARCH_SUPPORTS_ATOMIC_RMW
111         select ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT
112         select ARCH_SUPPORTS_NUMA_BALANCING
113         select ARCH_USE_BUILTIN_BSWAP
114         select ARCH_USE_CMPXCHG_LOCKREF
115         select ARCH_WANTS_DYNAMIC_TASK_STRUCT
116         select ARCH_WANTS_PROT_NUMA_PROT_NONE
117         select ARCH_WANTS_UBSAN_NO_NULL
118         select ARCH_WANT_IPC_PARSE_VERSION
119         select BUILDTIME_EXTABLE_SORT
120         select CLONE_BACKWARDS2
121         select DYNAMIC_FTRACE if FUNCTION_TRACER
122         select GENERIC_CLOCKEVENTS
123         select GENERIC_CPU_AUTOPROBE
124         select GENERIC_CPU_DEVICES if !SMP
125         select GENERIC_FIND_FIRST_BIT
126         select GENERIC_SMP_IDLE_THREAD
127         select GENERIC_TIME_VSYSCALL
128         select HAVE_ALIGNED_STRUCT_PAGE if SLUB
129         select HAVE_ARCH_AUDITSYSCALL
130         select HAVE_ARCH_JUMP_LABEL
131         select CPU_NO_EFFICIENT_FFS if !HAVE_MARCH_Z9_109_FEATURES
132         select HAVE_ARCH_SECCOMP_FILTER
133         select HAVE_ARCH_SOFT_DIRTY
134         select HAVE_ARCH_TRACEHOOK
135         select HAVE_ARCH_TRANSPARENT_HUGEPAGE
136         select HAVE_EBPF_JIT if PACK_STACK && HAVE_MARCH_Z196_FEATURES
137         select HAVE_CMPXCHG_DOUBLE
138         select HAVE_CMPXCHG_LOCAL
139         select HAVE_COPY_THREAD_TLS
140         select HAVE_DEBUG_KMEMLEAK
141         select HAVE_DMA_API_DEBUG
142         select HAVE_DMA_CONTIGUOUS
143         select DMA_DIRECT_OPS
144         select HAVE_DYNAMIC_FTRACE
145         select HAVE_DYNAMIC_FTRACE_WITH_REGS
146         select HAVE_EFFICIENT_UNALIGNED_ACCESS
147         select HAVE_FTRACE_MCOUNT_RECORD
148         select HAVE_FUNCTION_GRAPH_TRACER
149         select HAVE_FUNCTION_TRACER
150         select HAVE_FUTEX_CMPXCHG if FUTEX
151         select HAVE_GCC_PLUGINS
152         select HAVE_KERNEL_BZIP2
153         select HAVE_KERNEL_GZIP
154         select HAVE_KERNEL_LZ4
155         select HAVE_KERNEL_LZMA
156         select HAVE_KERNEL_LZO
157         select HAVE_KERNEL_XZ
158         select HAVE_KPROBES
159         select HAVE_KRETPROBES
160         select HAVE_KVM
161         select HAVE_LIVEPATCH
162         select HAVE_PERF_REGS
163         select HAVE_PERF_USER_STACK_DUMP
164         select HAVE_MEMBLOCK
165         select HAVE_MEMBLOCK_NODE_MAP
166         select HAVE_MEMBLOCK_PHYS_MAP
167         select HAVE_MOD_ARCH_SPECIFIC
168         select HAVE_OPROFILE
169         select HAVE_PERF_EVENTS
170         select HAVE_REGS_AND_STACK_ACCESS_API
171         select HAVE_SYSCALL_TRACEPOINTS
172         select HAVE_VIRT_CPU_ACCOUNTING
173         select MODULES_USE_ELF_RELA
174         select NO_BOOTMEM
175         select OLD_SIGACTION
176         select OLD_SIGSUSPEND3
177         select SPARSE_IRQ
178         select SYSCTL_EXCEPTION_TRACE
179         select THREAD_INFO_IN_TASK
180         select TTY
181         select VIRT_CPU_ACCOUNTING
182         select ARCH_HAS_SCALED_CPUTIME
183         select VIRT_TO_BUS
184         select HAVE_NMI
185
186
187 config SCHED_OMIT_FRAME_POINTER
188         def_bool y
189
190 config PGTABLE_LEVELS
191         int
192         default 5
193
194 source "init/Kconfig"
195
196 source "kernel/Kconfig.freezer"
197
198 source "kernel/livepatch/Kconfig"
199
200 menu "Processor type and features"
201
202 config HAVE_MARCH_Z900_FEATURES
203         def_bool n
204
205 config HAVE_MARCH_Z990_FEATURES
206         def_bool n
207         select HAVE_MARCH_Z900_FEATURES
208
209 config HAVE_MARCH_Z9_109_FEATURES
210         def_bool n
211         select HAVE_MARCH_Z990_FEATURES
212
213 config HAVE_MARCH_Z10_FEATURES
214         def_bool n
215         select HAVE_MARCH_Z9_109_FEATURES
216
217 config HAVE_MARCH_Z196_FEATURES
218         def_bool n
219         select HAVE_MARCH_Z10_FEATURES
220
221 config HAVE_MARCH_ZEC12_FEATURES
222         def_bool n
223         select HAVE_MARCH_Z196_FEATURES
224
225 config HAVE_MARCH_Z13_FEATURES
226         def_bool n
227         select HAVE_MARCH_ZEC12_FEATURES
228
229 config HAVE_MARCH_Z14_FEATURES
230         def_bool n
231         select HAVE_MARCH_Z13_FEATURES
232
233 choice
234         prompt "Processor type"
235         default MARCH_Z196
236
237 config MARCH_Z900
238         bool "IBM zSeries model z800 and z900"
239         select HAVE_MARCH_Z900_FEATURES
240         help
241           Select this to enable optimizations for model z800/z900 (2064 and
242           2066 series). This will enable some optimizations that are not
243           available on older ESA/390 (31 Bit) only CPUs.
244
245 config MARCH_Z990
246         bool "IBM zSeries model z890 and z990"
247         select HAVE_MARCH_Z990_FEATURES
248         help
249           Select this to enable optimizations for model z890/z990 (2084 and
250           2086 series). The kernel will be slightly faster but will not work
251           on older machines.
252
253 config MARCH_Z9_109
254         bool "IBM System z9"
255         select HAVE_MARCH_Z9_109_FEATURES
256         help
257           Select this to enable optimizations for IBM System z9 (2094 and
258           2096 series). The kernel will be slightly faster but will not work
259           on older machines.
260
261 config MARCH_Z10
262         bool "IBM System z10"
263         select HAVE_MARCH_Z10_FEATURES
264         help
265           Select this to enable optimizations for IBM System z10 (2097 and
266           2098 series). The kernel will be slightly faster but will not work
267           on older machines.
268
269 config MARCH_Z196
270         bool "IBM zEnterprise 114 and 196"
271         select HAVE_MARCH_Z196_FEATURES
272         help
273           Select this to enable optimizations for IBM zEnterprise 114 and 196
274           (2818 and 2817 series). The kernel will be slightly faster but will
275           not work on older machines.
276
277 config MARCH_ZEC12
278         bool "IBM zBC12 and zEC12"
279         select HAVE_MARCH_ZEC12_FEATURES
280         help
281           Select this to enable optimizations for IBM zBC12 and zEC12 (2828 and
282           2827 series). The kernel will be slightly faster but will not work on
283           older machines.
284
285 config MARCH_Z13
286         bool "IBM z13s and z13"
287         select HAVE_MARCH_Z13_FEATURES
288         help
289           Select this to enable optimizations for IBM z13s and z13 (2965 and
290           2964 series). The kernel will be slightly faster but will not work on
291           older machines.
292
293 config MARCH_Z14
294         bool "IBM z14"
295         select HAVE_MARCH_Z14_FEATURES
296         help
297           Select this to enable optimizations for IBM z14 (3906 series).
298           The kernel will be slightly faster but will not work on older
299           machines.
300
301 endchoice
302
303 config MARCH_Z900_TUNE
304         def_bool TUNE_Z900 || MARCH_Z900 && TUNE_DEFAULT
305
306 config MARCH_Z990_TUNE
307         def_bool TUNE_Z990 || MARCH_Z990 && TUNE_DEFAULT
308
309 config MARCH_Z9_109_TUNE
310         def_bool TUNE_Z9_109 || MARCH_Z9_109 && TUNE_DEFAULT
311
312 config MARCH_Z10_TUNE
313         def_bool TUNE_Z10 || MARCH_Z10 && TUNE_DEFAULT
314
315 config MARCH_Z196_TUNE
316         def_bool TUNE_Z196 || MARCH_Z196 && TUNE_DEFAULT
317
318 config MARCH_ZEC12_TUNE
319         def_bool TUNE_ZEC12 || MARCH_ZEC12 && TUNE_DEFAULT
320
321 config MARCH_Z13_TUNE
322         def_bool TUNE_Z13 || MARCH_Z13 && TUNE_DEFAULT
323
324 config MARCH_Z14_TUNE
325         def_bool TUNE_Z14 || MARCH_Z14 && TUNE_DEFAULT
326
327 choice
328         prompt "Tune code generation"
329         default TUNE_DEFAULT
330         help
331           Cause the compiler to tune (-mtune) the generated code for a machine.
332           This will make the code run faster on the selected machine but
333           somewhat slower on other machines.
334           This option only changes how the compiler emits instructions, not the
335           selection of instructions itself, so the resulting kernel will run on
336           all other machines.
337
338 config TUNE_DEFAULT
339         bool "Default"
340         help
341           Tune the generated code for the target processor for which the kernel
342           will be compiled.
343
344 config TUNE_Z900
345         bool "IBM zSeries model z800 and z900"
346
347 config TUNE_Z990
348         bool "IBM zSeries model z890 and z990"
349
350 config TUNE_Z9_109
351         bool "IBM System z9"
352
353 config TUNE_Z10
354         bool "IBM System z10"
355
356 config TUNE_Z196
357         bool "IBM zEnterprise 114 and 196"
358
359 config TUNE_ZEC12
360         bool "IBM zBC12 and zEC12"
361
362 config TUNE_Z13
363         bool "IBM z13"
364
365 config TUNE_Z14
366         bool "IBM z14"
367
368 endchoice
369
370 config 64BIT
371         def_bool y
372
373 config COMPAT
374         def_bool y
375         prompt "Kernel support for 31 bit emulation"
376         select COMPAT_BINFMT_ELF if BINFMT_ELF
377         select ARCH_WANT_OLD_COMPAT_IPC
378         select COMPAT_OLD_SIGACTION
379         depends on MULTIUSER
380         help
381           Select this option if you want to enable your system kernel to
382           handle system-calls from ELF binaries for 31 bit ESA.  This option
383           (and some other stuff like libraries and such) is needed for
384           executing 31 bit applications.  It is safe to say "Y".
385
386 config SYSVIPC_COMPAT
387         def_bool y if COMPAT && SYSVIPC
388
389 config SMP
390         def_bool y
391         prompt "Symmetric multi-processing support"
392         ---help---
393           This enables support for systems with more than one CPU. If you have
394           a system with only one CPU, like most personal computers, say N. If
395           you have a system with more than one CPU, say Y.
396
397           If you say N here, the kernel will run on uni- and multiprocessor
398           machines, but will use only one CPU of a multiprocessor machine. If
399           you say Y here, the kernel will run on many, but not all,
400           uniprocessor machines. On a uniprocessor machine, the kernel
401           will run faster if you say N here.
402
403           See also the SMP-HOWTO available at
404           <http://www.tldp.org/docs.html#howto>.
405
406           Even if you don't know what to do here, say Y.
407
408 config NR_CPUS
409         int "Maximum number of CPUs (2-512)"
410         range 2 512
411         depends on SMP
412         default "64"
413         help
414           This allows you to specify the maximum number of CPUs which this
415           kernel will support. The maximum supported value is 512 and the
416           minimum value which makes sense is 2.
417
418           This is purely to save memory - each supported CPU adds
419           approximately sixteen kilobytes to the kernel image.
420
421 config HOTPLUG_CPU
422         def_bool y
423         prompt "Support for hot-pluggable CPUs"
424         depends on SMP
425         help
426           Say Y here to be able to turn CPUs off and on. CPUs
427           can be controlled through /sys/devices/system/cpu/cpu#.
428           Say N if you want to disable CPU hotplug.
429
430 # Some NUMA nodes have memory ranges that span
431 # other nodes.  Even though a pfn is valid and
432 # between a node's start and end pfns, it may not
433 # reside on that node.  See memmap_init_zone()
434 # for details. <- They meant memory holes!
435 config NODES_SPAN_OTHER_NODES
436         def_bool NUMA
437
438 config NUMA
439         bool "NUMA support"
440         depends on SMP && SCHED_TOPOLOGY
441         default n
442         help
443           Enable NUMA support
444
445           This option adds NUMA support to the kernel.
446
447           An operation mode can be selected by appending
448           numa=<method> to the kernel command line.
449
450           The default behaviour is identical to appending numa=plain to
451           the command line. This will create just one node with all
452           available memory and all CPUs in it.
453
454 config NODES_SHIFT
455         int "Maximum NUMA nodes (as a power of 2)"
456         range 1 10
457         depends on NUMA
458         default "4"
459         help
460           Specify the maximum number of NUMA nodes available on the target
461           system. Increases memory reserved to accommodate various tables.
462
463 menu "Select NUMA modes"
464         depends on NUMA
465
466 config NUMA_EMU
467         bool "NUMA emulation"
468         default y
469         help
470           Numa emulation mode will split the available system memory into
471           equal chunks which then are distributed over the configured number
472           of nodes in a round-robin manner.
473
474           The number of fake nodes is limited by the number of available memory
475           chunks (i.e. memory size / fake size) and the number of supported
476           nodes in the kernel.
477
478           The CPUs are assigned to the nodes in a way that partially respects
479           the original machine topology (if supported by the machine).
480           Fair distribution of the CPUs is not guaranteed.
481
482 config EMU_SIZE
483         hex "NUMA emulation memory chunk size"
484         default 0x10000000
485         range 0x400000 0x100000000
486         depends on NUMA_EMU
487         help
488           Select the default size by which the memory is chopped and then
489           assigned to emulated NUMA nodes.
490
491           This can be overridden by specifying
492
493           emu_size=<n>
494
495           on the kernel command line where also suffixes K, M, G, and T are
496           supported.
497
498 endmenu
499
500 config SCHED_SMT
501         def_bool n
502
503 config SCHED_MC
504         def_bool n
505
506 config SCHED_BOOK
507         def_bool n
508
509 config SCHED_DRAWER
510         def_bool n
511
512 config SCHED_TOPOLOGY
513         def_bool y
514         prompt "Topology scheduler support"
515         depends on SMP
516         select SCHED_SMT
517         select SCHED_MC
518         select SCHED_BOOK
519         select SCHED_DRAWER
520         help
521           Topology scheduler support improves the CPU scheduler's decision
522           making when dealing with machines that have multi-threading,
523           multiple cores or multiple books.
524
525 source kernel/Kconfig.preempt
526
527 source kernel/Kconfig.hz
528
529 config ARCH_RANDOM
530         def_bool y
531         prompt "s390 architectural random number generation API"
532         help
533           Enable the s390 architectural random number generation API
534           to provide random data for all consumers within the Linux
535           kernel.
536
537           When enabled the arch_random_* functions declared in linux/random.h
538           are implemented. The implementation is based on the s390 CPACF
539           instruction subfunction TRNG which provides a real true random
540           number generator.
541
542           If unsure, say Y.
543
544 endmenu
545
546 menu "Memory setup"
547
548 config ARCH_SPARSEMEM_ENABLE
549         def_bool y
550         select SPARSEMEM_VMEMMAP_ENABLE
551         select SPARSEMEM_VMEMMAP
552
553 config ARCH_SPARSEMEM_DEFAULT
554         def_bool y
555
556 config ARCH_SELECT_MEMORY_MODEL
557         def_bool y
558
559 config ARCH_ENABLE_MEMORY_HOTPLUG
560         def_bool y if SPARSEMEM
561
562 config ARCH_ENABLE_MEMORY_HOTREMOVE
563         def_bool y
564
565 config ARCH_ENABLE_SPLIT_PMD_PTLOCK
566         def_bool y
567
568 config FORCE_MAX_ZONEORDER
569         int
570         default "9"
571
572 source "mm/Kconfig"
573
574 config MAX_PHYSMEM_BITS
575         int "Maximum size of supported physical memory in bits (42-53)"
576         range 42 53
577         default "46"
578         help
579           This option specifies the maximum supported size of physical memory
580           in bits. Supported is any size between 2^42 (4TB) and 2^53 (8PB).
581           Increasing the number of bits also increases the kernel image size.
582           By default 46 bits (64TB) are supported.
583
584 config PACK_STACK
585         def_bool y
586         prompt "Pack kernel stack"
587         help
588           This option enables the compiler option -mkernel-backchain if it
589           is available. If the option is available the compiler supports
590           the new stack layout which dramatically reduces the minimum stack
591           frame size. With an old compiler a non-leaf function needs a
592           minimum of 96 bytes on 31 bit and 160 bytes on 64 bit. With
593           -mkernel-backchain the minimum size drops to 16 byte on 31 bit
594           and 24 byte on 64 bit.
595
596           Say Y if you are unsure.
597
598 config CHECK_STACK
599         def_bool y
600         prompt "Detect kernel stack overflow"
601         help
602           This option enables the compiler option -mstack-guard and
603           -mstack-size if they are available. If the compiler supports them
604           it will emit additional code to each function prolog to trigger
605           an illegal operation if the kernel stack is about to overflow.
606
607           Say N if you are unsure.
608
609 config STACK_GUARD
610         int "Size of the guard area (128-1024)"
611         range 128 1024
612         depends on CHECK_STACK
613         default "256"
614         help
615           This allows you to specify the size of the guard area at the lower
616           end of the kernel stack. If the kernel stack points into the guard
617           area on function entry an illegal operation is triggered. The size
618           needs to be a power of 2. Please keep in mind that the size of an
619           interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit.
620           The minimum size for the stack guard should be 256 for 31 bit and
621           512 for 64 bit.
622
623 config WARN_DYNAMIC_STACK
624         def_bool n
625         prompt "Emit compiler warnings for function with dynamic stack usage"
626         help
627           This option enables the compiler option -mwarn-dynamicstack. If the
628           compiler supports this options generates warnings for functions
629           that dynamically allocate stack space using alloca.
630
631           Say N if you are unsure.
632
633 endmenu
634
635 menu "I/O subsystem"
636
637 config QDIO
638         def_tristate y
639         prompt "QDIO support"
640         ---help---
641           This driver provides the Queued Direct I/O base support for
642           IBM System z.
643
644           To compile this driver as a module, choose M here: the
645           module will be called qdio.
646
647           If unsure, say Y.
648
649 menuconfig PCI
650         bool "PCI support"
651         select PCI_MSI
652         select IOMMU_SUPPORT
653         help
654           Enable PCI support.
655
656 if PCI
657
658 config PCI_NR_FUNCTIONS
659         int "Maximum number of PCI functions (1-4096)"
660         range 1 4096
661         default "128"
662         help
663           This allows you to specify the maximum number of PCI functions which
664           this kernel will support.
665
666 source "drivers/pci/Kconfig"
667
668 endif   # PCI
669
670 config PCI_DOMAINS
671         def_bool PCI
672
673 config HAS_IOMEM
674         def_bool PCI
675
676 config IOMMU_HELPER
677         def_bool PCI
678
679 config NEED_SG_DMA_LENGTH
680         def_bool PCI
681
682 config NEED_DMA_MAP_STATE
683         def_bool PCI
684
685 config CHSC_SCH
686         def_tristate m
687         prompt "Support for CHSC subchannels"
688         help
689           This driver allows usage of CHSC subchannels. A CHSC subchannel
690           is usually present on LPAR only.
691           The driver creates a device /dev/chsc, which may be used to
692           obtain I/O configuration information about the machine and
693           to issue asynchronous chsc commands (DANGEROUS).
694           You will usually only want to use this interface on a special
695           LPAR designated for system management.
696
697           To compile this driver as a module, choose M here: the
698           module will be called chsc_sch.
699
700           If unsure, say N.
701
702 config SCM_BUS
703         def_bool y
704         prompt "SCM bus driver"
705         help
706           Bus driver for Storage Class Memory.
707
708 config EADM_SCH
709         def_tristate m
710         prompt "Support for EADM subchannels"
711         depends on SCM_BUS
712         help
713           This driver allows usage of EADM subchannels. EADM subchannels act
714           as a communication vehicle for SCM increments.
715
716           To compile this driver as a module, choose M here: the
717           module will be called eadm_sch.
718
719 config VFIO_CCW
720         def_tristate n
721         prompt "Support for VFIO-CCW subchannels"
722         depends on S390_CCW_IOMMU && VFIO_MDEV
723         help
724           This driver allows usage of I/O subchannels via VFIO-CCW.
725
726           To compile this driver as a module, choose M here: the
727           module will be called vfio_ccw.
728
729 endmenu
730
731 menu "Dump support"
732
733 config CRASH_DUMP
734         bool "kernel crash dumps"
735         depends on SMP
736         select KEXEC
737         help
738           Generate crash dump after being started by kexec.
739           Crash dump kernels are loaded in the main kernel with kexec-tools
740           into a specially reserved region and then later executed after
741           a crash by kdump/kexec.
742           Refer to <file:Documentation/s390/zfcpdump.txt> for more details on this.
743           This option also enables s390 zfcpdump.
744           See also <file:Documentation/s390/zfcpdump.txt>
745
746 endmenu
747
748 menu "Executable file formats / Emulations"
749
750 source "fs/Kconfig.binfmt"
751
752 config SECCOMP
753         def_bool y
754         prompt "Enable seccomp to safely compute untrusted bytecode"
755         depends on PROC_FS
756         help
757           This kernel feature is useful for number crunching applications
758           that may need to compute untrusted bytecode during their
759           execution. By using pipes or other transports made available to
760           the process as file descriptors supporting the read/write
761           syscalls, it's possible to isolate those applications in
762           their own address space using seccomp. Once seccomp is
763           enabled via /proc/<pid>/seccomp, it cannot be disabled
764           and the task is only allowed to execute a few safe syscalls
765           defined by each seccomp mode.
766
767           If unsure, say Y.
768
769 endmenu
770
771 menu "Power Management"
772
773 config ARCH_HIBERNATION_POSSIBLE
774         def_bool y
775
776 source "kernel/power/Kconfig"
777
778 endmenu
779
780 source "net/Kconfig"
781
782 config PCMCIA
783         def_bool n
784
785 config CCW
786         def_bool y
787
788 source "drivers/Kconfig"
789
790 source "fs/Kconfig"
791
792 source "arch/s390/Kconfig.debug"
793
794 source "security/Kconfig"
795
796 source "crypto/Kconfig"
797
798 source "lib/Kconfig"
799
800 menu "Virtualization"
801
802 config PFAULT
803         def_bool y
804         prompt "Pseudo page fault support"
805         help
806           Select this option, if you want to use PFAULT pseudo page fault
807           handling under VM. If running native or in LPAR, this option
808           has no effect. If your VM does not support PFAULT, PAGEEX
809           pseudo page fault handling will be used.
810           Note that VM 4.2 supports PFAULT but has a bug in its
811           implementation that causes some problems.
812           Everybody who wants to run Linux under VM != VM4.2 should select
813           this option.
814
815 config CMM
816         def_tristate n
817         prompt "Cooperative memory management"
818         help
819           Select this option, if you want to enable the kernel interface
820           to reduce the memory size of the system. This is accomplished
821           by allocating pages of memory and put them "on hold". This only
822           makes sense for a system running under VM where the unused pages
823           will be reused by VM for other guest systems. The interface
824           allows an external monitor to balance memory of many systems.
825           Everybody who wants to run Linux under VM should select this
826           option.
827
828 config CMM_IUCV
829         def_bool y
830         prompt "IUCV special message interface to cooperative memory management"
831         depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
832         help
833           Select this option to enable the special message interface to
834           the cooperative memory management.
835
836 config APPLDATA_BASE
837         def_bool n
838         prompt "Linux - VM Monitor Stream, base infrastructure"
839         depends on PROC_FS
840         help
841           This provides a kernel interface for creating and updating z/VM APPLDATA
842           monitor records. The monitor records are updated at certain time
843           intervals, once the timer is started.
844           Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
845           i.e. enables or disables monitoring on the Linux side.
846           A custom interval value (in seconds) can be written to
847           /proc/appldata/interval.
848
849           Defaults are 60 seconds interval and timer off.
850           The /proc entries can also be read from, showing the current settings.
851
852 config APPLDATA_MEM
853         def_tristate m
854         prompt "Monitor memory management statistics"
855         depends on APPLDATA_BASE && VM_EVENT_COUNTERS
856         help
857           This provides memory management related data to the Linux - VM Monitor
858           Stream, like paging/swapping rate, memory utilisation, etc.
859           Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM
860           APPLDATA monitor record, i.e. enables or disables monitoring this record
861           on the z/VM side.
862
863           Default is disabled.
864           The /proc entry can also be read from, showing the current settings.
865
866           This can also be compiled as a module, which will be called
867           appldata_mem.o.
868
869 config APPLDATA_OS
870         def_tristate m
871         prompt "Monitor OS statistics"
872         depends on APPLDATA_BASE
873         help
874           This provides OS related data to the Linux - VM Monitor Stream, like
875           CPU utilisation, etc.
876           Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
877           APPLDATA monitor record, i.e. enables or disables monitoring this record
878           on the z/VM side.
879
880           Default is disabled.
881           This can also be compiled as a module, which will be called
882           appldata_os.o.
883
884 config APPLDATA_NET_SUM
885         def_tristate m
886         prompt "Monitor overall network statistics"
887         depends on APPLDATA_BASE && NET
888         help
889           This provides network related data to the Linux - VM Monitor Stream,
890           currently there is only a total sum of network I/O statistics, no
891           per-interface data.
892           Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
893           APPLDATA monitor record, i.e. enables or disables monitoring this record
894           on the z/VM side.
895
896           Default is disabled.
897           This can also be compiled as a module, which will be called
898           appldata_net_sum.o.
899
900 config S390_HYPFS_FS
901         def_bool y
902         prompt "s390 hypervisor file system support"
903         select SYS_HYPERVISOR
904         help
905           This is a virtual file system intended to provide accounting
906           information in an s390 hypervisor environment.
907
908 source "arch/s390/kvm/Kconfig"
909
910 config S390_GUEST
911         def_bool y
912         prompt "s390 support for virtio devices"
913         select TTY
914         select VIRTUALIZATION
915         select VIRTIO
916         select VIRTIO_CONSOLE
917         help
918           Enabling this option adds support for virtio based paravirtual device
919           drivers on s390.
920
921           Select this option if you want to run the kernel as a guest under
922           the KVM hypervisor.
923
924 endmenu