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