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