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