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