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