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 0x18000000000000 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_NUMA_BALANCING 114 select ARCH_USE_BUILTIN_BSWAP 115 select ARCH_USE_CMPXCHG_LOCKREF 116 select ARCH_WANTS_DYNAMIC_TASK_STRUCT 117 select ARCH_WANTS_NO_INSTR 118 select ARCH_WANT_DEFAULT_BPF_JIT 119 select ARCH_WANT_IPC_PARSE_VERSION 120 select BUILDTIME_TABLE_SORT 121 select CLONE_BACKWARDS2 122 select CPU_NO_EFFICIENT_FFS if !HAVE_MARCH_Z9_109_FEATURES 123 select DMA_OPS if PCI 124 select DYNAMIC_FTRACE if FUNCTION_TRACER 125 select GENERIC_ALLOCATOR 126 select GENERIC_CPU_AUTOPROBE 127 select GENERIC_CPU_VULNERABILITIES 128 select GENERIC_ENTRY 129 select GENERIC_FIND_FIRST_BIT 130 select GENERIC_GETTIMEOFDAY 131 select GENERIC_PTDUMP 132 select GENERIC_SMP_IDLE_THREAD 133 select GENERIC_TIME_VSYSCALL 134 select GENERIC_VDSO_TIME_NS 135 select HAVE_ALIGNED_STRUCT_PAGE if SLUB 136 select HAVE_ARCH_AUDITSYSCALL 137 select HAVE_ARCH_JUMP_LABEL 138 select HAVE_ARCH_JUMP_LABEL_RELATIVE 139 select HAVE_ARCH_KASAN 140 select HAVE_ARCH_KASAN_VMALLOC 141 select HAVE_ARCH_KCSAN 142 select HAVE_ARCH_KFENCE 143 select HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET 144 select HAVE_ARCH_SECCOMP_FILTER 145 select HAVE_ARCH_SOFT_DIRTY 146 select HAVE_ARCH_TRACEHOOK 147 select HAVE_ARCH_TRANSPARENT_HUGEPAGE 148 select HAVE_ARCH_VMAP_STACK 149 select HAVE_ASM_MODVERSIONS 150 select HAVE_CMPXCHG_DOUBLE 151 select HAVE_CMPXCHG_LOCAL 152 select HAVE_DEBUG_KMEMLEAK 153 select HAVE_DMA_CONTIGUOUS 154 select HAVE_DYNAMIC_FTRACE 155 select HAVE_DYNAMIC_FTRACE_WITH_REGS 156 select HAVE_EBPF_JIT if PACK_STACK && HAVE_MARCH_Z196_FEATURES 157 select HAVE_EFFICIENT_UNALIGNED_ACCESS 158 select HAVE_FAST_GUP 159 select HAVE_FENTRY 160 select HAVE_FTRACE_MCOUNT_RECORD 161 select HAVE_FUNCTION_ERROR_INJECTION 162 select HAVE_FUNCTION_GRAPH_TRACER 163 select HAVE_FUNCTION_TRACER 164 select HAVE_FUTEX_CMPXCHG if FUTEX 165 select HAVE_GCC_PLUGINS 166 select HAVE_GENERIC_VDSO 167 select HAVE_IOREMAP_PROT if PCI 168 select HAVE_KERNEL_BZIP2 169 select HAVE_KERNEL_GZIP 170 select HAVE_KERNEL_LZ4 171 select HAVE_KERNEL_LZMA 172 select HAVE_KERNEL_LZO 173 select HAVE_KERNEL_UNCOMPRESSED 174 select HAVE_KERNEL_XZ 175 select HAVE_KERNEL_ZSTD 176 select HAVE_KPROBES 177 select HAVE_KPROBES_ON_FTRACE 178 select HAVE_KRETPROBES 179 select HAVE_KVM 180 select HAVE_LIVEPATCH 181 select HAVE_MEMBLOCK_PHYS_MAP 182 select HAVE_MOD_ARCH_SPECIFIC 183 select HAVE_NMI 184 select HAVE_NOP_MCOUNT 185 select HAVE_PCI 186 select HAVE_PERF_EVENTS 187 select HAVE_PERF_REGS 188 select HAVE_PERF_USER_STACK_DUMP 189 select HAVE_REGS_AND_STACK_ACCESS_API 190 select HAVE_RELIABLE_STACKTRACE 191 select HAVE_RSEQ 192 select HAVE_SOFTIRQ_ON_OWN_STACK 193 select HAVE_SYSCALL_TRACEPOINTS 194 select HAVE_VIRT_CPU_ACCOUNTING 195 select HAVE_VIRT_CPU_ACCOUNTING_IDLE 196 select IOMMU_HELPER if PCI 197 select IOMMU_SUPPORT if PCI 198 select MMU_GATHER_NO_GATHER 199 select MMU_GATHER_RCU_TABLE_FREE 200 select MODULES_USE_ELF_RELA 201 select NEED_DMA_MAP_STATE if PCI 202 select NEED_SG_DMA_LENGTH if PCI 203 select OLD_SIGACTION 204 select OLD_SIGSUSPEND3 205 select PCI_DOMAINS if PCI 206 select PCI_MSI if PCI 207 select PCI_MSI_ARCH_FALLBACKS if PCI_MSI 208 select SPARSE_IRQ 209 select SWIOTLB 210 select SYSCTL_EXCEPTION_TRACE 211 select THREAD_INFO_IN_TASK 212 select TTY 213 select VIRT_CPU_ACCOUNTING 214 select ZONE_DMA 215 # Note: keep the above list sorted alphabetically 216 217config SCHED_OMIT_FRAME_POINTER 218 def_bool y 219 220config PGTABLE_LEVELS 221 int 222 default 5 223 224source "kernel/livepatch/Kconfig" 225 226menu "Processor type and features" 227 228config HAVE_MARCH_Z900_FEATURES 229 def_bool n 230 231config HAVE_MARCH_Z990_FEATURES 232 def_bool n 233 select HAVE_MARCH_Z900_FEATURES 234 235config HAVE_MARCH_Z9_109_FEATURES 236 def_bool n 237 select HAVE_MARCH_Z990_FEATURES 238 239config HAVE_MARCH_Z10_FEATURES 240 def_bool n 241 select HAVE_MARCH_Z9_109_FEATURES 242 243config HAVE_MARCH_Z196_FEATURES 244 def_bool n 245 select HAVE_MARCH_Z10_FEATURES 246 247config HAVE_MARCH_ZEC12_FEATURES 248 def_bool n 249 select HAVE_MARCH_Z196_FEATURES 250 251config HAVE_MARCH_Z13_FEATURES 252 def_bool n 253 select HAVE_MARCH_ZEC12_FEATURES 254 255config HAVE_MARCH_Z14_FEATURES 256 def_bool n 257 select HAVE_MARCH_Z13_FEATURES 258 259config HAVE_MARCH_Z15_FEATURES 260 def_bool n 261 select HAVE_MARCH_Z14_FEATURES 262 263choice 264 prompt "Processor type" 265 default MARCH_Z196 266 267config MARCH_Z900 268 bool "IBM zSeries model z800 and z900" 269 select HAVE_MARCH_Z900_FEATURES 270 depends on $(cc-option,-march=z900) 271 help 272 Select this to enable optimizations for model z800/z900 (2064 and 273 2066 series). This will enable some optimizations that are not 274 available on older ESA/390 (31 Bit) only CPUs. 275 276config MARCH_Z990 277 bool "IBM zSeries model z890 and z990" 278 select HAVE_MARCH_Z990_FEATURES 279 depends on $(cc-option,-march=z990) 280 help 281 Select this to enable optimizations for model z890/z990 (2084 and 282 2086 series). The kernel will be slightly faster but will not work 283 on older machines. 284 285config MARCH_Z9_109 286 bool "IBM System z9" 287 select HAVE_MARCH_Z9_109_FEATURES 288 depends on $(cc-option,-march=z9-109) 289 help 290 Select this to enable optimizations for IBM System z9 (2094 and 291 2096 series). The kernel will be slightly faster but will not work 292 on older machines. 293 294config MARCH_Z10 295 bool "IBM System z10" 296 select HAVE_MARCH_Z10_FEATURES 297 depends on $(cc-option,-march=z10) 298 help 299 Select this to enable optimizations for IBM System z10 (2097 and 300 2098 series). The kernel will be slightly faster but will not work 301 on older machines. 302 303config MARCH_Z196 304 bool "IBM zEnterprise 114 and 196" 305 select HAVE_MARCH_Z196_FEATURES 306 depends on $(cc-option,-march=z196) 307 help 308 Select this to enable optimizations for IBM zEnterprise 114 and 196 309 (2818 and 2817 series). The kernel will be slightly faster but will 310 not work on older machines. 311 312config MARCH_ZEC12 313 bool "IBM zBC12 and zEC12" 314 select HAVE_MARCH_ZEC12_FEATURES 315 depends on $(cc-option,-march=zEC12) 316 help 317 Select this to enable optimizations for IBM zBC12 and zEC12 (2828 and 318 2827 series). The kernel will be slightly faster but will not work on 319 older machines. 320 321config MARCH_Z13 322 bool "IBM z13s and z13" 323 select HAVE_MARCH_Z13_FEATURES 324 depends on $(cc-option,-march=z13) 325 help 326 Select this to enable optimizations for IBM z13s and z13 (2965 and 327 2964 series). The kernel will be slightly faster but will not work on 328 older machines. 329 330config MARCH_Z14 331 bool "IBM z14 ZR1 and z14" 332 select HAVE_MARCH_Z14_FEATURES 333 depends on $(cc-option,-march=z14) 334 help 335 Select this to enable optimizations for IBM z14 ZR1 and z14 (3907 336 and 3906 series). The kernel will be slightly faster but will not 337 work on older machines. 338 339config MARCH_Z15 340 bool "IBM z15" 341 select HAVE_MARCH_Z15_FEATURES 342 depends on $(cc-option,-march=z15) 343 help 344 Select this to enable optimizations for IBM z15 (8562 345 and 8561 series). The kernel will be slightly faster but will not 346 work on older machines. 347 348endchoice 349 350config MARCH_Z900_TUNE 351 def_bool TUNE_Z900 || MARCH_Z900 && TUNE_DEFAULT 352 353config MARCH_Z990_TUNE 354 def_bool TUNE_Z990 || MARCH_Z990 && TUNE_DEFAULT 355 356config MARCH_Z9_109_TUNE 357 def_bool TUNE_Z9_109 || MARCH_Z9_109 && TUNE_DEFAULT 358 359config MARCH_Z10_TUNE 360 def_bool TUNE_Z10 || MARCH_Z10 && TUNE_DEFAULT 361 362config MARCH_Z196_TUNE 363 def_bool TUNE_Z196 || MARCH_Z196 && TUNE_DEFAULT 364 365config MARCH_ZEC12_TUNE 366 def_bool TUNE_ZEC12 || MARCH_ZEC12 && TUNE_DEFAULT 367 368config MARCH_Z13_TUNE 369 def_bool TUNE_Z13 || MARCH_Z13 && TUNE_DEFAULT 370 371config MARCH_Z14_TUNE 372 def_bool TUNE_Z14 || MARCH_Z14 && TUNE_DEFAULT 373 374config MARCH_Z15_TUNE 375 def_bool TUNE_Z15 || MARCH_Z15 && TUNE_DEFAULT 376 377choice 378 prompt "Tune code generation" 379 default TUNE_DEFAULT 380 help 381 Cause the compiler to tune (-mtune) the generated code for a machine. 382 This will make the code run faster on the selected machine but 383 somewhat slower on other machines. 384 This option only changes how the compiler emits instructions, not the 385 selection of instructions itself, so the resulting kernel will run on 386 all other machines. 387 388config TUNE_DEFAULT 389 bool "Default" 390 help 391 Tune the generated code for the target processor for which the kernel 392 will be compiled. 393 394config TUNE_Z900 395 bool "IBM zSeries model z800 and z900" 396 depends on $(cc-option,-mtune=z900) 397 398config TUNE_Z990 399 bool "IBM zSeries model z890 and z990" 400 depends on $(cc-option,-mtune=z990) 401 402config TUNE_Z9_109 403 bool "IBM System z9" 404 depends on $(cc-option,-mtune=z9-109) 405 406config TUNE_Z10 407 bool "IBM System z10" 408 depends on $(cc-option,-mtune=z10) 409 410config TUNE_Z196 411 bool "IBM zEnterprise 114 and 196" 412 depends on $(cc-option,-mtune=z196) 413 414config TUNE_ZEC12 415 bool "IBM zBC12 and zEC12" 416 depends on $(cc-option,-mtune=zEC12) 417 418config TUNE_Z13 419 bool "IBM z13s and z13" 420 depends on $(cc-option,-mtune=z13) 421 422config TUNE_Z14 423 bool "IBM z14 ZR1 and z14" 424 depends on $(cc-option,-mtune=z14) 425 426config TUNE_Z15 427 bool "IBM z15" 428 depends on $(cc-option,-mtune=z15) 429 430endchoice 431 432config 64BIT 433 def_bool y 434 435config COMPAT 436 def_bool y 437 prompt "Kernel support for 31 bit emulation" 438 select ARCH_WANT_OLD_COMPAT_IPC 439 select COMPAT_OLD_SIGACTION 440 select HAVE_UID16 441 depends on MULTIUSER 442 depends on !CC_IS_CLANG 443 help 444 Select this option if you want to enable your system kernel to 445 handle system-calls from ELF binaries for 31 bit ESA. This option 446 (and some other stuff like libraries and such) is needed for 447 executing 31 bit applications. It is safe to say "Y". 448 449config SYSVIPC_COMPAT 450 def_bool y if COMPAT && SYSVIPC 451 452config SMP 453 def_bool y 454 455config NR_CPUS 456 int "Maximum number of CPUs (2-512)" 457 range 2 512 458 default "64" 459 help 460 This allows you to specify the maximum number of CPUs which this 461 kernel will support. The maximum supported value is 512 and the 462 minimum value which makes sense is 2. 463 464 This is purely to save memory - each supported CPU adds 465 approximately sixteen kilobytes to the kernel image. 466 467config HOTPLUG_CPU 468 def_bool y 469 470config NUMA 471 bool "NUMA support" 472 depends on SCHED_TOPOLOGY 473 default n 474 help 475 Enable NUMA support 476 477 This option adds NUMA support to the kernel. 478 479config NODES_SHIFT 480 int 481 depends on NUMA 482 default "1" 483 484config SCHED_SMT 485 def_bool n 486 487config SCHED_MC 488 def_bool n 489 490config SCHED_BOOK 491 def_bool n 492 493config SCHED_DRAWER 494 def_bool n 495 496config SCHED_TOPOLOGY 497 def_bool y 498 prompt "Topology scheduler support" 499 select SCHED_SMT 500 select SCHED_MC 501 select SCHED_BOOK 502 select SCHED_DRAWER 503 help 504 Topology scheduler support improves the CPU scheduler's decision 505 making when dealing with machines that have multi-threading, 506 multiple cores or multiple books. 507 508source "kernel/Kconfig.hz" 509 510config KEXEC 511 def_bool y 512 select KEXEC_CORE 513 514config KEXEC_FILE 515 bool "kexec file based system call" 516 select KEXEC_CORE 517 select BUILD_BIN2C 518 depends on CRYPTO 519 depends on CRYPTO_SHA256 520 depends on CRYPTO_SHA256_S390 521 help 522 Enable the kexec file based system call. In contrast to the normal 523 kexec system call this system call takes file descriptors for the 524 kernel and initramfs as arguments. 525 526config ARCH_HAS_KEXEC_PURGATORY 527 def_bool y 528 depends on KEXEC_FILE 529 530config KEXEC_SIG 531 bool "Verify kernel signature during kexec_file_load() syscall" 532 depends on KEXEC_FILE && MODULE_SIG_FORMAT 533 help 534 This option makes kernel signature verification mandatory for 535 the kexec_file_load() syscall. 536 537 In addition to that option, you need to enable signature 538 verification for the corresponding kernel image type being 539 loaded in order for this to work. 540 541config ARCH_RANDOM 542 def_bool y 543 prompt "s390 architectural random number generation API" 544 help 545 Enable the s390 architectural random number generation API 546 to provide random data for all consumers within the Linux 547 kernel. 548 549 When enabled the arch_random_* functions declared in linux/random.h 550 are implemented. The implementation is based on the s390 CPACF 551 instruction subfunction TRNG which provides a real true random 552 number generator. 553 554 If unsure, say Y. 555 556config KERNEL_NOBP 557 def_bool n 558 prompt "Enable modified branch prediction for the kernel by default" 559 help 560 If this option is selected the kernel will switch to a modified 561 branch prediction mode if the firmware interface is available. 562 The modified branch prediction mode improves the behaviour in 563 regard to speculative execution. 564 565 With the option enabled the kernel parameter "nobp=0" or "nospec" 566 can be used to run the kernel in the normal branch prediction mode. 567 568 With the option disabled the modified branch prediction mode is 569 enabled with the "nobp=1" kernel parameter. 570 571 If unsure, say N. 572 573config EXPOLINE 574 def_bool n 575 prompt "Avoid speculative indirect branches in the kernel" 576 help 577 Compile the kernel with the expoline compiler options to guard 578 against kernel-to-user data leaks by avoiding speculative indirect 579 branches. 580 Requires a compiler with -mindirect-branch=thunk support for full 581 protection. The kernel may run slower. 582 583 If unsure, say N. 584 585choice 586 prompt "Expoline default" 587 depends on EXPOLINE 588 default EXPOLINE_FULL 589 590config EXPOLINE_OFF 591 bool "spectre_v2=off" 592 593config EXPOLINE_AUTO 594 bool "spectre_v2=auto" 595 596config EXPOLINE_FULL 597 bool "spectre_v2=on" 598 599endchoice 600 601config RELOCATABLE 602 bool "Build a relocatable kernel" 603 select MODULE_REL_CRCS if MODVERSIONS 604 default y 605 help 606 This builds a kernel image that retains relocation information 607 so it can be loaded at an arbitrary address. 608 The kernel is linked as a position-independent executable (PIE) 609 and contains dynamic relocations which are processed early in the 610 bootup process. 611 The relocations make the kernel image about 15% larger (compressed 612 10%), but are discarded at runtime. 613 614config RANDOMIZE_BASE 615 bool "Randomize the address of the kernel image (KASLR)" 616 depends on RELOCATABLE 617 default y 618 help 619 In support of Kernel Address Space Layout Randomization (KASLR), 620 this randomizes the address at which the kernel image is loaded, 621 as a security feature that deters exploit attempts relying on 622 knowledge of the location of kernel internals. 623 624endmenu 625 626menu "Memory setup" 627 628config ARCH_SPARSEMEM_ENABLE 629 def_bool y 630 select SPARSEMEM_VMEMMAP_ENABLE 631 select SPARSEMEM_VMEMMAP 632 633config ARCH_SPARSEMEM_DEFAULT 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 "512" 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 && 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_SYSCTL 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