]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blob - arch/s390/Kconfig
Merge tag 'acpi-5.11-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
[mirror_ubuntu-hirsute-kernel.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 ARCH_HAS_ILOG2_U32
18 def_bool n
19
20 config ARCH_HAS_ILOG2_U64
21 def_bool n
22
23 config GENERIC_HWEIGHT
24 def_bool y
25
26 config GENERIC_BUG
27 def_bool y if BUG
28
29 config GENERIC_BUG_RELATIVE_POINTERS
30 def_bool y
31
32 config GENERIC_LOCKBREAK
33 def_bool y if PREEMPTION
34
35 config PGSTE
36 def_bool y if KVM
37
38 config AUDIT_ARCH
39 def_bool y
40
41 config NO_IOPORT_MAP
42 def_bool y
43
44 config PCI_QUIRKS
45 def_bool n
46
47 config ARCH_SUPPORTS_UPROBES
48 def_bool y
49
50 config KASAN_SHADOW_OFFSET
51 hex
52 depends on KASAN
53 default 0x18000000000000
54
55 config S390
56 def_bool y
57 select ARCH_BINFMT_ELF_STATE
58 select ARCH_HAS_DEBUG_VM_PGTABLE
59 select ARCH_HAS_DEBUG_WX
60 select ARCH_HAS_DEVMEM_IS_ALLOWED
61 select ARCH_HAS_ELF_RANDOMIZE
62 select ARCH_HAS_FORTIFY_SOURCE
63 select ARCH_HAS_GCOV_PROFILE_ALL
64 select ARCH_HAS_GIGANTIC_PAGE
65 select ARCH_HAS_KCOV
66 select ARCH_HAS_MEM_ENCRYPT
67 select ARCH_HAS_PTE_SPECIAL
68 select ARCH_HAS_SET_MEMORY
69 select ARCH_HAS_STRICT_KERNEL_RWX
70 select ARCH_HAS_STRICT_MODULE_RWX
71 select ARCH_HAS_SYSCALL_WRAPPER
72 select ARCH_HAS_UBSAN_SANITIZE_ALL
73 select ARCH_HAS_VDSO_DATA
74 select ARCH_HAVE_NMI_SAFE_CMPXCHG
75 select ARCH_INLINE_READ_LOCK
76 select ARCH_INLINE_READ_LOCK_BH
77 select ARCH_INLINE_READ_LOCK_IRQ
78 select ARCH_INLINE_READ_LOCK_IRQSAVE
79 select ARCH_INLINE_READ_TRYLOCK
80 select ARCH_INLINE_READ_UNLOCK
81 select ARCH_INLINE_READ_UNLOCK_BH
82 select ARCH_INLINE_READ_UNLOCK_IRQ
83 select ARCH_INLINE_READ_UNLOCK_IRQRESTORE
84 select ARCH_INLINE_SPIN_LOCK
85 select ARCH_INLINE_SPIN_LOCK_BH
86 select ARCH_INLINE_SPIN_LOCK_IRQ
87 select ARCH_INLINE_SPIN_LOCK_IRQSAVE
88 select ARCH_INLINE_SPIN_TRYLOCK
89 select ARCH_INLINE_SPIN_TRYLOCK_BH
90 select ARCH_INLINE_SPIN_UNLOCK
91 select ARCH_INLINE_SPIN_UNLOCK_BH
92 select ARCH_INLINE_SPIN_UNLOCK_IRQ
93 select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
94 select ARCH_INLINE_WRITE_LOCK
95 select ARCH_INLINE_WRITE_LOCK_BH
96 select ARCH_INLINE_WRITE_LOCK_IRQ
97 select ARCH_INLINE_WRITE_LOCK_IRQSAVE
98 select ARCH_INLINE_WRITE_TRYLOCK
99 select ARCH_INLINE_WRITE_UNLOCK
100 select ARCH_INLINE_WRITE_UNLOCK_BH
101 select ARCH_INLINE_WRITE_UNLOCK_IRQ
102 select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
103 select ARCH_STACKWALK
104 select ARCH_SUPPORTS_ATOMIC_RMW
105 select ARCH_SUPPORTS_DEBUG_PAGEALLOC
106 select ARCH_SUPPORTS_NUMA_BALANCING
107 select ARCH_USE_BUILTIN_BSWAP
108 select ARCH_USE_CMPXCHG_LOCKREF
109 select ARCH_WANTS_DYNAMIC_TASK_STRUCT
110 select ARCH_WANT_DEFAULT_BPF_JIT
111 select ARCH_WANT_IPC_PARSE_VERSION
112 select BUILDTIME_TABLE_SORT
113 select CLONE_BACKWARDS2
114 select DMA_OPS if PCI
115 select DYNAMIC_FTRACE if FUNCTION_TRACER
116 select GENERIC_CPU_AUTOPROBE
117 select GENERIC_CPU_VULNERABILITIES
118 select GENERIC_FIND_FIRST_BIT
119 select GENERIC_GETTIMEOFDAY
120 select GENERIC_PTDUMP
121 select GENERIC_SMP_IDLE_THREAD
122 select GENERIC_TIME_VSYSCALL
123 select HAVE_ALIGNED_STRUCT_PAGE if SLUB
124 select HAVE_ARCH_AUDITSYSCALL
125 select HAVE_ARCH_JUMP_LABEL
126 select HAVE_ARCH_JUMP_LABEL_RELATIVE
127 select HAVE_ARCH_KASAN
128 select HAVE_ARCH_KASAN_VMALLOC
129 select CPU_NO_EFFICIENT_FFS if !HAVE_MARCH_Z9_109_FEATURES
130 select HAVE_ARCH_SECCOMP_FILTER
131 select HAVE_ARCH_SOFT_DIRTY
132 select HAVE_ARCH_TRACEHOOK
133 select HAVE_ARCH_TRANSPARENT_HUGEPAGE
134 select HAVE_ARCH_VMAP_STACK
135 select HAVE_ASM_MODVERSIONS
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_DEBUG_KMEMLEAK
140 select HAVE_DMA_CONTIGUOUS
141 select HAVE_DYNAMIC_FTRACE
142 select HAVE_DYNAMIC_FTRACE_WITH_REGS
143 select HAVE_FAST_GUP
144 select HAVE_EFFICIENT_UNALIGNED_ACCESS
145 select HAVE_FENTRY
146 select HAVE_FTRACE_MCOUNT_RECORD
147 select HAVE_FUNCTION_ERROR_INJECTION
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_GENERIC_VDSO
153 select HAVE_IRQ_EXIT_ON_IRQ_STACK
154 select HAVE_KERNEL_BZIP2
155 select HAVE_KERNEL_GZIP
156 select HAVE_KERNEL_LZ4
157 select HAVE_KERNEL_LZMA
158 select HAVE_KERNEL_LZO
159 select HAVE_KERNEL_UNCOMPRESSED
160 select HAVE_KERNEL_XZ
161 select HAVE_KPROBES
162 select HAVE_KPROBES_ON_FTRACE
163 select HAVE_KRETPROBES
164 select HAVE_KVM
165 select HAVE_LIVEPATCH
166 select HAVE_PERF_REGS
167 select HAVE_PERF_USER_STACK_DUMP
168 select HAVE_MEMBLOCK_PHYS_MAP
169 select MMU_GATHER_NO_GATHER
170 select HAVE_MOD_ARCH_SPECIFIC
171 select HAVE_NOP_MCOUNT
172 select HAVE_OPROFILE
173 select HAVE_PCI
174 select HAVE_PERF_EVENTS
175 select MMU_GATHER_RCU_TABLE_FREE
176 select HAVE_REGS_AND_STACK_ACCESS_API
177 select HAVE_RELIABLE_STACKTRACE
178 select HAVE_RSEQ
179 select HAVE_SYSCALL_TRACEPOINTS
180 select HAVE_VIRT_CPU_ACCOUNTING
181 select HAVE_VIRT_CPU_ACCOUNTING_IDLE
182 select IOMMU_HELPER if PCI
183 select IOMMU_SUPPORT if PCI
184 select MODULES_USE_ELF_RELA
185 select NEED_DMA_MAP_STATE if PCI
186 select NEED_SG_DMA_LENGTH if PCI
187 select OLD_SIGACTION
188 select OLD_SIGSUSPEND3
189 select PCI_DOMAINS if PCI
190 select PCI_MSI if PCI
191 select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
192 select SPARSE_IRQ
193 select SYSCTL_EXCEPTION_TRACE
194 select THREAD_INFO_IN_TASK
195 select TTY
196 select VIRT_CPU_ACCOUNTING
197 select ARCH_HAS_SCALED_CPUTIME
198 select HAVE_NMI
199 select ARCH_HAS_FORCE_DMA_UNENCRYPTED
200 select SWIOTLB
201 select GENERIC_ALLOCATOR
202 imply IMA_SECURE_AND_OR_TRUSTED_BOOT
203
204
205 config SCHED_OMIT_FRAME_POINTER
206 def_bool y
207
208 config PGTABLE_LEVELS
209 int
210 default 5
211
212 source "kernel/livepatch/Kconfig"
213
214 menu "Processor type and features"
215
216 config HAVE_MARCH_Z900_FEATURES
217 def_bool n
218
219 config HAVE_MARCH_Z990_FEATURES
220 def_bool n
221 select HAVE_MARCH_Z900_FEATURES
222
223 config HAVE_MARCH_Z9_109_FEATURES
224 def_bool n
225 select HAVE_MARCH_Z990_FEATURES
226
227 config HAVE_MARCH_Z10_FEATURES
228 def_bool n
229 select HAVE_MARCH_Z9_109_FEATURES
230
231 config HAVE_MARCH_Z196_FEATURES
232 def_bool n
233 select HAVE_MARCH_Z10_FEATURES
234
235 config HAVE_MARCH_ZEC12_FEATURES
236 def_bool n
237 select HAVE_MARCH_Z196_FEATURES
238
239 config HAVE_MARCH_Z13_FEATURES
240 def_bool n
241 select HAVE_MARCH_ZEC12_FEATURES
242
243 config HAVE_MARCH_Z14_FEATURES
244 def_bool n
245 select HAVE_MARCH_Z13_FEATURES
246
247 config HAVE_MARCH_Z15_FEATURES
248 def_bool n
249 select HAVE_MARCH_Z14_FEATURES
250
251 choice
252 prompt "Processor type"
253 default MARCH_Z196
254
255 config MARCH_Z900
256 bool "IBM zSeries model z800 and z900"
257 select HAVE_MARCH_Z900_FEATURES
258 depends on $(cc-option,-march=z900)
259 help
260 Select this to enable optimizations for model z800/z900 (2064 and
261 2066 series). This will enable some optimizations that are not
262 available on older ESA/390 (31 Bit) only CPUs.
263
264 config MARCH_Z990
265 bool "IBM zSeries model z890 and z990"
266 select HAVE_MARCH_Z990_FEATURES
267 depends on $(cc-option,-march=z990)
268 help
269 Select this to enable optimizations for model z890/z990 (2084 and
270 2086 series). The kernel will be slightly faster but will not work
271 on older machines.
272
273 config MARCH_Z9_109
274 bool "IBM System z9"
275 select HAVE_MARCH_Z9_109_FEATURES
276 depends on $(cc-option,-march=z9-109)
277 help
278 Select this to enable optimizations for IBM System z9 (2094 and
279 2096 series). The kernel will be slightly faster but will not work
280 on older machines.
281
282 config MARCH_Z10
283 bool "IBM System z10"
284 select HAVE_MARCH_Z10_FEATURES
285 depends on $(cc-option,-march=z10)
286 help
287 Select this to enable optimizations for IBM System z10 (2097 and
288 2098 series). The kernel will be slightly faster but will not work
289 on older machines.
290
291 config MARCH_Z196
292 bool "IBM zEnterprise 114 and 196"
293 select HAVE_MARCH_Z196_FEATURES
294 depends on $(cc-option,-march=z196)
295 help
296 Select this to enable optimizations for IBM zEnterprise 114 and 196
297 (2818 and 2817 series). The kernel will be slightly faster but will
298 not work on older machines.
299
300 config MARCH_ZEC12
301 bool "IBM zBC12 and zEC12"
302 select HAVE_MARCH_ZEC12_FEATURES
303 depends on $(cc-option,-march=zEC12)
304 help
305 Select this to enable optimizations for IBM zBC12 and zEC12 (2828 and
306 2827 series). The kernel will be slightly faster but will not work on
307 older machines.
308
309 config MARCH_Z13
310 bool "IBM z13s and z13"
311 select HAVE_MARCH_Z13_FEATURES
312 depends on $(cc-option,-march=z13)
313 help
314 Select this to enable optimizations for IBM z13s and z13 (2965 and
315 2964 series). The kernel will be slightly faster but will not work on
316 older machines.
317
318 config MARCH_Z14
319 bool "IBM z14 ZR1 and z14"
320 select HAVE_MARCH_Z14_FEATURES
321 depends on $(cc-option,-march=z14)
322 help
323 Select this to enable optimizations for IBM z14 ZR1 and z14 (3907
324 and 3906 series). The kernel will be slightly faster but will not
325 work on older machines.
326
327 config MARCH_Z15
328 bool "IBM z15"
329 select HAVE_MARCH_Z15_FEATURES
330 depends on $(cc-option,-march=z15)
331 help
332 Select this to enable optimizations for IBM z15 (8562
333 and 8561 series). The kernel will be slightly faster but will not
334 work on older machines.
335
336 endchoice
337
338 config MARCH_Z900_TUNE
339 def_bool TUNE_Z900 || MARCH_Z900 && TUNE_DEFAULT
340
341 config MARCH_Z990_TUNE
342 def_bool TUNE_Z990 || MARCH_Z990 && TUNE_DEFAULT
343
344 config MARCH_Z9_109_TUNE
345 def_bool TUNE_Z9_109 || MARCH_Z9_109 && TUNE_DEFAULT
346
347 config MARCH_Z10_TUNE
348 def_bool TUNE_Z10 || MARCH_Z10 && TUNE_DEFAULT
349
350 config MARCH_Z196_TUNE
351 def_bool TUNE_Z196 || MARCH_Z196 && TUNE_DEFAULT
352
353 config MARCH_ZEC12_TUNE
354 def_bool TUNE_ZEC12 || MARCH_ZEC12 && TUNE_DEFAULT
355
356 config MARCH_Z13_TUNE
357 def_bool TUNE_Z13 || MARCH_Z13 && TUNE_DEFAULT
358
359 config MARCH_Z14_TUNE
360 def_bool TUNE_Z14 || MARCH_Z14 && TUNE_DEFAULT
361
362 config MARCH_Z15_TUNE
363 def_bool TUNE_Z15 || MARCH_Z15 && TUNE_DEFAULT
364
365 choice
366 prompt "Tune code generation"
367 default TUNE_DEFAULT
368 help
369 Cause the compiler to tune (-mtune) the generated code for a machine.
370 This will make the code run faster on the selected machine but
371 somewhat slower on other machines.
372 This option only changes how the compiler emits instructions, not the
373 selection of instructions itself, so the resulting kernel will run on
374 all other machines.
375
376 config TUNE_DEFAULT
377 bool "Default"
378 help
379 Tune the generated code for the target processor for which the kernel
380 will be compiled.
381
382 config TUNE_Z900
383 bool "IBM zSeries model z800 and z900"
384 depends on $(cc-option,-mtune=z900)
385
386 config TUNE_Z990
387 bool "IBM zSeries model z890 and z990"
388 depends on $(cc-option,-mtune=z990)
389
390 config TUNE_Z9_109
391 bool "IBM System z9"
392 depends on $(cc-option,-mtune=z9-109)
393
394 config TUNE_Z10
395 bool "IBM System z10"
396 depends on $(cc-option,-mtune=z10)
397
398 config TUNE_Z196
399 bool "IBM zEnterprise 114 and 196"
400 depends on $(cc-option,-mtune=z196)
401
402 config TUNE_ZEC12
403 bool "IBM zBC12 and zEC12"
404 depends on $(cc-option,-mtune=zEC12)
405
406 config TUNE_Z13
407 bool "IBM z13s and z13"
408 depends on $(cc-option,-mtune=z13)
409
410 config TUNE_Z14
411 bool "IBM z14 ZR1 and z14"
412 depends on $(cc-option,-mtune=z14)
413
414 config TUNE_Z15
415 bool "IBM z15"
416 depends on $(cc-option,-mtune=z15)
417
418 endchoice
419
420 config 64BIT
421 def_bool y
422
423 config COMPAT
424 def_bool y
425 prompt "Kernel support for 31 bit emulation"
426 select COMPAT_BINFMT_ELF if BINFMT_ELF
427 select ARCH_WANT_OLD_COMPAT_IPC
428 select COMPAT_OLD_SIGACTION
429 select HAVE_UID16
430 depends on MULTIUSER
431 help
432 Select this option if you want to enable your system kernel to
433 handle system-calls from ELF binaries for 31 bit ESA. This option
434 (and some other stuff like libraries and such) is needed for
435 executing 31 bit applications. It is safe to say "Y".
436
437 config SYSVIPC_COMPAT
438 def_bool y if COMPAT && SYSVIPC
439
440 config SMP
441 def_bool y
442
443 config NR_CPUS
444 int "Maximum number of CPUs (2-512)"
445 range 2 512
446 default "64"
447 help
448 This allows you to specify the maximum number of CPUs which this
449 kernel will support. The maximum supported value is 512 and the
450 minimum value which makes sense is 2.
451
452 This is purely to save memory - each supported CPU adds
453 approximately sixteen kilobytes to the kernel image.
454
455 config HOTPLUG_CPU
456 def_bool y
457
458 config NUMA
459 bool "NUMA support"
460 depends on SCHED_TOPOLOGY
461 default n
462 help
463 Enable NUMA support
464
465 This option adds NUMA support to the kernel.
466
467 config NODES_SHIFT
468 int
469 depends on NEED_MULTIPLE_NODES
470 default "1"
471
472 config SCHED_SMT
473 def_bool n
474
475 config SCHED_MC
476 def_bool n
477
478 config SCHED_BOOK
479 def_bool n
480
481 config SCHED_DRAWER
482 def_bool n
483
484 config SCHED_TOPOLOGY
485 def_bool y
486 prompt "Topology scheduler support"
487 select SCHED_SMT
488 select SCHED_MC
489 select SCHED_BOOK
490 select SCHED_DRAWER
491 help
492 Topology scheduler support improves the CPU scheduler's decision
493 making when dealing with machines that have multi-threading,
494 multiple cores or multiple books.
495
496 source "kernel/Kconfig.hz"
497
498 config KEXEC
499 def_bool y
500 select KEXEC_CORE
501
502 config KEXEC_FILE
503 bool "kexec file based system call"
504 select KEXEC_CORE
505 select BUILD_BIN2C
506 depends on CRYPTO
507 depends on CRYPTO_SHA256
508 depends on CRYPTO_SHA256_S390
509 help
510 Enable the kexec file based system call. In contrast to the normal
511 kexec system call this system call takes file descriptors for the
512 kernel and initramfs as arguments.
513
514 config ARCH_HAS_KEXEC_PURGATORY
515 def_bool y
516 depends on KEXEC_FILE
517
518 config KEXEC_SIG
519 bool "Verify kernel signature during kexec_file_load() syscall"
520 depends on KEXEC_FILE && MODULE_SIG_FORMAT
521 help
522 This option makes kernel signature verification mandatory for
523 the kexec_file_load() syscall.
524
525 In addition to that option, you need to enable signature
526 verification for the corresponding kernel image type being
527 loaded in order for this to work.
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 config KERNEL_NOBP
545 def_bool n
546 prompt "Enable modified branch prediction for the kernel by default"
547 help
548 If this option is selected the kernel will switch to a modified
549 branch prediction mode if the firmware interface is available.
550 The modified branch prediction mode improves the behaviour in
551 regard to speculative execution.
552
553 With the option enabled the kernel parameter "nobp=0" or "nospec"
554 can be used to run the kernel in the normal branch prediction mode.
555
556 With the option disabled the modified branch prediction mode is
557 enabled with the "nobp=1" kernel parameter.
558
559 If unsure, say N.
560
561 config EXPOLINE
562 def_bool n
563 prompt "Avoid speculative indirect branches in the kernel"
564 help
565 Compile the kernel with the expoline compiler options to guard
566 against kernel-to-user data leaks by avoiding speculative indirect
567 branches.
568 Requires a compiler with -mindirect-branch=thunk support for full
569 protection. The kernel may run slower.
570
571 If unsure, say N.
572
573 choice
574 prompt "Expoline default"
575 depends on EXPOLINE
576 default EXPOLINE_FULL
577
578 config EXPOLINE_OFF
579 bool "spectre_v2=off"
580
581 config EXPOLINE_AUTO
582 bool "spectre_v2=auto"
583
584 config EXPOLINE_FULL
585 bool "spectre_v2=on"
586
587 endchoice
588
589 config RELOCATABLE
590 bool "Build a relocatable kernel"
591 select MODULE_REL_CRCS if MODVERSIONS
592 default y
593 help
594 This builds a kernel image that retains relocation information
595 so it can be loaded at an arbitrary address.
596 The kernel is linked as a position-independent executable (PIE)
597 and contains dynamic relocations which are processed early in the
598 bootup process.
599 The relocations make the kernel image about 15% larger (compressed
600 10%), but are discarded at runtime.
601
602 config RANDOMIZE_BASE
603 bool "Randomize the address of the kernel image (KASLR)"
604 depends on RELOCATABLE
605 default y
606 help
607 In support of Kernel Address Space Layout Randomization (KASLR),
608 this randomizes the address at which the kernel image is loaded,
609 as a security feature that deters exploit attempts relying on
610 knowledge of the location of kernel internals.
611
612 endmenu
613
614 menu "Memory setup"
615
616 config ARCH_SPARSEMEM_ENABLE
617 def_bool y
618 select SPARSEMEM_VMEMMAP_ENABLE
619 select SPARSEMEM_VMEMMAP
620
621 config ARCH_SPARSEMEM_DEFAULT
622 def_bool y
623
624 config ARCH_ENABLE_MEMORY_HOTPLUG
625 def_bool y if SPARSEMEM
626
627 config ARCH_ENABLE_MEMORY_HOTREMOVE
628 def_bool y
629
630 config ARCH_ENABLE_SPLIT_PMD_PTLOCK
631 def_bool y
632
633 config MAX_PHYSMEM_BITS
634 int "Maximum size of supported physical memory in bits (42-53)"
635 range 42 53
636 default "46"
637 help
638 This option specifies the maximum supported size of physical memory
639 in bits. Supported is any size between 2^42 (4TB) and 2^53 (8PB).
640 Increasing the number of bits also increases the kernel image size.
641 By default 46 bits (64TB) are supported.
642
643 config PACK_STACK
644 def_bool y
645 prompt "Pack kernel stack"
646 help
647 This option enables the compiler option -mkernel-backchain if it
648 is available. If the option is available the compiler supports
649 the new stack layout which dramatically reduces the minimum stack
650 frame size. With an old compiler a non-leaf function needs a
651 minimum of 96 bytes on 31 bit and 160 bytes on 64 bit. With
652 -mkernel-backchain the minimum size drops to 16 byte on 31 bit
653 and 24 byte on 64 bit.
654
655 Say Y if you are unsure.
656
657 config CHECK_STACK
658 def_bool y
659 depends on !VMAP_STACK
660 prompt "Detect kernel stack overflow"
661 help
662 This option enables the compiler option -mstack-guard and
663 -mstack-size if they are available. If the compiler supports them
664 it will emit additional code to each function prolog to trigger
665 an illegal operation if the kernel stack is about to overflow.
666
667 Say N if you are unsure.
668
669 config STACK_GUARD
670 int "Size of the guard area (128-1024)"
671 range 128 1024
672 depends on CHECK_STACK
673 default "256"
674 help
675 This allows you to specify the size of the guard area at the lower
676 end of the kernel stack. If the kernel stack points into the guard
677 area on function entry an illegal operation is triggered. The size
678 needs to be a power of 2. Please keep in mind that the size of an
679 interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit.
680 The minimum size for the stack guard should be 256 for 31 bit and
681 512 for 64 bit.
682
683 config WARN_DYNAMIC_STACK
684 def_bool n
685 prompt "Emit compiler warnings for function with dynamic stack usage"
686 help
687 This option enables the compiler option -mwarn-dynamicstack. If the
688 compiler supports this options generates warnings for functions
689 that dynamically allocate stack space using alloca.
690
691 Say N if you are unsure.
692
693 endmenu
694
695 menu "I/O subsystem"
696
697 config QDIO
698 def_tristate y
699 prompt "QDIO support"
700 help
701 This driver provides the Queued Direct I/O base support for
702 IBM System z.
703
704 To compile this driver as a module, choose M here: the
705 module will be called qdio.
706
707 If unsure, say Y.
708
709 if PCI
710
711 config PCI_NR_FUNCTIONS
712 int "Maximum number of PCI functions (1-4096)"
713 range 1 4096
714 default "512"
715 help
716 This allows you to specify the maximum number of PCI functions which
717 this kernel will support.
718
719 endif # PCI
720
721 config HAS_IOMEM
722 def_bool PCI
723
724 config CHSC_SCH
725 def_tristate m
726 prompt "Support for CHSC subchannels"
727 help
728 This driver allows usage of CHSC subchannels. A CHSC subchannel
729 is usually present on LPAR only.
730 The driver creates a device /dev/chsc, which may be used to
731 obtain I/O configuration information about the machine and
732 to issue asynchronous chsc commands (DANGEROUS).
733 You will usually only want to use this interface on a special
734 LPAR designated for system management.
735
736 To compile this driver as a module, choose M here: the
737 module will be called chsc_sch.
738
739 If unsure, say N.
740
741 config SCM_BUS
742 def_bool y
743 prompt "SCM bus driver"
744 help
745 Bus driver for Storage Class Memory.
746
747 config EADM_SCH
748 def_tristate m
749 prompt "Support for EADM subchannels"
750 depends on SCM_BUS
751 help
752 This driver allows usage of EADM subchannels. EADM subchannels act
753 as a communication vehicle for SCM increments.
754
755 To compile this driver as a module, choose M here: the
756 module will be called eadm_sch.
757
758 config VFIO_CCW
759 def_tristate n
760 prompt "Support for VFIO-CCW subchannels"
761 depends on S390_CCW_IOMMU && VFIO_MDEV
762 help
763 This driver allows usage of I/O subchannels via VFIO-CCW.
764
765 To compile this driver as a module, choose M here: the
766 module will be called vfio_ccw.
767
768 config VFIO_AP
769 def_tristate n
770 prompt "VFIO support for AP devices"
771 depends on S390_AP_IOMMU && VFIO_MDEV_DEVICE && KVM
772 depends on ZCRYPT
773 help
774 This driver grants access to Adjunct Processor (AP) devices
775 via the VFIO mediated device interface.
776
777 To compile this driver as a module, choose M here: the module
778 will be called vfio_ap.
779
780 endmenu
781
782 menu "Dump support"
783
784 config CRASH_DUMP
785 bool "kernel crash dumps"
786 select KEXEC
787 help
788 Generate crash dump after being started by kexec.
789 Crash dump kernels are loaded in the main kernel with kexec-tools
790 into a specially reserved region and then later executed after
791 a crash by kdump/kexec.
792 Refer to <file:Documentation/s390/zfcpdump.rst> for more details on this.
793 This option also enables s390 zfcpdump.
794 See also <file:Documentation/s390/zfcpdump.rst>
795
796 endmenu
797
798 config CCW
799 def_bool y
800
801 config HAVE_PNETID
802 tristate
803 default (SMC || CCWGROUP)
804
805 menu "Virtualization"
806
807 config PROTECTED_VIRTUALIZATION_GUEST
808 def_bool n
809 prompt "Protected virtualization guest support"
810 select ARCH_HAS_RESTRICTED_VIRTIO_MEMORY_ACCESS
811 help
812 Select this option, if you want to be able to run this
813 kernel as a protected virtualization KVM guest.
814 Protected virtualization capable machines have a mini hypervisor
815 located at machine level (an ultravisor). With help of the
816 Ultravisor, KVM will be able to run "protected" VMs, special
817 VMs whose memory and management data are unavailable to KVM.
818
819 config PFAULT
820 def_bool y
821 prompt "Pseudo page fault support"
822 help
823 Select this option, if you want to use PFAULT pseudo page fault
824 handling under VM. If running native or in LPAR, this option
825 has no effect. If your VM does not support PFAULT, PAGEEX
826 pseudo page fault handling will be used.
827 Note that VM 4.2 supports PFAULT but has a bug in its
828 implementation that causes some problems.
829 Everybody who wants to run Linux under VM != VM4.2 should select
830 this option.
831
832 config CMM
833 def_tristate n
834 prompt "Cooperative memory management"
835 help
836 Select this option, if you want to enable the kernel interface
837 to reduce the memory size of the system. This is accomplished
838 by allocating pages of memory and put them "on hold". This only
839 makes sense for a system running under VM where the unused pages
840 will be reused by VM for other guest systems. The interface
841 allows an external monitor to balance memory of many systems.
842 Everybody who wants to run Linux under VM should select this
843 option.
844
845 config CMM_IUCV
846 def_bool y
847 prompt "IUCV special message interface to cooperative memory management"
848 depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
849 help
850 Select this option to enable the special message interface to
851 the cooperative memory management.
852
853 config APPLDATA_BASE
854 def_bool n
855 prompt "Linux - VM Monitor Stream, base infrastructure"
856 depends on PROC_FS
857 help
858 This provides a kernel interface for creating and updating z/VM APPLDATA
859 monitor records. The monitor records are updated at certain time
860 intervals, once the timer is started.
861 Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
862 i.e. enables or disables monitoring on the Linux side.
863 A custom interval value (in seconds) can be written to
864 /proc/appldata/interval.
865
866 Defaults are 60 seconds interval and timer off.
867 The /proc entries can also be read from, showing the current settings.
868
869 config APPLDATA_MEM
870 def_tristate m
871 prompt "Monitor memory management statistics"
872 depends on APPLDATA_BASE && VM_EVENT_COUNTERS
873 help
874 This provides memory management related data to the Linux - VM Monitor
875 Stream, like paging/swapping rate, memory utilisation, etc.
876 Writing 1 or 0 to /proc/appldata/memory 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 The /proc entry can also be read from, showing the current settings.
882
883 This can also be compiled as a module, which will be called
884 appldata_mem.o.
885
886 config APPLDATA_OS
887 def_tristate m
888 prompt "Monitor OS statistics"
889 depends on APPLDATA_BASE
890 help
891 This provides OS related data to the Linux - VM Monitor Stream, like
892 CPU utilisation, etc.
893 Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
894 APPLDATA monitor record, i.e. enables or disables monitoring this record
895 on the z/VM side.
896
897 Default is disabled.
898 This can also be compiled as a module, which will be called
899 appldata_os.o.
900
901 config APPLDATA_NET_SUM
902 def_tristate m
903 prompt "Monitor overall network statistics"
904 depends on APPLDATA_BASE && NET
905 help
906 This provides network related data to the Linux - VM Monitor Stream,
907 currently there is only a total sum of network I/O statistics, no
908 per-interface data.
909 Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
910 APPLDATA monitor record, i.e. enables or disables monitoring this record
911 on the z/VM side.
912
913 Default is disabled.
914 This can also be compiled as a module, which will be called
915 appldata_net_sum.o.
916
917 config S390_HYPFS_FS
918 def_bool y
919 prompt "s390 hypervisor file system support"
920 select SYS_HYPERVISOR
921 help
922 This is a virtual file system intended to provide accounting
923 information in an s390 hypervisor environment.
924
925 source "arch/s390/kvm/Kconfig"
926
927 config S390_GUEST
928 def_bool y
929 prompt "s390 support for virtio devices"
930 select TTY
931 select VIRTUALIZATION
932 select VIRTIO
933 help
934 Enabling this option adds support for virtio based paravirtual device
935 drivers on s390.
936
937 Select this option if you want to run the kernel as a guest under
938 the KVM hypervisor.
939
940 endmenu
941
942 menu "Selftests"
943
944 config S390_UNWIND_SELFTEST
945 def_tristate n
946 prompt "Test unwind functions"
947 help
948 This option enables s390 specific stack unwinder testing kernel
949 module. This option is not useful for distributions or general
950 kernels, but only for kernel developers working on architecture code.
951
952 Say N if you are unsure.
953
954 endmenu