0001 # SPDX-License-Identifier: GPL-2.0
0002 config MMU
0003 def_bool y
0004
0005 config CPU_BIG_ENDIAN
0006 def_bool y
0007
0008 config LOCKDEP_SUPPORT
0009 def_bool y
0010
0011 config STACKTRACE_SUPPORT
0012 def_bool y
0013
0014 config ARCH_HAS_ILOG2_U32
0015 def_bool n
0016
0017 config ARCH_HAS_ILOG2_U64
0018 def_bool n
0019
0020 config GENERIC_HWEIGHT
0021 def_bool y
0022
0023 config GENERIC_BUG
0024 def_bool y if BUG
0025
0026 config GENERIC_BUG_RELATIVE_POINTERS
0027 def_bool y
0028
0029 config GENERIC_LOCKBREAK
0030 def_bool y if PREEMPTION
0031
0032 config PGSTE
0033 def_bool y if KVM
0034
0035 config AUDIT_ARCH
0036 def_bool y
0037
0038 config NO_IOPORT_MAP
0039 def_bool y
0040
0041 config PCI_QUIRKS
0042 def_bool n
0043
0044 config ARCH_SUPPORTS_UPROBES
0045 def_bool y
0046
0047 config KASAN_SHADOW_OFFSET
0048 hex
0049 depends on KASAN
0050 default 0x1C000000000000
0051
0052 config S390
0053 def_bool y
0054 #
0055 # Note: keep this list sorted alphabetically
0056 #
0057 imply IMA_SECURE_AND_OR_TRUSTED_BOOT
0058 select ALTERNATE_USER_ADDRESS_SPACE
0059 select ARCH_32BIT_USTAT_F_TINODE
0060 select ARCH_BINFMT_ELF_STATE
0061 select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE
0062 select ARCH_ENABLE_MEMORY_HOTPLUG if SPARSEMEM
0063 select ARCH_ENABLE_MEMORY_HOTREMOVE
0064 select ARCH_ENABLE_SPLIT_PMD_PTLOCK if PGTABLE_LEVELS > 2
0065 select ARCH_HAS_CURRENT_STACK_POINTER
0066 select ARCH_HAS_DEBUG_VM_PGTABLE
0067 select ARCH_HAS_DEBUG_WX
0068 select ARCH_HAS_DEVMEM_IS_ALLOWED
0069 select ARCH_HAS_ELF_RANDOMIZE
0070 select ARCH_HAS_FORCE_DMA_UNENCRYPTED
0071 select ARCH_HAS_FORTIFY_SOURCE
0072 select ARCH_HAS_GCOV_PROFILE_ALL
0073 select ARCH_HAS_GIGANTIC_PAGE
0074 select ARCH_HAS_KCOV
0075 select ARCH_HAS_MEM_ENCRYPT
0076 select ARCH_HAS_PTE_SPECIAL
0077 select ARCH_HAS_SCALED_CPUTIME
0078 select ARCH_HAS_SET_MEMORY
0079 select ARCH_HAS_STRICT_KERNEL_RWX
0080 select ARCH_HAS_STRICT_MODULE_RWX
0081 select ARCH_HAS_SYSCALL_WRAPPER
0082 select ARCH_HAS_UBSAN_SANITIZE_ALL
0083 select ARCH_HAS_VDSO_DATA
0084 select ARCH_HAVE_NMI_SAFE_CMPXCHG
0085 select ARCH_INLINE_READ_LOCK
0086 select ARCH_INLINE_READ_LOCK_BH
0087 select ARCH_INLINE_READ_LOCK_IRQ
0088 select ARCH_INLINE_READ_LOCK_IRQSAVE
0089 select ARCH_INLINE_READ_TRYLOCK
0090 select ARCH_INLINE_READ_UNLOCK
0091 select ARCH_INLINE_READ_UNLOCK_BH
0092 select ARCH_INLINE_READ_UNLOCK_IRQ
0093 select ARCH_INLINE_READ_UNLOCK_IRQRESTORE
0094 select ARCH_INLINE_SPIN_LOCK
0095 select ARCH_INLINE_SPIN_LOCK_BH
0096 select ARCH_INLINE_SPIN_LOCK_IRQ
0097 select ARCH_INLINE_SPIN_LOCK_IRQSAVE
0098 select ARCH_INLINE_SPIN_TRYLOCK
0099 select ARCH_INLINE_SPIN_TRYLOCK_BH
0100 select ARCH_INLINE_SPIN_UNLOCK
0101 select ARCH_INLINE_SPIN_UNLOCK_BH
0102 select ARCH_INLINE_SPIN_UNLOCK_IRQ
0103 select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
0104 select ARCH_INLINE_WRITE_LOCK
0105 select ARCH_INLINE_WRITE_LOCK_BH
0106 select ARCH_INLINE_WRITE_LOCK_IRQ
0107 select ARCH_INLINE_WRITE_LOCK_IRQSAVE
0108 select ARCH_INLINE_WRITE_TRYLOCK
0109 select ARCH_INLINE_WRITE_UNLOCK
0110 select ARCH_INLINE_WRITE_UNLOCK_BH
0111 select ARCH_INLINE_WRITE_UNLOCK_IRQ
0112 select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
0113 select ARCH_STACKWALK
0114 select ARCH_SUPPORTS_ATOMIC_RMW
0115 select ARCH_SUPPORTS_DEBUG_PAGEALLOC
0116 select ARCH_SUPPORTS_HUGETLBFS
0117 select ARCH_SUPPORTS_NUMA_BALANCING
0118 select ARCH_USE_BUILTIN_BSWAP
0119 select ARCH_USE_CMPXCHG_LOCKREF
0120 select ARCH_WANTS_DYNAMIC_TASK_STRUCT
0121 select ARCH_WANTS_NO_INSTR
0122 select ARCH_WANT_DEFAULT_BPF_JIT
0123 select ARCH_WANT_IPC_PARSE_VERSION
0124 select BUILDTIME_TABLE_SORT
0125 select CLONE_BACKWARDS2
0126 select DMA_OPS if PCI
0127 select DYNAMIC_FTRACE if FUNCTION_TRACER
0128 select GCC12_NO_ARRAY_BOUNDS
0129 select GENERIC_ALLOCATOR
0130 select GENERIC_CPU_AUTOPROBE
0131 select GENERIC_CPU_VULNERABILITIES
0132 select GENERIC_ENTRY
0133 select GENERIC_GETTIMEOFDAY
0134 select GENERIC_PTDUMP
0135 select GENERIC_SMP_IDLE_THREAD
0136 select GENERIC_TIME_VSYSCALL
0137 select GENERIC_VDSO_TIME_NS
0138 select HAVE_ALIGNED_STRUCT_PAGE if SLUB
0139 select HAVE_ARCH_AUDITSYSCALL
0140 select HAVE_ARCH_JUMP_LABEL
0141 select HAVE_ARCH_JUMP_LABEL_RELATIVE
0142 select HAVE_ARCH_KASAN
0143 select HAVE_ARCH_KASAN_VMALLOC
0144 select HAVE_ARCH_KCSAN
0145 select HAVE_ARCH_KFENCE
0146 select HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET
0147 select HAVE_ARCH_SECCOMP_FILTER
0148 select HAVE_ARCH_SOFT_DIRTY
0149 select HAVE_ARCH_TRACEHOOK
0150 select HAVE_ARCH_TRANSPARENT_HUGEPAGE
0151 select HAVE_ARCH_VMAP_STACK
0152 select HAVE_ASM_MODVERSIONS
0153 select HAVE_CMPXCHG_DOUBLE
0154 select HAVE_CMPXCHG_LOCAL
0155 select HAVE_DEBUG_KMEMLEAK
0156 select HAVE_DMA_CONTIGUOUS
0157 select HAVE_DYNAMIC_FTRACE
0158 select HAVE_DYNAMIC_FTRACE_WITH_ARGS
0159 select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
0160 select HAVE_DYNAMIC_FTRACE_WITH_REGS
0161 select HAVE_EBPF_JIT if HAVE_MARCH_Z196_FEATURES
0162 select HAVE_EFFICIENT_UNALIGNED_ACCESS
0163 select HAVE_FAST_GUP
0164 select HAVE_FENTRY
0165 select HAVE_FTRACE_MCOUNT_RECORD
0166 select HAVE_FUNCTION_ARG_ACCESS_API
0167 select HAVE_FUNCTION_ERROR_INJECTION
0168 select HAVE_FUNCTION_GRAPH_TRACER
0169 select HAVE_FUNCTION_TRACER
0170 select HAVE_GCC_PLUGINS
0171 select HAVE_GENERIC_VDSO
0172 select HAVE_IOREMAP_PROT if PCI
0173 select HAVE_KERNEL_BZIP2
0174 select HAVE_KERNEL_GZIP
0175 select HAVE_KERNEL_LZ4
0176 select HAVE_KERNEL_LZMA
0177 select HAVE_KERNEL_LZO
0178 select HAVE_KERNEL_UNCOMPRESSED
0179 select HAVE_KERNEL_XZ
0180 select HAVE_KERNEL_ZSTD
0181 select HAVE_KPROBES
0182 select HAVE_KPROBES_ON_FTRACE
0183 select HAVE_KRETPROBES
0184 select HAVE_KVM
0185 select HAVE_LIVEPATCH
0186 select HAVE_MEMBLOCK_PHYS_MAP
0187 select HAVE_MOD_ARCH_SPECIFIC
0188 select HAVE_NMI
0189 select HAVE_NOP_MCOUNT
0190 select HAVE_PCI
0191 select HAVE_PERF_EVENTS
0192 select HAVE_PERF_REGS
0193 select HAVE_PERF_USER_STACK_DUMP
0194 select HAVE_REGS_AND_STACK_ACCESS_API
0195 select HAVE_RELIABLE_STACKTRACE
0196 select HAVE_RSEQ
0197 select HAVE_SAMPLE_FTRACE_DIRECT
0198 select HAVE_SAMPLE_FTRACE_DIRECT_MULTI
0199 select HAVE_SOFTIRQ_ON_OWN_STACK
0200 select HAVE_SYSCALL_TRACEPOINTS
0201 select HAVE_VIRT_CPU_ACCOUNTING
0202 select HAVE_VIRT_CPU_ACCOUNTING_IDLE
0203 select IOMMU_HELPER if PCI
0204 select IOMMU_SUPPORT if PCI
0205 select MMU_GATHER_NO_GATHER
0206 select MMU_GATHER_RCU_TABLE_FREE
0207 select MMU_GATHER_MERGE_VMAS
0208 select MODULES_USE_ELF_RELA
0209 select NEED_DMA_MAP_STATE if PCI
0210 select NEED_SG_DMA_LENGTH if PCI
0211 select OLD_SIGACTION
0212 select OLD_SIGSUSPEND3
0213 select PCI_DOMAINS if PCI
0214 select PCI_MSI if PCI
0215 select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
0216 select SPARSE_IRQ
0217 select SWIOTLB
0218 select SYSCTL_EXCEPTION_TRACE
0219 select THREAD_INFO_IN_TASK
0220 select TRACE_IRQFLAGS_SUPPORT
0221 select TTY
0222 select VIRT_CPU_ACCOUNTING
0223 select ZONE_DMA
0224 # Note: keep the above list sorted alphabetically
0225
0226 config SCHED_OMIT_FRAME_POINTER
0227 def_bool y
0228
0229 config PGTABLE_LEVELS
0230 int
0231 default 5
0232
0233 source "kernel/livepatch/Kconfig"
0234
0235 menu "Processor type and features"
0236
0237 config HAVE_MARCH_Z10_FEATURES
0238 def_bool n
0239
0240 config HAVE_MARCH_Z196_FEATURES
0241 def_bool n
0242 select HAVE_MARCH_Z10_FEATURES
0243
0244 config HAVE_MARCH_ZEC12_FEATURES
0245 def_bool n
0246 select HAVE_MARCH_Z196_FEATURES
0247
0248 config HAVE_MARCH_Z13_FEATURES
0249 def_bool n
0250 select HAVE_MARCH_ZEC12_FEATURES
0251
0252 config HAVE_MARCH_Z14_FEATURES
0253 def_bool n
0254 select HAVE_MARCH_Z13_FEATURES
0255
0256 config HAVE_MARCH_Z15_FEATURES
0257 def_bool n
0258 select HAVE_MARCH_Z14_FEATURES
0259
0260 config HAVE_MARCH_Z16_FEATURES
0261 def_bool n
0262 select HAVE_MARCH_Z15_FEATURES
0263
0264 choice
0265 prompt "Processor type"
0266 default MARCH_Z196
0267
0268 config MARCH_Z10
0269 bool "IBM System z10"
0270 select HAVE_MARCH_Z10_FEATURES
0271 depends on $(cc-option,-march=z10)
0272 help
0273 Select this to enable optimizations for IBM System z10 (2097 and 2098
0274 series). This is the oldest machine generation currently supported.
0275
0276 config MARCH_Z196
0277 bool "IBM zEnterprise 114 and 196"
0278 select HAVE_MARCH_Z196_FEATURES
0279 depends on $(cc-option,-march=z196)
0280 help
0281 Select this to enable optimizations for IBM zEnterprise 114 and 196
0282 (2818 and 2817 series). The kernel will be slightly faster but will
0283 not work on older machines.
0284
0285 config MARCH_ZEC12
0286 bool "IBM zBC12 and zEC12"
0287 select HAVE_MARCH_ZEC12_FEATURES
0288 depends on $(cc-option,-march=zEC12)
0289 help
0290 Select this to enable optimizations for IBM zBC12 and zEC12 (2828 and
0291 2827 series). The kernel will be slightly faster but will not work on
0292 older machines.
0293
0294 config MARCH_Z13
0295 bool "IBM z13s and z13"
0296 select HAVE_MARCH_Z13_FEATURES
0297 depends on $(cc-option,-march=z13)
0298 help
0299 Select this to enable optimizations for IBM z13s and z13 (2965 and
0300 2964 series). The kernel will be slightly faster but will not work on
0301 older machines.
0302
0303 config MARCH_Z14
0304 bool "IBM z14 ZR1 and z14"
0305 select HAVE_MARCH_Z14_FEATURES
0306 depends on $(cc-option,-march=z14)
0307 help
0308 Select this to enable optimizations for IBM z14 ZR1 and z14 (3907
0309 and 3906 series). The kernel will be slightly faster but will not
0310 work on older machines.
0311
0312 config MARCH_Z15
0313 bool "IBM z15"
0314 select HAVE_MARCH_Z15_FEATURES
0315 depends on $(cc-option,-march=z15)
0316 help
0317 Select this to enable optimizations for IBM z15 (8562
0318 and 8561 series). The kernel will be slightly faster but will not
0319 work on older machines.
0320
0321 config MARCH_Z16
0322 bool "IBM z16"
0323 select HAVE_MARCH_Z16_FEATURES
0324 depends on $(cc-option,-march=z16)
0325 help
0326 Select this to enable optimizations for IBM z16 (3931 and
0327 3932 series).
0328
0329 endchoice
0330
0331 config MARCH_Z10_TUNE
0332 def_bool TUNE_Z10 || MARCH_Z10 && TUNE_DEFAULT
0333
0334 config MARCH_Z196_TUNE
0335 def_bool TUNE_Z196 || MARCH_Z196 && TUNE_DEFAULT
0336
0337 config MARCH_ZEC12_TUNE
0338 def_bool TUNE_ZEC12 || MARCH_ZEC12 && TUNE_DEFAULT
0339
0340 config MARCH_Z13_TUNE
0341 def_bool TUNE_Z13 || MARCH_Z13 && TUNE_DEFAULT
0342
0343 config MARCH_Z14_TUNE
0344 def_bool TUNE_Z14 || MARCH_Z14 && TUNE_DEFAULT
0345
0346 config MARCH_Z15_TUNE
0347 def_bool TUNE_Z15 || MARCH_Z15 && TUNE_DEFAULT
0348
0349 config MARCH_Z16_TUNE
0350 def_bool TUNE_Z16 || MARCH_Z16 && TUNE_DEFAULT
0351
0352 choice
0353 prompt "Tune code generation"
0354 default TUNE_DEFAULT
0355 help
0356 Cause the compiler to tune (-mtune) the generated code for a machine.
0357 This will make the code run faster on the selected machine but
0358 somewhat slower on other machines.
0359 This option only changes how the compiler emits instructions, not the
0360 selection of instructions itself, so the resulting kernel will run on
0361 all other machines.
0362
0363 config TUNE_DEFAULT
0364 bool "Default"
0365 help
0366 Tune the generated code for the target processor for which the kernel
0367 will be compiled.
0368
0369 config TUNE_Z10
0370 bool "IBM System z10"
0371
0372 config TUNE_Z196
0373 bool "IBM zEnterprise 114 and 196"
0374 depends on $(cc-option,-mtune=z196)
0375
0376 config TUNE_ZEC12
0377 bool "IBM zBC12 and zEC12"
0378 depends on $(cc-option,-mtune=zEC12)
0379
0380 config TUNE_Z13
0381 bool "IBM z13s and z13"
0382 depends on $(cc-option,-mtune=z13)
0383
0384 config TUNE_Z14
0385 bool "IBM z14 ZR1 and z14"
0386 depends on $(cc-option,-mtune=z14)
0387
0388 config TUNE_Z15
0389 bool "IBM z15"
0390 depends on $(cc-option,-mtune=z15)
0391
0392 config TUNE_Z16
0393 bool "IBM z16"
0394 depends on $(cc-option,-mtune=z16)
0395
0396 endchoice
0397
0398 config 64BIT
0399 def_bool y
0400
0401 config COMMAND_LINE_SIZE
0402 int "Maximum size of kernel command line"
0403 default 4096
0404 range 896 1048576
0405 help
0406 This allows you to specify the maximum length of the kernel command
0407 line.
0408
0409 config COMPAT
0410 def_bool y
0411 prompt "Kernel support for 31 bit emulation"
0412 select ARCH_WANT_OLD_COMPAT_IPC
0413 select COMPAT_OLD_SIGACTION
0414 select HAVE_UID16
0415 depends on MULTIUSER
0416 depends on !CC_IS_CLANG
0417 help
0418 Select this option if you want to enable your system kernel to
0419 handle system-calls from ELF binaries for 31 bit ESA. This option
0420 (and some other stuff like libraries and such) is needed for
0421 executing 31 bit applications. It is safe to say "Y".
0422
0423 config SMP
0424 def_bool y
0425
0426 config NR_CPUS
0427 int "Maximum number of CPUs (2-512)"
0428 range 2 512
0429 default "64"
0430 help
0431 This allows you to specify the maximum number of CPUs which this
0432 kernel will support. The maximum supported value is 512 and the
0433 minimum value which makes sense is 2.
0434
0435 This is purely to save memory - each supported CPU adds
0436 approximately sixteen kilobytes to the kernel image.
0437
0438 config HOTPLUG_CPU
0439 def_bool y
0440
0441 config NUMA
0442 bool "NUMA support"
0443 depends on SCHED_TOPOLOGY
0444 default n
0445 help
0446 Enable NUMA support
0447
0448 This option adds NUMA support to the kernel.
0449
0450 config NODES_SHIFT
0451 int
0452 depends on NUMA
0453 default "1"
0454
0455 config SCHED_SMT
0456 def_bool n
0457
0458 config SCHED_MC
0459 def_bool n
0460
0461 config SCHED_BOOK
0462 def_bool n
0463
0464 config SCHED_DRAWER
0465 def_bool n
0466
0467 config SCHED_TOPOLOGY
0468 def_bool y
0469 prompt "Topology scheduler support"
0470 select SCHED_SMT
0471 select SCHED_MC
0472 select SCHED_BOOK
0473 select SCHED_DRAWER
0474 help
0475 Topology scheduler support improves the CPU scheduler's decision
0476 making when dealing with machines that have multi-threading,
0477 multiple cores or multiple books.
0478
0479 source "kernel/Kconfig.hz"
0480
0481 config KEXEC
0482 def_bool y
0483 select KEXEC_CORE
0484
0485 config KEXEC_FILE
0486 bool "kexec file based system call"
0487 select KEXEC_CORE
0488 depends on CRYPTO
0489 depends on CRYPTO_SHA256
0490 depends on CRYPTO_SHA256_S390
0491 help
0492 Enable the kexec file based system call. In contrast to the normal
0493 kexec system call this system call takes file descriptors for the
0494 kernel and initramfs as arguments.
0495
0496 config ARCH_HAS_KEXEC_PURGATORY
0497 def_bool y
0498 depends on KEXEC_FILE
0499
0500 config KEXEC_SIG
0501 bool "Verify kernel signature during kexec_file_load() syscall"
0502 depends on KEXEC_FILE && MODULE_SIG_FORMAT
0503 help
0504 This option makes kernel signature verification mandatory for
0505 the kexec_file_load() syscall.
0506
0507 In addition to that option, you need to enable signature
0508 verification for the corresponding kernel image type being
0509 loaded in order for this to work.
0510
0511 config KERNEL_NOBP
0512 def_bool n
0513 prompt "Enable modified branch prediction for the kernel by default"
0514 help
0515 If this option is selected the kernel will switch to a modified
0516 branch prediction mode if the firmware interface is available.
0517 The modified branch prediction mode improves the behaviour in
0518 regard to speculative execution.
0519
0520 With the option enabled the kernel parameter "nobp=0" or "nospec"
0521 can be used to run the kernel in the normal branch prediction mode.
0522
0523 With the option disabled the modified branch prediction mode is
0524 enabled with the "nobp=1" kernel parameter.
0525
0526 If unsure, say N.
0527
0528 config EXPOLINE
0529 def_bool n
0530 depends on $(cc-option,-mindirect-branch=thunk)
0531 prompt "Avoid speculative indirect branches in the kernel"
0532 help
0533 Compile the kernel with the expoline compiler options to guard
0534 against kernel-to-user data leaks by avoiding speculative indirect
0535 branches.
0536 Requires a compiler with -mindirect-branch=thunk support for full
0537 protection. The kernel may run slower.
0538
0539 If unsure, say N.
0540
0541 config EXPOLINE_EXTERN
0542 def_bool n
0543 depends on EXPOLINE
0544 depends on CC_IS_GCC && GCC_VERSION >= 110200
0545 depends on $(success,$(srctree)/arch/s390/tools/gcc-thunk-extern.sh $(CC))
0546 prompt "Generate expolines as extern functions."
0547 help
0548 This option is required for some tooling like kpatch. The kernel is
0549 compiled with -mindirect-branch=thunk-extern and requires a newer
0550 compiler.
0551
0552 If unsure, say N.
0553
0554 choice
0555 prompt "Expoline default"
0556 depends on EXPOLINE
0557 default EXPOLINE_FULL
0558
0559 config EXPOLINE_OFF
0560 bool "spectre_v2=off"
0561
0562 config EXPOLINE_AUTO
0563 bool "spectre_v2=auto"
0564
0565 config EXPOLINE_FULL
0566 bool "spectre_v2=on"
0567
0568 endchoice
0569
0570 config RELOCATABLE
0571 bool "Build a relocatable kernel"
0572 default y
0573 help
0574 This builds a kernel image that retains relocation information
0575 so it can be loaded at an arbitrary address.
0576 The kernel is linked as a position-independent executable (PIE)
0577 and contains dynamic relocations which are processed early in the
0578 bootup process.
0579 The relocations make the kernel image about 15% larger (compressed
0580 10%), but are discarded at runtime.
0581
0582 config RANDOMIZE_BASE
0583 bool "Randomize the address of the kernel image (KASLR)"
0584 depends on RELOCATABLE
0585 default y
0586 help
0587 In support of Kernel Address Space Layout Randomization (KASLR),
0588 this randomizes the address at which the kernel image is loaded,
0589 as a security feature that deters exploit attempts relying on
0590 knowledge of the location of kernel internals.
0591
0592 endmenu
0593
0594 menu "Memory setup"
0595
0596 config ARCH_SPARSEMEM_ENABLE
0597 def_bool y
0598 select SPARSEMEM_VMEMMAP_ENABLE
0599 select SPARSEMEM_VMEMMAP
0600
0601 config ARCH_SPARSEMEM_DEFAULT
0602 def_bool y
0603
0604 config MAX_PHYSMEM_BITS
0605 int "Maximum size of supported physical memory in bits (42-53)"
0606 range 42 53
0607 default "46"
0608 help
0609 This option specifies the maximum supported size of physical memory
0610 in bits. Supported is any size between 2^42 (4TB) and 2^53 (8PB).
0611 Increasing the number of bits also increases the kernel image size.
0612 By default 46 bits (64TB) are supported.
0613
0614 config CHECK_STACK
0615 def_bool y
0616 depends on !VMAP_STACK
0617 prompt "Detect kernel stack overflow"
0618 help
0619 This option enables the compiler option -mstack-guard and
0620 -mstack-size if they are available. If the compiler supports them
0621 it will emit additional code to each function prolog to trigger
0622 an illegal operation if the kernel stack is about to overflow.
0623
0624 Say N if you are unsure.
0625
0626 config STACK_GUARD
0627 int "Size of the guard area (128-1024)"
0628 range 128 1024
0629 depends on CHECK_STACK
0630 default "256"
0631 help
0632 This allows you to specify the size of the guard area at the lower
0633 end of the kernel stack. If the kernel stack points into the guard
0634 area on function entry an illegal operation is triggered. The size
0635 needs to be a power of 2. Please keep in mind that the size of an
0636 interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit.
0637 The minimum size for the stack guard should be 256 for 31 bit and
0638 512 for 64 bit.
0639
0640 endmenu
0641
0642 menu "I/O subsystem"
0643
0644 config QDIO
0645 def_tristate y
0646 prompt "QDIO support"
0647 help
0648 This driver provides the Queued Direct I/O base support for
0649 IBM System z.
0650
0651 To compile this driver as a module, choose M here: the
0652 module will be called qdio.
0653
0654 If unsure, say Y.
0655
0656 if PCI
0657
0658 config PCI_NR_FUNCTIONS
0659 int "Maximum number of PCI functions (1-4096)"
0660 range 1 4096
0661 default "512"
0662 help
0663 This allows you to specify the maximum number of PCI functions which
0664 this kernel will support.
0665
0666 endif # PCI
0667
0668 config HAS_IOMEM
0669 def_bool PCI
0670
0671 config CHSC_SCH
0672 def_tristate m
0673 prompt "Support for CHSC subchannels"
0674 help
0675 This driver allows usage of CHSC subchannels. A CHSC subchannel
0676 is usually present on LPAR only.
0677 The driver creates a device /dev/chsc, which may be used to
0678 obtain I/O configuration information about the machine and
0679 to issue asynchronous chsc commands (DANGEROUS).
0680 You will usually only want to use this interface on a special
0681 LPAR designated for system management.
0682
0683 To compile this driver as a module, choose M here: the
0684 module will be called chsc_sch.
0685
0686 If unsure, say N.
0687
0688 config SCM_BUS
0689 def_bool y
0690 prompt "SCM bus driver"
0691 help
0692 Bus driver for Storage Class Memory.
0693
0694 config EADM_SCH
0695 def_tristate m
0696 prompt "Support for EADM subchannels"
0697 depends on SCM_BUS
0698 help
0699 This driver allows usage of EADM subchannels. EADM subchannels act
0700 as a communication vehicle for SCM increments.
0701
0702 To compile this driver as a module, choose M here: the
0703 module will be called eadm_sch.
0704
0705 config VFIO_CCW
0706 def_tristate n
0707 prompt "Support for VFIO-CCW subchannels"
0708 depends on S390_CCW_IOMMU && VFIO_MDEV
0709 help
0710 This driver allows usage of I/O subchannels via VFIO-CCW.
0711
0712 To compile this driver as a module, choose M here: the
0713 module will be called vfio_ccw.
0714
0715 config VFIO_AP
0716 def_tristate n
0717 prompt "VFIO support for AP devices"
0718 depends on S390_AP_IOMMU && VFIO_MDEV && KVM
0719 depends on ZCRYPT
0720 help
0721 This driver grants access to Adjunct Processor (AP) devices
0722 via the VFIO mediated device interface.
0723
0724 To compile this driver as a module, choose M here: the module
0725 will be called vfio_ap.
0726
0727 endmenu
0728
0729 menu "Dump support"
0730
0731 config CRASH_DUMP
0732 bool "kernel crash dumps"
0733 select KEXEC
0734 help
0735 Generate crash dump after being started by kexec.
0736 Crash dump kernels are loaded in the main kernel with kexec-tools
0737 into a specially reserved region and then later executed after
0738 a crash by kdump/kexec.
0739 Refer to <file:Documentation/s390/zfcpdump.rst> for more details on this.
0740 This option also enables s390 zfcpdump.
0741 See also <file:Documentation/s390/zfcpdump.rst>
0742
0743 endmenu
0744
0745 config CCW
0746 def_bool y
0747
0748 config HAVE_PNETID
0749 tristate
0750 default (SMC || CCWGROUP)
0751
0752 menu "Virtualization"
0753
0754 config PROTECTED_VIRTUALIZATION_GUEST
0755 def_bool n
0756 prompt "Protected virtualization guest support"
0757 help
0758 Select this option, if you want to be able to run this
0759 kernel as a protected virtualization KVM guest.
0760 Protected virtualization capable machines have a mini hypervisor
0761 located at machine level (an ultravisor). With help of the
0762 Ultravisor, KVM will be able to run "protected" VMs, special
0763 VMs whose memory and management data are unavailable to KVM.
0764
0765 config PFAULT
0766 def_bool y
0767 prompt "Pseudo page fault support"
0768 help
0769 Select this option, if you want to use PFAULT pseudo page fault
0770 handling under VM. If running native or in LPAR, this option
0771 has no effect. If your VM does not support PFAULT, PAGEEX
0772 pseudo page fault handling will be used.
0773 Note that VM 4.2 supports PFAULT but has a bug in its
0774 implementation that causes some problems.
0775 Everybody who wants to run Linux under VM != VM4.2 should select
0776 this option.
0777
0778 config CMM
0779 def_tristate n
0780 prompt "Cooperative memory management"
0781 help
0782 Select this option, if you want to enable the kernel interface
0783 to reduce the memory size of the system. This is accomplished
0784 by allocating pages of memory and put them "on hold". This only
0785 makes sense for a system running under VM where the unused pages
0786 will be reused by VM for other guest systems. The interface
0787 allows an external monitor to balance memory of many systems.
0788 Everybody who wants to run Linux under VM should select this
0789 option.
0790
0791 config CMM_IUCV
0792 def_bool y
0793 prompt "IUCV special message interface to cooperative memory management"
0794 depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
0795 help
0796 Select this option to enable the special message interface to
0797 the cooperative memory management.
0798
0799 config APPLDATA_BASE
0800 def_bool n
0801 prompt "Linux - VM Monitor Stream, base infrastructure"
0802 depends on PROC_SYSCTL
0803 help
0804 This provides a kernel interface for creating and updating z/VM APPLDATA
0805 monitor records. The monitor records are updated at certain time
0806 intervals, once the timer is started.
0807 Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
0808 i.e. enables or disables monitoring on the Linux side.
0809 A custom interval value (in seconds) can be written to
0810 /proc/appldata/interval.
0811
0812 Defaults are 60 seconds interval and timer off.
0813 The /proc entries can also be read from, showing the current settings.
0814
0815 config APPLDATA_MEM
0816 def_tristate m
0817 prompt "Monitor memory management statistics"
0818 depends on APPLDATA_BASE && VM_EVENT_COUNTERS
0819 help
0820 This provides memory management related data to the Linux - VM Monitor
0821 Stream, like paging/swapping rate, memory utilisation, etc.
0822 Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM
0823 APPLDATA monitor record, i.e. enables or disables monitoring this record
0824 on the z/VM side.
0825
0826 Default is disabled.
0827 The /proc entry can also be read from, showing the current settings.
0828
0829 This can also be compiled as a module, which will be called
0830 appldata_mem.o.
0831
0832 config APPLDATA_OS
0833 def_tristate m
0834 prompt "Monitor OS statistics"
0835 depends on APPLDATA_BASE
0836 help
0837 This provides OS related data to the Linux - VM Monitor Stream, like
0838 CPU utilisation, etc.
0839 Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
0840 APPLDATA monitor record, i.e. enables or disables monitoring this record
0841 on the z/VM side.
0842
0843 Default is disabled.
0844 This can also be compiled as a module, which will be called
0845 appldata_os.o.
0846
0847 config APPLDATA_NET_SUM
0848 def_tristate m
0849 prompt "Monitor overall network statistics"
0850 depends on APPLDATA_BASE && NET
0851 help
0852 This provides network related data to the Linux - VM Monitor Stream,
0853 currently there is only a total sum of network I/O statistics, no
0854 per-interface data.
0855 Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
0856 APPLDATA monitor record, i.e. enables or disables monitoring this record
0857 on the z/VM side.
0858
0859 Default is disabled.
0860 This can also be compiled as a module, which will be called
0861 appldata_net_sum.o.
0862
0863 config S390_HYPFS_FS
0864 def_bool y
0865 prompt "s390 hypervisor file system support"
0866 select SYS_HYPERVISOR
0867 help
0868 This is a virtual file system intended to provide accounting
0869 information in an s390 hypervisor environment.
0870
0871 source "arch/s390/kvm/Kconfig"
0872
0873 config S390_GUEST
0874 def_bool y
0875 prompt "s390 support for virtio devices"
0876 select TTY
0877 select VIRTUALIZATION
0878 select VIRTIO
0879 help
0880 Enabling this option adds support for virtio based paravirtual device
0881 drivers on s390.
0882
0883 Select this option if you want to run the kernel as a guest under
0884 the KVM hypervisor.
0885
0886 endmenu
0887
0888 config S390_MODULES_SANITY_TEST_HELPERS
0889 def_bool n
0890
0891 menu "Selftests"
0892
0893 config S390_UNWIND_SELFTEST
0894 def_tristate n
0895 depends on KUNIT
0896 default KUNIT_ALL_TESTS
0897 prompt "Test unwind functions"
0898 help
0899 This option enables s390 specific stack unwinder testing kernel
0900 module. This option is not useful for distributions or general
0901 kernels, but only for kernel developers working on architecture code.
0902
0903 Say N if you are unsure.
0904
0905 config S390_KPROBES_SANITY_TEST
0906 def_tristate n
0907 prompt "Enable s390 specific kprobes tests"
0908 depends on KPROBES
0909 depends on KUNIT
0910 help
0911 This option enables an s390 specific kprobes test module. This option
0912 is not useful for distributions or general kernels, but only for kernel
0913 developers working on architecture code.
0914
0915 Say N if you are unsure.
0916
0917 config S390_MODULES_SANITY_TEST
0918 def_tristate n
0919 depends on KUNIT
0920 default KUNIT_ALL_TESTS
0921 prompt "Enable s390 specific modules tests"
0922 select S390_MODULES_SANITY_TEST_HELPERS
0923 help
0924 This option enables an s390 specific modules test. This option is
0925 not useful for distributions or general kernels, but only for
0926 kernel developers working on architecture code.
0927
0928 Say N if you are unsure.
0929 endmenu