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