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