Merge branches 'x86/early-printk', 'x86/microcode' and 'core/objtool' into x86/urgent...
[sfrench/cifs-2.6.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 GENERIC_LOCKBREAK
39         def_bool y if SMP && PREEMPT
40
41 config PGSTE
42         def_bool y if KVM
43
44 config ARCH_SUPPORTS_DEBUG_PAGEALLOC
45         def_bool y
46
47 config AUDIT_ARCH
48         def_bool y
49
50 config NO_IOPORT_MAP
51         def_bool y
52
53 config PCI_QUIRKS
54         def_bool n
55
56 config ARCH_SUPPORTS_UPROBES
57         def_bool y
58
59 config KASAN_SHADOW_OFFSET
60         hex
61         depends on KASAN
62         default 0x18000000000000 if KASAN_S390_4_LEVEL_PAGING
63         default 0x30000000000
64
65 config S390
66         def_bool y
67         select ARCH_BINFMT_ELF_STATE
68         select ARCH_HAS_DEVMEM_IS_ALLOWED
69         select ARCH_HAS_ELF_RANDOMIZE
70         select ARCH_HAS_FORTIFY_SOURCE
71         select ARCH_HAS_GCOV_PROFILE_ALL
72         select ARCH_HAS_GIGANTIC_PAGE if (MEMORY_ISOLATION && COMPACTION) || CMA
73         select ARCH_HAS_KCOV
74         select ARCH_HAS_PTE_SPECIAL
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_NUMA_BALANCING
112         select ARCH_USE_BUILTIN_BSWAP
113         select ARCH_USE_CMPXCHG_LOCKREF
114         select ARCH_WANTS_DYNAMIC_TASK_STRUCT
115         select ARCH_WANT_IPC_PARSE_VERSION
116         select BUILDTIME_EXTABLE_SORT
117         select CLONE_BACKWARDS2
118         select DYNAMIC_FTRACE if FUNCTION_TRACER
119         select GENERIC_CLOCKEVENTS
120         select GENERIC_CPU_AUTOPROBE
121         select GENERIC_CPU_DEVICES if !SMP
122         select GENERIC_CPU_VULNERABILITIES
123         select GENERIC_FIND_FIRST_BIT
124         select GENERIC_SMP_IDLE_THREAD
125         select GENERIC_TIME_VSYSCALL
126         select HAVE_ALIGNED_STRUCT_PAGE if SLUB
127         select HAVE_ARCH_AUDITSYSCALL
128         select HAVE_ARCH_JUMP_LABEL
129         select HAVE_ARCH_JUMP_LABEL_RELATIVE
130         select HAVE_ARCH_KASAN
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_ARCH_VMAP_STACK
137         select HAVE_EBPF_JIT if PACK_STACK && HAVE_MARCH_Z196_FEATURES
138         select HAVE_CMPXCHG_DOUBLE
139         select HAVE_CMPXCHG_LOCAL
140         select HAVE_COPY_THREAD_TLS
141         select HAVE_DEBUG_KMEMLEAK
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_FENTRY
148         select HAVE_FTRACE_MCOUNT_RECORD
149         select HAVE_FUNCTION_GRAPH_TRACER
150         select HAVE_FUNCTION_TRACER
151         select HAVE_FUTEX_CMPXCHG if FUTEX
152         select HAVE_GCC_PLUGINS
153         select HAVE_KERNEL_BZIP2
154         select HAVE_KERNEL_GZIP
155         select HAVE_KERNEL_LZ4
156         select HAVE_KERNEL_LZMA
157         select HAVE_KERNEL_LZO
158         select HAVE_KERNEL_UNCOMPRESSED
159         select HAVE_KERNEL_XZ
160         select HAVE_KPROBES
161         select HAVE_KRETPROBES
162         select HAVE_KVM
163         select HAVE_LIVEPATCH
164         select HAVE_PERF_REGS
165         select HAVE_PERF_USER_STACK_DUMP
166         select HAVE_MEMBLOCK
167         select HAVE_MEMBLOCK_NODE_MAP
168         select HAVE_MEMBLOCK_PHYS_MAP
169         select HAVE_MOD_ARCH_SPECIFIC
170         select HAVE_NOP_MCOUNT
171         select HAVE_OPROFILE
172         select HAVE_PERF_EVENTS
173         select HAVE_REGS_AND_STACK_ACCESS_API
174         select HAVE_RSEQ
175         select HAVE_SYSCALL_TRACEPOINTS
176         select HAVE_VIRT_CPU_ACCOUNTING
177         select MODULES_USE_ELF_RELA
178         select NO_BOOTMEM
179         select OLD_SIGACTION
180         select OLD_SIGSUSPEND3
181         select SPARSE_IRQ
182         select SYSCTL_EXCEPTION_TRACE
183         select THREAD_INFO_IN_TASK
184         select TTY
185         select VIRT_CPU_ACCOUNTING
186         select ARCH_HAS_SCALED_CPUTIME
187         select VIRT_TO_BUS
188         select HAVE_NMI
189
190
191 config SCHED_OMIT_FRAME_POINTER
192         def_bool y
193
194 config PGTABLE_LEVELS
195         int
196         default 5
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 ZR1 and z14"
295         select HAVE_MARCH_Z14_FEATURES
296         help
297           Select this to enable optimizations for IBM z14 ZR1 and z14 (3907
298           and 3906 series). The kernel will be slightly faster but will not
299           work on older 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.hz
526
527 config KEXEC
528         def_bool y
529         select KEXEC_CORE
530
531 config KEXEC_FILE
532         bool "kexec file based system call"
533         select KEXEC_CORE
534         select BUILD_BIN2C
535         depends on CRYPTO
536         depends on CRYPTO_SHA256
537         depends on CRYPTO_SHA256_S390
538         help
539           Enable the kexec file based system call. In contrast to the normal
540           kexec system call this system call takes file descriptors for the
541           kernel and initramfs as arguments.
542
543 config ARCH_HAS_KEXEC_PURGATORY
544         def_bool y
545         depends on KEXEC_FILE
546
547 config ARCH_RANDOM
548         def_bool y
549         prompt "s390 architectural random number generation API"
550         help
551           Enable the s390 architectural random number generation API
552           to provide random data for all consumers within the Linux
553           kernel.
554
555           When enabled the arch_random_* functions declared in linux/random.h
556           are implemented. The implementation is based on the s390 CPACF
557           instruction subfunction TRNG which provides a real true random
558           number generator.
559
560           If unsure, say Y.
561
562 config KERNEL_NOBP
563         def_bool n
564         prompt "Enable modified branch prediction for the kernel by default"
565         help
566           If this option is selected the kernel will switch to a modified
567           branch prediction mode if the firmware interface is available.
568           The modified branch prediction mode improves the behaviour in
569           regard to speculative execution.
570
571           With the option enabled the kernel parameter "nobp=0" or "nospec"
572           can be used to run the kernel in the normal branch prediction mode.
573
574           With the option disabled the modified branch prediction mode is
575           enabled with the "nobp=1" kernel parameter.
576
577           If unsure, say N.
578
579 config EXPOLINE
580         def_bool n
581         prompt "Avoid speculative indirect branches in the kernel"
582         help
583           Compile the kernel with the expoline compiler options to guard
584           against kernel-to-user data leaks by avoiding speculative indirect
585           branches.
586           Requires a compiler with -mindirect-branch=thunk support for full
587           protection. The kernel may run slower.
588
589           If unsure, say N.
590
591 choice
592         prompt "Expoline default"
593         depends on EXPOLINE
594         default EXPOLINE_FULL
595
596 config EXPOLINE_OFF
597         bool "spectre_v2=off"
598
599 config EXPOLINE_AUTO
600         bool "spectre_v2=auto"
601
602 config EXPOLINE_FULL
603         bool "spectre_v2=on"
604
605 endchoice
606
607 endmenu
608
609 menu "Memory setup"
610
611 config ARCH_SPARSEMEM_ENABLE
612         def_bool y
613         select SPARSEMEM_VMEMMAP_ENABLE
614         select SPARSEMEM_VMEMMAP
615
616 config ARCH_SPARSEMEM_DEFAULT
617         def_bool y
618
619 config ARCH_SELECT_MEMORY_MODEL
620         def_bool y
621
622 config ARCH_ENABLE_MEMORY_HOTPLUG
623         def_bool y if SPARSEMEM
624
625 config ARCH_ENABLE_MEMORY_HOTREMOVE
626         def_bool y
627
628 config ARCH_ENABLE_SPLIT_PMD_PTLOCK
629         def_bool y
630
631 config FORCE_MAX_ZONEORDER
632         int
633         default "9"
634
635 config MAX_PHYSMEM_BITS
636         int "Maximum size of supported physical memory in bits (42-53)"
637         range 42 53
638         default "46"
639         help
640           This option specifies the maximum supported size of physical memory
641           in bits. Supported is any size between 2^42 (4TB) and 2^53 (8PB).
642           Increasing the number of bits also increases the kernel image size.
643           By default 46 bits (64TB) are supported.
644
645 config PACK_STACK
646         def_bool y
647         prompt "Pack kernel stack"
648         help
649           This option enables the compiler option -mkernel-backchain if it
650           is available. If the option is available the compiler supports
651           the new stack layout which dramatically reduces the minimum stack
652           frame size. With an old compiler a non-leaf function needs a
653           minimum of 96 bytes on 31 bit and 160 bytes on 64 bit. With
654           -mkernel-backchain the minimum size drops to 16 byte on 31 bit
655           and 24 byte on 64 bit.
656
657           Say Y if you are unsure.
658
659 config CHECK_STACK
660         def_bool y
661         depends on !VMAP_STACK
662         prompt "Detect kernel stack overflow"
663         help
664           This option enables the compiler option -mstack-guard and
665           -mstack-size if they are available. If the compiler supports them
666           it will emit additional code to each function prolog to trigger
667           an illegal operation if the kernel stack is about to overflow.
668
669           Say N if you are unsure.
670
671 config STACK_GUARD
672         int "Size of the guard area (128-1024)"
673         range 128 1024
674         depends on CHECK_STACK
675         default "256"
676         help
677           This allows you to specify the size of the guard area at the lower
678           end of the kernel stack. If the kernel stack points into the guard
679           area on function entry an illegal operation is triggered. The size
680           needs to be a power of 2. Please keep in mind that the size of an
681           interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit.
682           The minimum size for the stack guard should be 256 for 31 bit and
683           512 for 64 bit.
684
685 config WARN_DYNAMIC_STACK
686         def_bool n
687         prompt "Emit compiler warnings for function with dynamic stack usage"
688         help
689           This option enables the compiler option -mwarn-dynamicstack. If the
690           compiler supports this options generates warnings for functions
691           that dynamically allocate stack space using alloca.
692
693           Say N if you are unsure.
694
695 endmenu
696
697 menu "I/O subsystem"
698
699 config QDIO
700         def_tristate y
701         prompt "QDIO support"
702         ---help---
703           This driver provides the Queued Direct I/O base support for
704           IBM System z.
705
706           To compile this driver as a module, choose M here: the
707           module will be called qdio.
708
709           If unsure, say Y.
710
711 menuconfig PCI
712         bool "PCI support"
713         select PCI_MSI
714         select IOMMU_HELPER
715         select IOMMU_SUPPORT
716         select NEED_DMA_MAP_STATE
717         select NEED_SG_DMA_LENGTH
718
719         help
720           Enable PCI support.
721
722 if PCI
723
724 config PCI_NR_FUNCTIONS
725         int "Maximum number of PCI functions (1-4096)"
726         range 1 4096
727         default "128"
728         help
729           This allows you to specify the maximum number of PCI functions which
730           this kernel will support.
731
732 source "drivers/pci/Kconfig"
733
734 endif   # PCI
735
736 config PCI_DOMAINS
737         def_bool PCI
738
739 config HAS_IOMEM
740         def_bool PCI
741
742 config CHSC_SCH
743         def_tristate m
744         prompt "Support for CHSC subchannels"
745         help
746           This driver allows usage of CHSC subchannels. A CHSC subchannel
747           is usually present on LPAR only.
748           The driver creates a device /dev/chsc, which may be used to
749           obtain I/O configuration information about the machine and
750           to issue asynchronous chsc commands (DANGEROUS).
751           You will usually only want to use this interface on a special
752           LPAR designated for system management.
753
754           To compile this driver as a module, choose M here: the
755           module will be called chsc_sch.
756
757           If unsure, say N.
758
759 config SCM_BUS
760         def_bool y
761         prompt "SCM bus driver"
762         help
763           Bus driver for Storage Class Memory.
764
765 config EADM_SCH
766         def_tristate m
767         prompt "Support for EADM subchannels"
768         depends on SCM_BUS
769         help
770           This driver allows usage of EADM subchannels. EADM subchannels act
771           as a communication vehicle for SCM increments.
772
773           To compile this driver as a module, choose M here: the
774           module will be called eadm_sch.
775
776 config VFIO_CCW
777         def_tristate n
778         prompt "Support for VFIO-CCW subchannels"
779         depends on S390_CCW_IOMMU && VFIO_MDEV
780         help
781           This driver allows usage of I/O subchannels via VFIO-CCW.
782
783           To compile this driver as a module, choose M here: the
784           module will be called vfio_ccw.
785
786 config VFIO_AP
787         def_tristate n
788         prompt "VFIO support for AP devices"
789         depends on S390_AP_IOMMU && VFIO_MDEV_DEVICE && KVM
790         help
791                 This driver grants access to Adjunct Processor (AP) devices
792                 via the VFIO mediated device interface.
793
794                 To compile this driver as a module, choose M here: the module
795                 will be called vfio_ap.
796
797 endmenu
798
799 menu "Dump support"
800
801 config CRASH_DUMP
802         bool "kernel crash dumps"
803         depends on SMP
804         select KEXEC
805         help
806           Generate crash dump after being started by kexec.
807           Crash dump kernels are loaded in the main kernel with kexec-tools
808           into a specially reserved region and then later executed after
809           a crash by kdump/kexec.
810           Refer to <file:Documentation/s390/zfcpdump.txt> for more details on this.
811           This option also enables s390 zfcpdump.
812           See also <file:Documentation/s390/zfcpdump.txt>
813
814 endmenu
815
816 config SECCOMP
817         def_bool y
818         prompt "Enable seccomp to safely compute untrusted bytecode"
819         depends on PROC_FS
820         help
821           This kernel feature is useful for number crunching applications
822           that may need to compute untrusted bytecode during their
823           execution. By using pipes or other transports made available to
824           the process as file descriptors supporting the read/write
825           syscalls, it's possible to isolate those applications in
826           their own address space using seccomp. Once seccomp is
827           enabled via /proc/<pid>/seccomp, it cannot be disabled
828           and the task is only allowed to execute a few safe syscalls
829           defined by each seccomp mode.
830
831           If unsure, say Y.
832
833 menu "Power Management"
834
835 config ARCH_HIBERNATION_POSSIBLE
836         def_bool y
837
838 source "kernel/power/Kconfig"
839
840 endmenu
841
842 config PCMCIA
843         def_bool n
844
845 config CCW
846         def_bool y
847
848 config HAVE_PNETID
849         tristate
850         default (SMC || CCWGROUP)
851
852 menu "Virtualization"
853
854 config PFAULT
855         def_bool y
856         prompt "Pseudo page fault support"
857         help
858           Select this option, if you want to use PFAULT pseudo page fault
859           handling under VM. If running native or in LPAR, this option
860           has no effect. If your VM does not support PFAULT, PAGEEX
861           pseudo page fault handling will be used.
862           Note that VM 4.2 supports PFAULT but has a bug in its
863           implementation that causes some problems.
864           Everybody who wants to run Linux under VM != VM4.2 should select
865           this option.
866
867 config CMM
868         def_tristate n
869         prompt "Cooperative memory management"
870         help
871           Select this option, if you want to enable the kernel interface
872           to reduce the memory size of the system. This is accomplished
873           by allocating pages of memory and put them "on hold". This only
874           makes sense for a system running under VM where the unused pages
875           will be reused by VM for other guest systems. The interface
876           allows an external monitor to balance memory of many systems.
877           Everybody who wants to run Linux under VM should select this
878           option.
879
880 config CMM_IUCV
881         def_bool y
882         prompt "IUCV special message interface to cooperative memory management"
883         depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
884         help
885           Select this option to enable the special message interface to
886           the cooperative memory management.
887
888 config APPLDATA_BASE
889         def_bool n
890         prompt "Linux - VM Monitor Stream, base infrastructure"
891         depends on PROC_FS
892         help
893           This provides a kernel interface for creating and updating z/VM APPLDATA
894           monitor records. The monitor records are updated at certain time
895           intervals, once the timer is started.
896           Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
897           i.e. enables or disables monitoring on the Linux side.
898           A custom interval value (in seconds) can be written to
899           /proc/appldata/interval.
900
901           Defaults are 60 seconds interval and timer off.
902           The /proc entries can also be read from, showing the current settings.
903
904 config APPLDATA_MEM
905         def_tristate m
906         prompt "Monitor memory management statistics"
907         depends on APPLDATA_BASE && VM_EVENT_COUNTERS
908         help
909           This provides memory management related data to the Linux - VM Monitor
910           Stream, like paging/swapping rate, memory utilisation, etc.
911           Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM
912           APPLDATA monitor record, i.e. enables or disables monitoring this record
913           on the z/VM side.
914
915           Default is disabled.
916           The /proc entry can also be read from, showing the current settings.
917
918           This can also be compiled as a module, which will be called
919           appldata_mem.o.
920
921 config APPLDATA_OS
922         def_tristate m
923         prompt "Monitor OS statistics"
924         depends on APPLDATA_BASE
925         help
926           This provides OS related data to the Linux - VM Monitor Stream, like
927           CPU utilisation, etc.
928           Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
929           APPLDATA monitor record, i.e. enables or disables monitoring this record
930           on the z/VM side.
931
932           Default is disabled.
933           This can also be compiled as a module, which will be called
934           appldata_os.o.
935
936 config APPLDATA_NET_SUM
937         def_tristate m
938         prompt "Monitor overall network statistics"
939         depends on APPLDATA_BASE && NET
940         help
941           This provides network related data to the Linux - VM Monitor Stream,
942           currently there is only a total sum of network I/O statistics, no
943           per-interface data.
944           Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
945           APPLDATA monitor record, i.e. enables or disables monitoring this record
946           on the z/VM side.
947
948           Default is disabled.
949           This can also be compiled as a module, which will be called
950           appldata_net_sum.o.
951
952 config S390_HYPFS_FS
953         def_bool y
954         prompt "s390 hypervisor file system support"
955         select SYS_HYPERVISOR
956         help
957           This is a virtual file system intended to provide accounting
958           information in an s390 hypervisor environment.
959
960 source "arch/s390/kvm/Kconfig"
961
962 config S390_GUEST
963         def_bool y
964         prompt "s390 support for virtio devices"
965         select TTY
966         select VIRTUALIZATION
967         select VIRTIO
968         select VIRTIO_CONSOLE
969         help
970           Enabling this option adds support for virtio based paravirtual device
971           drivers on s390.
972
973           Select this option if you want to run the kernel as a guest under
974           the KVM hypervisor.
975
976 endmenu