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_RANDOMIZE_KSTACK_OFFSET 142 select HAVE_ARCH_SECCOMP_FILTER 143 select HAVE_ARCH_SOFT_DIRTY 144 select HAVE_ARCH_TRACEHOOK 145 select HAVE_ARCH_TRANSPARENT_HUGEPAGE 146 select HAVE_ARCH_VMAP_STACK 147 select HAVE_ASM_MODVERSIONS 148 select HAVE_CMPXCHG_DOUBLE 149 select HAVE_CMPXCHG_LOCAL 150 select HAVE_DEBUG_KMEMLEAK 151 select HAVE_DMA_CONTIGUOUS 152 select HAVE_DYNAMIC_FTRACE 153 select HAVE_DYNAMIC_FTRACE_WITH_REGS 154 select HAVE_EBPF_JIT if PACK_STACK && HAVE_MARCH_Z196_FEATURES 155 select HAVE_EFFICIENT_UNALIGNED_ACCESS 156 select HAVE_FAST_GUP 157 select HAVE_FENTRY 158 select HAVE_FTRACE_MCOUNT_RECORD 159 select HAVE_FUNCTION_ERROR_INJECTION 160 select HAVE_FUNCTION_GRAPH_TRACER 161 select HAVE_FUNCTION_TRACER 162 select HAVE_FUTEX_CMPXCHG if FUTEX 163 select HAVE_GCC_PLUGINS 164 select HAVE_GENERIC_VDSO 165 select HAVE_IRQ_EXIT_ON_IRQ_STACK 166 select HAVE_KERNEL_BZIP2 167 select HAVE_KERNEL_GZIP 168 select HAVE_KERNEL_LZ4 169 select HAVE_KERNEL_LZMA 170 select HAVE_KERNEL_LZO 171 select HAVE_KERNEL_UNCOMPRESSED 172 select HAVE_KERNEL_XZ 173 select HAVE_KPROBES 174 select HAVE_KPROBES_ON_FTRACE 175 select HAVE_KRETPROBES 176 select HAVE_KVM 177 select HAVE_LIVEPATCH 178 select HAVE_MEMBLOCK_PHYS_MAP 179 select HAVE_MOD_ARCH_SPECIFIC 180 select HAVE_NMI 181 select HAVE_NOP_MCOUNT 182 select HAVE_PCI 183 select HAVE_PERF_EVENTS 184 select HAVE_PERF_REGS 185 select HAVE_PERF_USER_STACK_DUMP 186 select HAVE_REGS_AND_STACK_ACCESS_API 187 select HAVE_RELIABLE_STACKTRACE 188 select HAVE_RSEQ 189 select HAVE_SOFTIRQ_ON_OWN_STACK 190 select HAVE_SYSCALL_TRACEPOINTS 191 select HAVE_VIRT_CPU_ACCOUNTING 192 select HAVE_VIRT_CPU_ACCOUNTING_IDLE 193 select IOMMU_HELPER if PCI 194 select IOMMU_SUPPORT if PCI 195 select MMU_GATHER_NO_GATHER 196 select MMU_GATHER_RCU_TABLE_FREE 197 select MODULES_USE_ELF_RELA 198 select NEED_DMA_MAP_STATE if PCI 199 select NEED_SG_DMA_LENGTH if PCI 200 select OLD_SIGACTION 201 select OLD_SIGSUSPEND3 202 select PCI_DOMAINS if PCI 203 select PCI_MSI if PCI 204 select PCI_MSI_ARCH_FALLBACKS if PCI_MSI 205 select SPARSE_IRQ 206 select SWIOTLB 207 select SYSCTL_EXCEPTION_TRACE 208 select THREAD_INFO_IN_TASK 209 select TTY 210 select VIRT_CPU_ACCOUNTING 211 select ZONE_DMA 212 # Note: keep the above list sorted alphabetically 213 214config SCHED_OMIT_FRAME_POINTER 215 def_bool y 216 217config PGTABLE_LEVELS 218 int 219 default 5 220 221source "kernel/livepatch/Kconfig" 222 223menu "Processor type and features" 224 225config HAVE_MARCH_Z900_FEATURES 226 def_bool n 227 228config HAVE_MARCH_Z990_FEATURES 229 def_bool n 230 select HAVE_MARCH_Z900_FEATURES 231 232config HAVE_MARCH_Z9_109_FEATURES 233 def_bool n 234 select HAVE_MARCH_Z990_FEATURES 235 236config HAVE_MARCH_Z10_FEATURES 237 def_bool n 238 select HAVE_MARCH_Z9_109_FEATURES 239 240config HAVE_MARCH_Z196_FEATURES 241 def_bool n 242 select HAVE_MARCH_Z10_FEATURES 243 244config HAVE_MARCH_ZEC12_FEATURES 245 def_bool n 246 select HAVE_MARCH_Z196_FEATURES 247 248config HAVE_MARCH_Z13_FEATURES 249 def_bool n 250 select HAVE_MARCH_ZEC12_FEATURES 251 252config HAVE_MARCH_Z14_FEATURES 253 def_bool n 254 select HAVE_MARCH_Z13_FEATURES 255 256config HAVE_MARCH_Z15_FEATURES 257 def_bool n 258 select HAVE_MARCH_Z14_FEATURES 259 260choice 261 prompt "Processor type" 262 default MARCH_Z196 263 264config MARCH_Z900 265 bool "IBM zSeries model z800 and z900" 266 select HAVE_MARCH_Z900_FEATURES 267 depends on $(cc-option,-march=z900) 268 help 269 Select this to enable optimizations for model z800/z900 (2064 and 270 2066 series). This will enable some optimizations that are not 271 available on older ESA/390 (31 Bit) only CPUs. 272 273config MARCH_Z990 274 bool "IBM zSeries model z890 and z990" 275 select HAVE_MARCH_Z990_FEATURES 276 depends on $(cc-option,-march=z990) 277 help 278 Select this to enable optimizations for model z890/z990 (2084 and 279 2086 series). The kernel will be slightly faster but will not work 280 on older machines. 281 282config MARCH_Z9_109 283 bool "IBM System z9" 284 select HAVE_MARCH_Z9_109_FEATURES 285 depends on $(cc-option,-march=z9-109) 286 help 287 Select this to enable optimizations for IBM System z9 (2094 and 288 2096 series). The kernel will be slightly faster but will not work 289 on older machines. 290 291config MARCH_Z10 292 bool "IBM System z10" 293 select HAVE_MARCH_Z10_FEATURES 294 depends on $(cc-option,-march=z10) 295 help 296 Select this to enable optimizations for IBM System z10 (2097 and 297 2098 series). The kernel will be slightly faster but will not work 298 on older machines. 299 300config MARCH_Z196 301 bool "IBM zEnterprise 114 and 196" 302 select HAVE_MARCH_Z196_FEATURES 303 depends on $(cc-option,-march=z196) 304 help 305 Select this to enable optimizations for IBM zEnterprise 114 and 196 306 (2818 and 2817 series). The kernel will be slightly faster but will 307 not work on older machines. 308 309config MARCH_ZEC12 310 bool "IBM zBC12 and zEC12" 311 select HAVE_MARCH_ZEC12_FEATURES 312 depends on $(cc-option,-march=zEC12) 313 help 314 Select this to enable optimizations for IBM zBC12 and zEC12 (2828 and 315 2827 series). The kernel will be slightly faster but will not work on 316 older machines. 317 318config MARCH_Z13 319 bool "IBM z13s and z13" 320 select HAVE_MARCH_Z13_FEATURES 321 depends on $(cc-option,-march=z13) 322 help 323 Select this to enable optimizations for IBM z13s and z13 (2965 and 324 2964 series). The kernel will be slightly faster but will not work on 325 older machines. 326 327config MARCH_Z14 328 bool "IBM z14 ZR1 and z14" 329 select HAVE_MARCH_Z14_FEATURES 330 depends on $(cc-option,-march=z14) 331 help 332 Select this to enable optimizations for IBM z14 ZR1 and z14 (3907 333 and 3906 series). The kernel will be slightly faster but will not 334 work on older machines. 335 336config MARCH_Z15 337 bool "IBM z15" 338 select HAVE_MARCH_Z15_FEATURES 339 depends on $(cc-option,-march=z15) 340 help 341 Select this to enable optimizations for IBM z15 (8562 342 and 8561 series). The kernel will be slightly faster but will not 343 work on older machines. 344 345endchoice 346 347config MARCH_Z900_TUNE 348 def_bool TUNE_Z900 || MARCH_Z900 && TUNE_DEFAULT 349 350config MARCH_Z990_TUNE 351 def_bool TUNE_Z990 || MARCH_Z990 && TUNE_DEFAULT 352 353config MARCH_Z9_109_TUNE 354 def_bool TUNE_Z9_109 || MARCH_Z9_109 && TUNE_DEFAULT 355 356config MARCH_Z10_TUNE 357 def_bool TUNE_Z10 || MARCH_Z10 && TUNE_DEFAULT 358 359config MARCH_Z196_TUNE 360 def_bool TUNE_Z196 || MARCH_Z196 && TUNE_DEFAULT 361 362config MARCH_ZEC12_TUNE 363 def_bool TUNE_ZEC12 || MARCH_ZEC12 && TUNE_DEFAULT 364 365config MARCH_Z13_TUNE 366 def_bool TUNE_Z13 || MARCH_Z13 && TUNE_DEFAULT 367 368config MARCH_Z14_TUNE 369 def_bool TUNE_Z14 || MARCH_Z14 && TUNE_DEFAULT 370 371config MARCH_Z15_TUNE 372 def_bool TUNE_Z15 || MARCH_Z15 && TUNE_DEFAULT 373 374choice 375 prompt "Tune code generation" 376 default TUNE_DEFAULT 377 help 378 Cause the compiler to tune (-mtune) the generated code for a machine. 379 This will make the code run faster on the selected machine but 380 somewhat slower on other machines. 381 This option only changes how the compiler emits instructions, not the 382 selection of instructions itself, so the resulting kernel will run on 383 all other machines. 384 385config TUNE_DEFAULT 386 bool "Default" 387 help 388 Tune the generated code for the target processor for which the kernel 389 will be compiled. 390 391config TUNE_Z900 392 bool "IBM zSeries model z800 and z900" 393 depends on $(cc-option,-mtune=z900) 394 395config TUNE_Z990 396 bool "IBM zSeries model z890 and z990" 397 depends on $(cc-option,-mtune=z990) 398 399config TUNE_Z9_109 400 bool "IBM System z9" 401 depends on $(cc-option,-mtune=z9-109) 402 403config TUNE_Z10 404 bool "IBM System z10" 405 depends on $(cc-option,-mtune=z10) 406 407config TUNE_Z196 408 bool "IBM zEnterprise 114 and 196" 409 depends on $(cc-option,-mtune=z196) 410 411config TUNE_ZEC12 412 bool "IBM zBC12 and zEC12" 413 depends on $(cc-option,-mtune=zEC12) 414 415config TUNE_Z13 416 bool "IBM z13s and z13" 417 depends on $(cc-option,-mtune=z13) 418 419config TUNE_Z14 420 bool "IBM z14 ZR1 and z14" 421 depends on $(cc-option,-mtune=z14) 422 423config TUNE_Z15 424 bool "IBM z15" 425 depends on $(cc-option,-mtune=z15) 426 427endchoice 428 429config 64BIT 430 def_bool y 431 432config COMPAT 433 def_bool y 434 prompt "Kernel support for 31 bit emulation" 435 select ARCH_WANT_OLD_COMPAT_IPC 436 select COMPAT_OLD_SIGACTION 437 select HAVE_UID16 438 depends on MULTIUSER 439 help 440 Select this option if you want to enable your system kernel to 441 handle system-calls from ELF binaries for 31 bit ESA. This option 442 (and some other stuff like libraries and such) is needed for 443 executing 31 bit applications. It is safe to say "Y". 444 445config SYSVIPC_COMPAT 446 def_bool y if COMPAT && SYSVIPC 447 448config SMP 449 def_bool y 450 451config NR_CPUS 452 int "Maximum number of CPUs (2-512)" 453 range 2 512 454 default "64" 455 help 456 This allows you to specify the maximum number of CPUs which this 457 kernel will support. The maximum supported value is 512 and the 458 minimum value which makes sense is 2. 459 460 This is purely to save memory - each supported CPU adds 461 approximately sixteen kilobytes to the kernel image. 462 463config HOTPLUG_CPU 464 def_bool y 465 466config NUMA 467 bool "NUMA support" 468 depends on SCHED_TOPOLOGY 469 default n 470 help 471 Enable NUMA support 472 473 This option adds NUMA support to the kernel. 474 475config NODES_SHIFT 476 int 477 depends on NUMA 478 default "1" 479 480config SCHED_SMT 481 def_bool n 482 483config SCHED_MC 484 def_bool n 485 486config SCHED_BOOK 487 def_bool n 488 489config SCHED_DRAWER 490 def_bool n 491 492config SCHED_TOPOLOGY 493 def_bool y 494 prompt "Topology scheduler support" 495 select SCHED_SMT 496 select SCHED_MC 497 select SCHED_BOOK 498 select SCHED_DRAWER 499 help 500 Topology scheduler support improves the CPU scheduler's decision 501 making when dealing with machines that have multi-threading, 502 multiple cores or multiple books. 503 504source "kernel/Kconfig.hz" 505 506config KEXEC 507 def_bool y 508 select KEXEC_CORE 509 510config KEXEC_FILE 511 bool "kexec file based system call" 512 select KEXEC_CORE 513 select BUILD_BIN2C 514 depends on CRYPTO 515 depends on CRYPTO_SHA256 516 depends on CRYPTO_SHA256_S390 517 help 518 Enable the kexec file based system call. In contrast to the normal 519 kexec system call this system call takes file descriptors for the 520 kernel and initramfs as arguments. 521 522config ARCH_HAS_KEXEC_PURGATORY 523 def_bool y 524 depends on KEXEC_FILE 525 526config KEXEC_SIG 527 bool "Verify kernel signature during kexec_file_load() syscall" 528 depends on KEXEC_FILE && MODULE_SIG_FORMAT 529 help 530 This option makes kernel signature verification mandatory for 531 the kexec_file_load() syscall. 532 533 In addition to that option, you need to enable signature 534 verification for the corresponding kernel image type being 535 loaded in order for this to work. 536 537config ARCH_RANDOM 538 def_bool y 539 prompt "s390 architectural random number generation API" 540 help 541 Enable the s390 architectural random number generation API 542 to provide random data for all consumers within the Linux 543 kernel. 544 545 When enabled the arch_random_* functions declared in linux/random.h 546 are implemented. The implementation is based on the s390 CPACF 547 instruction subfunction TRNG which provides a real true random 548 number generator. 549 550 If unsure, say Y. 551 552config KERNEL_NOBP 553 def_bool n 554 prompt "Enable modified branch prediction for the kernel by default" 555 help 556 If this option is selected the kernel will switch to a modified 557 branch prediction mode if the firmware interface is available. 558 The modified branch prediction mode improves the behaviour in 559 regard to speculative execution. 560 561 With the option enabled the kernel parameter "nobp=0" or "nospec" 562 can be used to run the kernel in the normal branch prediction mode. 563 564 With the option disabled the modified branch prediction mode is 565 enabled with the "nobp=1" kernel parameter. 566 567 If unsure, say N. 568 569config EXPOLINE 570 def_bool n 571 prompt "Avoid speculative indirect branches in the kernel" 572 help 573 Compile the kernel with the expoline compiler options to guard 574 against kernel-to-user data leaks by avoiding speculative indirect 575 branches. 576 Requires a compiler with -mindirect-branch=thunk support for full 577 protection. The kernel may run slower. 578 579 If unsure, say N. 580 581choice 582 prompt "Expoline default" 583 depends on EXPOLINE 584 default EXPOLINE_FULL 585 586config EXPOLINE_OFF 587 bool "spectre_v2=off" 588 589config EXPOLINE_AUTO 590 bool "spectre_v2=auto" 591 592config EXPOLINE_FULL 593 bool "spectre_v2=on" 594 595endchoice 596 597config RELOCATABLE 598 bool "Build a relocatable kernel" 599 select MODULE_REL_CRCS if MODVERSIONS 600 default y 601 help 602 This builds a kernel image that retains relocation information 603 so it can be loaded at an arbitrary address. 604 The kernel is linked as a position-independent executable (PIE) 605 and contains dynamic relocations which are processed early in the 606 bootup process. 607 The relocations make the kernel image about 15% larger (compressed 608 10%), but are discarded at runtime. 609 610config RANDOMIZE_BASE 611 bool "Randomize the address of the kernel image (KASLR)" 612 depends on RELOCATABLE 613 default y 614 help 615 In support of Kernel Address Space Layout Randomization (KASLR), 616 this randomizes the address at which the kernel image is loaded, 617 as a security feature that deters exploit attempts relying on 618 knowledge of the location of kernel internals. 619 620endmenu 621 622menu "Memory setup" 623 624config ARCH_SPARSEMEM_ENABLE 625 def_bool y 626 select SPARSEMEM_VMEMMAP_ENABLE 627 select SPARSEMEM_VMEMMAP 628 629config ARCH_SPARSEMEM_DEFAULT 630 def_bool y 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 "512" 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 depends on ZCRYPT 772 help 773 This driver grants access to Adjunct Processor (AP) devices 774 via the VFIO mediated device interface. 775 776 To compile this driver as a module, choose M here: the module 777 will be called vfio_ap. 778 779endmenu 780 781menu "Dump support" 782 783config CRASH_DUMP 784 bool "kernel crash dumps" 785 select KEXEC 786 help 787 Generate crash dump after being started by kexec. 788 Crash dump kernels are loaded in the main kernel with kexec-tools 789 into a specially reserved region and then later executed after 790 a crash by kdump/kexec. 791 Refer to <file:Documentation/s390/zfcpdump.rst> for more details on this. 792 This option also enables s390 zfcpdump. 793 See also <file:Documentation/s390/zfcpdump.rst> 794 795endmenu 796 797config CCW 798 def_bool y 799 800config HAVE_PNETID 801 tristate 802 default (SMC || CCWGROUP) 803 804menu "Virtualization" 805 806config PROTECTED_VIRTUALIZATION_GUEST 807 def_bool n 808 prompt "Protected virtualization guest support" 809 select ARCH_HAS_RESTRICTED_VIRTIO_MEMORY_ACCESS 810 help 811 Select this option, if you want to be able to run this 812 kernel as a protected virtualization KVM guest. 813 Protected virtualization capable machines have a mini hypervisor 814 located at machine level (an ultravisor). With help of the 815 Ultravisor, KVM will be able to run "protected" VMs, special 816 VMs whose memory and management data are unavailable to KVM. 817 818config PFAULT 819 def_bool y 820 prompt "Pseudo page fault support" 821 help 822 Select this option, if you want to use PFAULT pseudo page fault 823 handling under VM. If running native or in LPAR, this option 824 has no effect. If your VM does not support PFAULT, PAGEEX 825 pseudo page fault handling will be used. 826 Note that VM 4.2 supports PFAULT but has a bug in its 827 implementation that causes some problems. 828 Everybody who wants to run Linux under VM != VM4.2 should select 829 this option. 830 831config CMM 832 def_tristate n 833 prompt "Cooperative memory management" 834 help 835 Select this option, if you want to enable the kernel interface 836 to reduce the memory size of the system. This is accomplished 837 by allocating pages of memory and put them "on hold". This only 838 makes sense for a system running under VM where the unused pages 839 will be reused by VM for other guest systems. The interface 840 allows an external monitor to balance memory of many systems. 841 Everybody who wants to run Linux under VM should select this 842 option. 843 844config CMM_IUCV 845 def_bool y 846 prompt "IUCV special message interface to cooperative memory management" 847 depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV) 848 help 849 Select this option to enable the special message interface to 850 the cooperative memory management. 851 852config APPLDATA_BASE 853 def_bool n 854 prompt "Linux - VM Monitor Stream, base infrastructure" 855 depends on PROC_FS 856 help 857 This provides a kernel interface for creating and updating z/VM APPLDATA 858 monitor records. The monitor records are updated at certain time 859 intervals, once the timer is started. 860 Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer, 861 i.e. enables or disables monitoring on the Linux side. 862 A custom interval value (in seconds) can be written to 863 /proc/appldata/interval. 864 865 Defaults are 60 seconds interval and timer off. 866 The /proc entries can also be read from, showing the current settings. 867 868config APPLDATA_MEM 869 def_tristate m 870 prompt "Monitor memory management statistics" 871 depends on APPLDATA_BASE && VM_EVENT_COUNTERS 872 help 873 This provides memory management related data to the Linux - VM Monitor 874 Stream, like paging/swapping rate, memory utilisation, etc. 875 Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM 876 APPLDATA monitor record, i.e. enables or disables monitoring this record 877 on the z/VM side. 878 879 Default is disabled. 880 The /proc entry can also be read from, showing the current settings. 881 882 This can also be compiled as a module, which will be called 883 appldata_mem.o. 884 885config APPLDATA_OS 886 def_tristate m 887 prompt "Monitor OS statistics" 888 depends on APPLDATA_BASE 889 help 890 This provides OS related data to the Linux - VM Monitor Stream, like 891 CPU utilisation, etc. 892 Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM 893 APPLDATA monitor record, i.e. enables or disables monitoring this record 894 on the z/VM side. 895 896 Default is disabled. 897 This can also be compiled as a module, which will be called 898 appldata_os.o. 899 900config APPLDATA_NET_SUM 901 def_tristate m 902 prompt "Monitor overall network statistics" 903 depends on APPLDATA_BASE && NET 904 help 905 This provides network related data to the Linux - VM Monitor Stream, 906 currently there is only a total sum of network I/O statistics, no 907 per-interface data. 908 Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM 909 APPLDATA monitor record, i.e. enables or disables monitoring this record 910 on the z/VM side. 911 912 Default is disabled. 913 This can also be compiled as a module, which will be called 914 appldata_net_sum.o. 915 916config S390_HYPFS_FS 917 def_bool y 918 prompt "s390 hypervisor file system support" 919 select SYS_HYPERVISOR 920 help 921 This is a virtual file system intended to provide accounting 922 information in an s390 hypervisor environment. 923 924source "arch/s390/kvm/Kconfig" 925 926config S390_GUEST 927 def_bool y 928 prompt "s390 support for virtio devices" 929 select TTY 930 select VIRTUALIZATION 931 select VIRTIO 932 help 933 Enabling this option adds support for virtio based paravirtual device 934 drivers on s390. 935 936 Select this option if you want to run the kernel as a guest under 937 the KVM hypervisor. 938 939endmenu 940 941menu "Selftests" 942 943config S390_UNWIND_SELFTEST 944 def_tristate n 945 prompt "Test unwind functions" 946 help 947 This option enables s390 specific stack unwinder testing kernel 948 module. This option is not useful for distributions or general 949 kernels, but only for kernel developers working on architecture code. 950 951 Say N if you are unsure. 952 953endmenu 954