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