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