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