]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blame - arch/s390/Kconfig
s390: remove unneeded 'select BUILD_BIN2C'
[mirror_ubuntu-jammy-kernel.git] / arch / s390 / Kconfig
CommitLineData
b2441318 1# SPDX-License-Identifier: GPL-2.0
1da177e4 2config MMU
61d48c2c 3 def_bool y
1da177e4 4
2fd92273
HC
5config CPU_BIG_ENDIAN
6 def_bool y
7
2b105ff9 8config LOCKDEP_SUPPORT
61d48c2c 9 def_bool y
2b105ff9 10
5bdc9b44 11config STACKTRACE_SUPPORT
61d48c2c 12 def_bool y
5bdc9b44 13
f0d1b0b3 14config ARCH_HAS_ILOG2_U32
6f9a3c33 15 def_bool n
f0d1b0b3
DH
16
17config ARCH_HAS_ILOG2_U64
6f9a3c33 18 def_bool n
f0d1b0b3 19
7e33db4e 20config GENERIC_HWEIGHT
61d48c2c 21 def_bool y
7e33db4e 22
c0007f1a 23config GENERIC_BUG
6f9a3c33 24 def_bool y if BUG
c0007f1a 25
52499f40
HC
26config GENERIC_BUG_RELATIVE_POINTERS
27 def_bool y
28
b6b40c53 29config GENERIC_LOCKBREAK
114b9df4 30 def_bool y if PREEMPTION
b6b40c53 31
402b0862 32config PGSTE
6f9a3c33 33 def_bool y if KVM
402b0862 34
843c48fd
JG
35config AUDIT_ARCH
36 def_bool y
37
ce816fa8 38config NO_IOPORT_MAP
c8717a3d
JG
39 def_bool y
40
41config PCI_QUIRKS
42 def_bool n
43
2a0a5b22 44config ARCH_SUPPORTS_UPROBES
5a79859a 45 def_bool y
2a0a5b22 46
5e785963
VG
47config KASAN_SHADOW_OFFSET
48 hex
49 depends on KASAN
dba529c9 50 default 0x1C000000000000
5e785963 51
347a8dc3 52config S390
61d48c2c 53 def_bool y
129975e7
HC
54 #
55 # Note: keep this list sorted alphabetically
56 #
57 imply IMA_SECURE_AND_OR_TRUSTED_BOOT
96c0a6a7 58 select ARCH_32BIT_USTAT_F_TINODE
23fefe11 59 select ARCH_BINFMT_ELF_STATE
91024b3c
AK
60 select ARCH_ENABLE_MEMORY_HOTPLUG if SPARSEMEM
61 select ARCH_ENABLE_MEMORY_HOTREMOVE
cebc774f 62 select ARCH_ENABLE_SPLIT_PMD_PTLOCK if PGTABLE_LEVELS > 2
399145f9 63 select ARCH_HAS_DEBUG_VM_PGTABLE
08c8e685 64 select ARCH_HAS_DEBUG_WX
21266be9 65 select ARCH_HAS_DEVMEM_IS_ALLOWED
2b68f6ca 66 select ARCH_HAS_ELF_RANDOMIZE
129975e7 67 select ARCH_HAS_FORCE_DMA_UNENCRYPTED
79962038 68 select ARCH_HAS_FORTIFY_SOURCE
957e3fac 69 select ARCH_HAS_GCOV_PROFILE_ALL
4eb0716e 70 select ARCH_HAS_GIGANTIC_PAGE
907fa061 71 select ARCH_HAS_KCOV
0c9c1d56 72 select ARCH_HAS_MEM_ENCRYPT
3010a5ea 73 select ARCH_HAS_PTE_SPECIAL
129975e7 74 select ARCH_HAS_SCALED_CPUTIME
d2852a22 75 select ARCH_HAS_SET_MEMORY
ad21fc4f
LA
76 select ARCH_HAS_STRICT_KERNEL_RWX
77 select ARCH_HAS_STRICT_MODULE_RWX
aa0d6e70 78 select ARCH_HAS_SYSCALL_WRAPPER
c42d8c7d 79 select ARCH_HAS_UBSAN_SANITIZE_ALL
4bff8cb5 80 select ARCH_HAS_VDSO_DATA
0e0d04a8 81 select ARCH_HAVE_NMI_SAFE_CMPXCHG
6beb0009
TG
82 select ARCH_INLINE_READ_LOCK
83 select ARCH_INLINE_READ_LOCK_BH
84 select ARCH_INLINE_READ_LOCK_IRQ
85 select ARCH_INLINE_READ_LOCK_IRQSAVE
0e0d04a8 86 select ARCH_INLINE_READ_TRYLOCK
6beb0009
TG
87 select ARCH_INLINE_READ_UNLOCK
88 select ARCH_INLINE_READ_UNLOCK_BH
89 select ARCH_INLINE_READ_UNLOCK_IRQ
90 select ARCH_INLINE_READ_UNLOCK_IRQRESTORE
0e0d04a8
HC
91 select ARCH_INLINE_SPIN_LOCK
92 select ARCH_INLINE_SPIN_LOCK_BH
93 select ARCH_INLINE_SPIN_LOCK_IRQ
94 select ARCH_INLINE_SPIN_LOCK_IRQSAVE
95 select ARCH_INLINE_SPIN_TRYLOCK
96 select ARCH_INLINE_SPIN_TRYLOCK_BH
97 select ARCH_INLINE_SPIN_UNLOCK
98 select ARCH_INLINE_SPIN_UNLOCK_BH
99 select ARCH_INLINE_SPIN_UNLOCK_IRQ
100 select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
6beb0009
TG
101 select ARCH_INLINE_WRITE_LOCK
102 select ARCH_INLINE_WRITE_LOCK_BH
103 select ARCH_INLINE_WRITE_LOCK_IRQ
104 select ARCH_INLINE_WRITE_LOCK_IRQSAVE
0e0d04a8 105 select ARCH_INLINE_WRITE_TRYLOCK
6beb0009
TG
106 select ARCH_INLINE_WRITE_UNLOCK
107 select ARCH_INLINE_WRITE_UNLOCK_BH
108 select ARCH_INLINE_WRITE_UNLOCK_IRQ
109 select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
e991e5bb 110 select ARCH_STACKWALK
36e7fdaa 111 select ARCH_SUPPORTS_ATOMIC_RMW
5d6ad668 112 select ARCH_SUPPORTS_DEBUG_PAGEALLOC
bb9c14ad 113 select ARCH_SUPPORTS_HUGETLBFS
a763bc8b 114 select ARCH_SUPPORTS_NUMA_BALANCING
295d8fa9 115 select ARCH_USE_BUILTIN_BSWAP
efc1d23b 116 select ARCH_USE_CMPXCHG_LOCKREF
3f6813b9 117 select ARCH_WANTS_DYNAMIC_TASK_STRUCT
51c2ee6d 118 select ARCH_WANTS_NO_INSTR
d2abfbe4 119 select ARCH_WANT_DEFAULT_BPF_JIT
c1d7e01d 120 select ARCH_WANT_IPC_PARSE_VERSION
10916706 121 select BUILDTIME_TABLE_SORT
0e0d04a8 122 select CLONE_BACKWARDS2
129975e7 123 select CPU_NO_EFFICIENT_FFS if !HAVE_MARCH_Z9_109_FEATURES
2f9237d4 124 select DMA_OPS if PCI
5d6a0163 125 select DYNAMIC_FTRACE if FUNCTION_TRACER
129975e7 126 select GENERIC_ALLOCATOR
8f00b3e2 127 select GENERIC_CPU_AUTOPROBE
d424986f 128 select GENERIC_CPU_VULNERABILITIES
56e62a73 129 select GENERIC_ENTRY
746479cd 130 select GENERIC_FIND_FIRST_BIT
4bff8cb5 131 select GENERIC_GETTIMEOFDAY
9d719d39 132 select GENERIC_PTDUMP
e80e7813 133 select GENERIC_SMP_IDLE_THREAD
79c74ecb 134 select GENERIC_TIME_VSYSCALL
eeab78b0 135 select GENERIC_VDSO_TIME_NS
0e0d04a8 136 select HAVE_ALIGNED_STRUCT_PAGE if SLUB
7a017721 137 select HAVE_ARCH_AUDITSYSCALL
5a79859a 138 select HAVE_ARCH_JUMP_LABEL
13ddb52c 139 select HAVE_ARCH_JUMP_LABEL_RELATIVE
42db5ed8 140 select HAVE_ARCH_KASAN
3e39ce26 141 select HAVE_ARCH_KASAN_VMALLOC
e37b3dd0 142 select HAVE_ARCH_KCSAN
e41ba111 143 select HAVE_ARCH_KFENCE
bae1cd36 144 select HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET
c63cb468 145 select HAVE_ARCH_SECCOMP_FILTER
5614dd92 146 select HAVE_ARCH_SOFT_DIRTY
0e0d04a8 147 select HAVE_ARCH_TRACEHOOK
5a79859a 148 select HAVE_ARCH_TRANSPARENT_HUGEPAGE
ce3dc447 149 select HAVE_ARCH_VMAP_STACK
2ff2b7ec 150 select HAVE_ASM_MODVERSIONS
0e0d04a8
HC
151 select HAVE_CMPXCHG_DOUBLE
152 select HAVE_CMPXCHG_LOCAL
0e0d04a8 153 select HAVE_DEBUG_KMEMLEAK
e1231b0e 154 select HAVE_DMA_CONTIGUOUS
5a79859a
HC
155 select HAVE_DYNAMIC_FTRACE
156 select HAVE_DYNAMIC_FTRACE_WITH_REGS
129975e7 157 select HAVE_EBPF_JIT if PACK_STACK && HAVE_MARCH_Z196_FEATURES
9078a549 158 select HAVE_EFFICIENT_UNALIGNED_ACCESS
129975e7 159 select HAVE_FAST_GUP
d983c89c 160 select HAVE_FENTRY
0e0d04a8 161 select HAVE_FTRACE_MCOUNT_RECORD
73d6eb48 162 select HAVE_FUNCTION_ERROR_INJECTION
5a79859a
HC
163 select HAVE_FUNCTION_GRAPH_TRACER
164 select HAVE_FUNCTION_TRACER
03b8c7b6 165 select HAVE_FUTEX_CMPXCHG if FUTEX
bc00b3ec 166 select HAVE_GCC_PLUGINS
4bff8cb5 167 select HAVE_GENERIC_VDSO
d460bb6c 168 select HAVE_IOREMAP_PROT if PCI
0e0d04a8
HC
169 select HAVE_KERNEL_BZIP2
170 select HAVE_KERNEL_GZIP
8e2872ce 171 select HAVE_KERNEL_LZ4
0e0d04a8
HC
172 select HAVE_KERNEL_LZMA
173 select HAVE_KERNEL_LZO
89b5202e 174 select HAVE_KERNEL_UNCOMPRESSED
0e0d04a8 175 select HAVE_KERNEL_XZ
7b034d9c 176 select HAVE_KERNEL_ZSTD
0e0d04a8 177 select HAVE_KPROBES
657480d9 178 select HAVE_KPROBES_ON_FTRACE
0e0d04a8 179 select HAVE_KRETPROBES
5a79859a 180 select HAVE_KVM
21042d43 181 select HAVE_LIVEPATCH
50be6345 182 select HAVE_MEMBLOCK_PHYS_MAP
786d35d4 183 select HAVE_MOD_ARCH_SPECIFIC
129975e7 184 select HAVE_NMI
d983c89c 185 select HAVE_NOP_MCOUNT
eb01d42a 186 select HAVE_PCI
0e0d04a8 187 select HAVE_PERF_EVENTS
129975e7
HC
188 select HAVE_PERF_REGS
189 select HAVE_PERF_USER_STACK_DUMP
0e0d04a8 190 select HAVE_REGS_AND_STACK_ACCESS_API
aa137a6d 191 select HAVE_RELIABLE_STACKTRACE
9d6d99e3 192 select HAVE_RSEQ
cd1a41ce 193 select HAVE_SOFTIRQ_ON_OWN_STACK
0e0d04a8 194 select HAVE_SYSCALL_TRACEPOINTS
0e0d04a8 195 select HAVE_VIRT_CPU_ACCOUNTING
2b91ec9f 196 select HAVE_VIRT_CPU_ACCOUNTING_IDLE
eb01d42a
CH
197 select IOMMU_HELPER if PCI
198 select IOMMU_SUPPORT if PCI
129975e7
HC
199 select MMU_GATHER_NO_GATHER
200 select MMU_GATHER_RCU_TABLE_FREE
786d35d4 201 select MODULES_USE_ELF_RELA
eb01d42a
CH
202 select NEED_DMA_MAP_STATE if PCI
203 select NEED_SG_DMA_LENGTH if PCI
7eddd99c 204 select OLD_SIGACTION
93bead43 205 select OLD_SIGSUSPEND3
2eac9c2d 206 select PCI_DOMAINS if PCI
eb01d42a 207 select PCI_MSI if PCI
981aa1d3 208 select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
bb98f396 209 select SPARSE_IRQ
129975e7 210 select SWIOTLB
0e0d04a8 211 select SYSCTL_EXCEPTION_TRACE
d5c352cd 212 select THREAD_INFO_IN_TASK
4aae683f 213 select TRACE_IRQFLAGS_SUPPORT
0563416b 214 select TTY
0e0d04a8 215 select VIRT_CPU_ACCOUNTING
63703f37 216 select ZONE_DMA
129975e7 217 # Note: keep the above list sorted alphabetically
1da177e4 218
fca3e357 219config SCHED_OMIT_FRAME_POINTER
6f9a3c33 220 def_bool y
fca3e357 221
c81956c9
KS
222config PGTABLE_LEVELS
223 int
1aea9b3f 224 default 5
c81956c9 225
21042d43
JS
226source "kernel/livepatch/Kconfig"
227
843c48fd
JG
228menu "Processor type and features"
229
230config HAVE_MARCH_Z900_FEATURES
231 def_bool n
232
233config HAVE_MARCH_Z990_FEATURES
234 def_bool n
235 select HAVE_MARCH_Z900_FEATURES
236
237config HAVE_MARCH_Z9_109_FEATURES
238 def_bool n
239 select HAVE_MARCH_Z990_FEATURES
240
241config HAVE_MARCH_Z10_FEATURES
242 def_bool n
243 select HAVE_MARCH_Z9_109_FEATURES
244
245config HAVE_MARCH_Z196_FEATURES
246 def_bool n
247 select HAVE_MARCH_Z10_FEATURES
248
991c1505
HC
249config HAVE_MARCH_ZEC12_FEATURES
250 def_bool n
251 select HAVE_MARCH_Z196_FEATURES
252
f8b2dcbd
MS
253config HAVE_MARCH_Z13_FEATURES
254 def_bool n
255 select HAVE_MARCH_ZEC12_FEATURES
256
6997c323
MS
257config HAVE_MARCH_Z14_FEATURES
258 def_bool n
259 select HAVE_MARCH_Z13_FEATURES
260
a0e22511
MS
261config HAVE_MARCH_Z15_FEATURES
262 def_bool n
263 select HAVE_MARCH_Z14_FEATURES
264
843c48fd
JG
265choice
266 prompt "Processor type"
7072276e 267 default MARCH_Z196
1da177e4 268
843c48fd
JG
269config MARCH_Z900
270 bool "IBM zSeries model z800 and z900"
5a79859a 271 select HAVE_MARCH_Z900_FEATURES
5474080a 272 depends on $(cc-option,-march=z900)
843c48fd
JG
273 help
274 Select this to enable optimizations for model z800/z900 (2064 and
275 2066 series). This will enable some optimizations that are not
276 available on older ESA/390 (31 Bit) only CPUs.
277
278config MARCH_Z990
279 bool "IBM zSeries model z890 and z990"
5a79859a 280 select HAVE_MARCH_Z990_FEATURES
5474080a 281 depends on $(cc-option,-march=z990)
843c48fd
JG
282 help
283 Select this to enable optimizations for model z890/z990 (2084 and
284 2086 series). The kernel will be slightly faster but will not work
285 on older machines.
286
287config MARCH_Z9_109
288 bool "IBM System z9"
5a79859a 289 select HAVE_MARCH_Z9_109_FEATURES
5474080a 290 depends on $(cc-option,-march=z9-109)
843c48fd
JG
291 help
292 Select this to enable optimizations for IBM System z9 (2094 and
293 2096 series). The kernel will be slightly faster but will not work
294 on older machines.
295
296config MARCH_Z10
297 bool "IBM System z10"
5a79859a 298 select HAVE_MARCH_Z10_FEATURES
5474080a 299 depends on $(cc-option,-march=z10)
843c48fd
JG
300 help
301 Select this to enable optimizations for IBM System z10 (2097 and
302 2098 series). The kernel will be slightly faster but will not work
303 on older machines.
304
305config MARCH_Z196
306 bool "IBM zEnterprise 114 and 196"
5a79859a 307 select HAVE_MARCH_Z196_FEATURES
5474080a 308 depends on $(cc-option,-march=z196)
843c48fd
JG
309 help
310 Select this to enable optimizations for IBM zEnterprise 114 and 196
311 (2818 and 2817 series). The kernel will be slightly faster but will
312 not work on older machines.
1da177e4 313
991c1505 314config MARCH_ZEC12
59471227 315 bool "IBM zBC12 and zEC12"
5a79859a 316 select HAVE_MARCH_ZEC12_FEATURES
5474080a 317 depends on $(cc-option,-march=zEC12)
991c1505 318 help
59471227
HC
319 Select this to enable optimizations for IBM zBC12 and zEC12 (2828 and
320 2827 series). The kernel will be slightly faster but will not work on
321 older machines.
991c1505 322
f8b2dcbd 323config MARCH_Z13
bb3aa614 324 bool "IBM z13s and z13"
5a79859a 325 select HAVE_MARCH_Z13_FEATURES
5474080a 326 depends on $(cc-option,-march=z13)
f8b2dcbd 327 help
bb3aa614
HC
328 Select this to enable optimizations for IBM z13s and z13 (2965 and
329 2964 series). The kernel will be slightly faster but will not work on
330 older machines.
f8b2dcbd 331
6997c323 332config MARCH_Z14
451239eb 333 bool "IBM z14 ZR1 and z14"
6997c323 334 select HAVE_MARCH_Z14_FEATURES
5474080a 335 depends on $(cc-option,-march=z14)
6997c323 336 help
451239eb
HC
337 Select this to enable optimizations for IBM z14 ZR1 and z14 (3907
338 and 3906 series). The kernel will be slightly faster but will not
339 work on older machines.
6997c323 340
a0e22511
MS
341config MARCH_Z15
342 bool "IBM z15"
343 select HAVE_MARCH_Z15_FEATURES
5474080a 344 depends on $(cc-option,-march=z15)
a0e22511
MS
345 help
346 Select this to enable optimizations for IBM z15 (8562
347 and 8561 series). The kernel will be slightly faster but will not
348 work on older machines.
349
843c48fd 350endchoice
1da177e4 351
1db9e051
HC
352config MARCH_Z900_TUNE
353 def_bool TUNE_Z900 || MARCH_Z900 && TUNE_DEFAULT
354
355config MARCH_Z990_TUNE
356 def_bool TUNE_Z990 || MARCH_Z990 && TUNE_DEFAULT
357
358config MARCH_Z9_109_TUNE
359 def_bool TUNE_Z9_109 || MARCH_Z9_109 && TUNE_DEFAULT
360
361config MARCH_Z10_TUNE
362 def_bool TUNE_Z10 || MARCH_Z10 && TUNE_DEFAULT
363
364config MARCH_Z196_TUNE
365 def_bool TUNE_Z196 || MARCH_Z196 && TUNE_DEFAULT
366
367config MARCH_ZEC12_TUNE
368 def_bool TUNE_ZEC12 || MARCH_ZEC12 && TUNE_DEFAULT
369
f8b2dcbd
MS
370config MARCH_Z13_TUNE
371 def_bool TUNE_Z13 || MARCH_Z13 && TUNE_DEFAULT
372
6997c323
MS
373config MARCH_Z14_TUNE
374 def_bool TUNE_Z14 || MARCH_Z14 && TUNE_DEFAULT
375
a0e22511
MS
376config MARCH_Z15_TUNE
377 def_bool TUNE_Z15 || MARCH_Z15 && TUNE_DEFAULT
378
1db9e051
HC
379choice
380 prompt "Tune code generation"
381 default TUNE_DEFAULT
382 help
383 Cause the compiler to tune (-mtune) the generated code for a machine.
384 This will make the code run faster on the selected machine but
385 somewhat slower on other machines.
386 This option only changes how the compiler emits instructions, not the
387 selection of instructions itself, so the resulting kernel will run on
388 all other machines.
389
390config TUNE_DEFAULT
391 bool "Default"
392 help
393 Tune the generated code for the target processor for which the kernel
394 will be compiled.
395
1db9e051
HC
396config TUNE_Z900
397 bool "IBM zSeries model z800 and z900"
5474080a 398 depends on $(cc-option,-mtune=z900)
1db9e051
HC
399
400config TUNE_Z990
401 bool "IBM zSeries model z890 and z990"
5474080a 402 depends on $(cc-option,-mtune=z990)
1db9e051
HC
403
404config TUNE_Z9_109
405 bool "IBM System z9"
5474080a 406 depends on $(cc-option,-mtune=z9-109)
1db9e051
HC
407
408config TUNE_Z10
409 bool "IBM System z10"
5474080a 410 depends on $(cc-option,-mtune=z10)
1db9e051
HC
411
412config TUNE_Z196
413 bool "IBM zEnterprise 114 and 196"
5474080a 414 depends on $(cc-option,-mtune=z196)
1db9e051
HC
415
416config TUNE_ZEC12
417 bool "IBM zBC12 and zEC12"
5474080a 418 depends on $(cc-option,-mtune=zEC12)
1db9e051 419
f8b2dcbd 420config TUNE_Z13
89d0180a 421 bool "IBM z13s and z13"
5474080a 422 depends on $(cc-option,-mtune=z13)
f8b2dcbd 423
6997c323 424config TUNE_Z14
89d0180a 425 bool "IBM z14 ZR1 and z14"
5474080a 426 depends on $(cc-option,-mtune=z14)
6997c323 427
a0e22511
MS
428config TUNE_Z15
429 bool "IBM z15"
5474080a 430 depends on $(cc-option,-mtune=z15)
a0e22511 431
1db9e051
HC
432endchoice
433
347a8dc3 434config 64BIT
6f9a3c33 435 def_bool y
d9f7a745 436
843c48fd
JG
437config COMPAT
438 def_bool y
439 prompt "Kernel support for 31 bit emulation"
843c48fd 440 select ARCH_WANT_OLD_COMPAT_IPC
7eddd99c 441 select COMPAT_OLD_SIGACTION
fef747ba 442 select HAVE_UID16
2813893f 443 depends on MULTIUSER
779df224 444 depends on !CC_IS_CLANG
843c48fd
JG
445 help
446 Select this option if you want to enable your system kernel to
447 handle system-calls from ELF binaries for 31 bit ESA. This option
448 (and some other stuff like libraries and such) is needed for
449 executing 31 bit applications. It is safe to say "Y".
450
451config SYSVIPC_COMPAT
452 def_bool y if COMPAT && SYSVIPC
453
1da177e4 454config SMP
6f9a3c33 455 def_bool y
1da177e4
LT
456
457config NR_CPUS
5c75a0da
HC
458 int "Maximum number of CPUs (2-512)"
459 range 2 512
5a79859a 460 default "64"
1da177e4
LT
461 help
462 This allows you to specify the maximum number of CPUs which this
5c75a0da 463 kernel will support. The maximum supported value is 512 and the
1da177e4
LT
464 minimum value which makes sense is 2.
465
466 This is purely to save memory - each supported CPU adds
467 approximately sixteen kilobytes to the kernel image.
468
469config HOTPLUG_CPU
6f9a3c33 470 def_bool y
1da177e4 471
3a368f74
PH
472config NUMA
473 bool "NUMA support"
67626fad 474 depends on SCHED_TOPOLOGY
3a368f74
PH
475 default n
476 help
477 Enable NUMA support
478
479 This option adds NUMA support to the kernel.
480
3a368f74 481config NODES_SHIFT
701dc81e 482 int
a9ee6cf5 483 depends on NUMA
701dc81e 484 default "1"
9236b4dd
HC
485
486config SCHED_SMT
487 def_bool n
c29a7baf 488
8d11e021 489config SCHED_MC
83a24e32 490 def_bool n
8d11e021 491
4cb14bc8 492config SCHED_BOOK
10ad34bc
MS
493 def_bool n
494
adac0f1e
HC
495config SCHED_DRAWER
496 def_bool n
497
10ad34bc 498config SCHED_TOPOLOGY
6f9a3c33 499 def_bool y
10ad34bc 500 prompt "Topology scheduler support"
10ad34bc 501 select SCHED_SMT
83a24e32 502 select SCHED_MC
10ad34bc 503 select SCHED_BOOK
adac0f1e 504 select SCHED_DRAWER
4cb14bc8 505 help
10ad34bc
MS
506 Topology scheduler support improves the CPU scheduler's decision
507 making when dealing with machines that have multi-threading,
508 multiple cores or multiple books.
4cb14bc8 509
8636a1f9 510source "kernel/Kconfig.hz"
1da177e4 511
bdea9f6f
PR
512config KEXEC
513 def_bool y
514 select KEXEC_CORE
515
516config KEXEC_FILE
517 bool "kexec file based system call"
518 select KEXEC_CORE
bdea9f6f
PR
519 depends on CRYPTO
520 depends on CRYPTO_SHA256
521 depends on CRYPTO_SHA256_S390
522 help
523 Enable the kexec file based system call. In contrast to the normal
524 kexec system call this system call takes file descriptors for the
525 kernel and initramfs as arguments.
526
527config ARCH_HAS_KEXEC_PURGATORY
528 def_bool y
529 depends on KEXEC_FILE
530
99d5cadf 531config KEXEC_SIG
e23a8020 532 bool "Verify kernel signature during kexec_file_load() syscall"
c8424e77 533 depends on KEXEC_FILE && MODULE_SIG_FORMAT
e23a8020
PR
534 help
535 This option makes kernel signature verification mandatory for
536 the kexec_file_load() syscall.
537
538 In addition to that option, you need to enable signature
539 verification for the corresponding kernel image type being
540 loaded in order for this to work.
541
4c637cd8
HF
542config ARCH_RANDOM
543 def_bool y
544 prompt "s390 architectural random number generation API"
545 help
546 Enable the s390 architectural random number generation API
547 to provide random data for all consumers within the Linux
548 kernel.
549
550 When enabled the arch_random_* functions declared in linux/random.h
551 are implemented. The implementation is based on the s390 CPACF
552 instruction subfunction TRNG which provides a real true random
553 number generator.
554
555 If unsure, say Y.
556
d768bd89
MS
557config KERNEL_NOBP
558 def_bool n
559 prompt "Enable modified branch prediction for the kernel by default"
560 help
561 If this option is selected the kernel will switch to a modified
562 branch prediction mode if the firmware interface is available.
563 The modified branch prediction mode improves the behaviour in
564 regard to speculative execution.
565
566 With the option enabled the kernel parameter "nobp=0" or "nospec"
567 can be used to run the kernel in the normal branch prediction mode.
568
569 With the option disabled the modified branch prediction mode is
570 enabled with the "nobp=1" kernel parameter.
571
572 If unsure, say N.
573
f19fbd5e
MS
574config EXPOLINE
575 def_bool n
576 prompt "Avoid speculative indirect branches in the kernel"
577 help
578 Compile the kernel with the expoline compiler options to guard
579 against kernel-to-user data leaks by avoiding speculative indirect
580 branches.
581 Requires a compiler with -mindirect-branch=thunk support for full
582 protection. The kernel may run slower.
583
584 If unsure, say N.
585
586choice
587 prompt "Expoline default"
588 depends on EXPOLINE
589 default EXPOLINE_FULL
590
591config EXPOLINE_OFF
592 bool "spectre_v2=off"
593
6e179d64 594config EXPOLINE_AUTO
f19fbd5e
MS
595 bool "spectre_v2=auto"
596
597config EXPOLINE_FULL
598 bool "spectre_v2=on"
599
600endchoice
601
805bc0bc
GS
602config RELOCATABLE
603 bool "Build a relocatable kernel"
604 select MODULE_REL_CRCS if MODVERSIONS
605 default y
606 help
607 This builds a kernel image that retains relocation information
608 so it can be loaded at an arbitrary address.
609 The kernel is linked as a position-independent executable (PIE)
610 and contains dynamic relocations which are processed early in the
611 bootup process.
612 The relocations make the kernel image about 15% larger (compressed
613 10%), but are discarded at runtime.
614
b2d24b97
GS
615config RANDOMIZE_BASE
616 bool "Randomize the address of the kernel image (KASLR)"
617 depends on RELOCATABLE
618 default y
619 help
620 In support of Kernel Address Space Layout Randomization (KASLR),
621 this randomizes the address at which the kernel image is loaded,
622 as a security feature that deters exploit attempts relying on
623 knowledge of the location of kernel internals.
624
843c48fd 625endmenu
1da177e4 626
843c48fd 627menu "Memory setup"
1d057720 628
843c48fd 629config ARCH_SPARSEMEM_ENABLE
6f9a3c33 630 def_bool y
843c48fd
JG
631 select SPARSEMEM_VMEMMAP_ENABLE
632 select SPARSEMEM_VMEMMAP
e65e1fc2 633
843c48fd
JG
634config ARCH_SPARSEMEM_DEFAULT
635 def_bool y
1da177e4 636
b8402b95
HC
637config MAX_PHYSMEM_BITS
638 int "Maximum size of supported physical memory in bits (42-53)"
639 range 42 53
640 default "46"
641 help
642 This option specifies the maximum supported size of physical memory
643 in bits. Supported is any size between 2^42 (4TB) and 2^53 (8PB).
644 Increasing the number of bits also increases the kernel image size.
645 By default 46 bits (64TB) are supported.
646
1da177e4 647config PACK_STACK
6f9a3c33
MS
648 def_bool y
649 prompt "Pack kernel stack"
1da177e4
LT
650 help
651 This option enables the compiler option -mkernel-backchain if it
652 is available. If the option is available the compiler supports
653 the new stack layout which dramatically reduces the minimum stack
654 frame size. With an old compiler a non-leaf function needs a
655 minimum of 96 bytes on 31 bit and 160 bytes on 64 bit. With
656 -mkernel-backchain the minimum size drops to 16 byte on 31 bit
657 and 24 byte on 64 bit.
658
659 Say Y if you are unsure.
660
1da177e4 661config CHECK_STACK
6f9a3c33 662 def_bool y
ce3dc447 663 depends on !VMAP_STACK
6f9a3c33 664 prompt "Detect kernel stack overflow"
1da177e4
LT
665 help
666 This option enables the compiler option -mstack-guard and
667 -mstack-size if they are available. If the compiler supports them
668 it will emit additional code to each function prolog to trigger
669 an illegal operation if the kernel stack is about to overflow.
670
671 Say N if you are unsure.
672
673config STACK_GUARD
674 int "Size of the guard area (128-1024)"
675 range 128 1024
676 depends on CHECK_STACK
677 default "256"
678 help
679 This allows you to specify the size of the guard area at the lower
680 end of the kernel stack. If the kernel stack points into the guard
681 area on function entry an illegal operation is triggered. The size
682 needs to be a power of 2. Please keep in mind that the size of an
683 interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit.
684 The minimum size for the stack guard should be 256 for 31 bit and
685 512 for 64 bit.
686
843c48fd 687endmenu
3f22ab27 688
843c48fd 689menu "I/O subsystem"
1da177e4 690
1da177e4 691config QDIO
6f9a3c33
MS
692 def_tristate y
693 prompt "QDIO support"
a7f7f624 694 help
8129ee16 695 This driver provides the Queued Direct I/O base support for
efca13bc 696 IBM System z.
1da177e4
LT
697
698 To compile this driver as a module, choose M here: the
699 module will be called qdio.
700
701 If unsure, say Y.
702
c8717a3d
JG
703if PCI
704
705config PCI_NR_FUNCTIONS
706 int "Maximum number of PCI functions (1-4096)"
707 range 1 4096
10e59217 708 default "512"
c8717a3d
JG
709 help
710 This allows you to specify the maximum number of PCI functions which
711 this kernel will support.
712
8b96d971 713endif # PCI
c8717a3d 714
c8717a3d
JG
715config HAS_IOMEM
716 def_bool PCI
717
9d92a7e1 718config CHSC_SCH
d9c11b1e 719 def_tristate m
6f9a3c33 720 prompt "Support for CHSC subchannels"
9d92a7e1
CH
721 help
722 This driver allows usage of CHSC subchannels. A CHSC subchannel
723 is usually present on LPAR only.
724 The driver creates a device /dev/chsc, which may be used to
725 obtain I/O configuration information about the machine and
726 to issue asynchronous chsc commands (DANGEROUS).
727 You will usually only want to use this interface on a special
728 LPAR designated for system management.
729
730 To compile this driver as a module, choose M here: the
731 module will be called chsc_sch.
732
733 If unsure, say N.
734
1d1c8f78
SO
735config SCM_BUS
736 def_bool y
1d1c8f78
SO
737 prompt "SCM bus driver"
738 help
739 Bus driver for Storage Class Memory.
740
eadb86ab
SO
741config EADM_SCH
742 def_tristate m
743 prompt "Support for EADM subchannels"
744 depends on SCM_BUS
745 help
746 This driver allows usage of EADM subchannels. EADM subchannels act
747 as a communication vehicle for SCM increments.
748
749 To compile this driver as a module, choose M here: the
750 module will be called eadm_sch.
751
63f1934d
DJS
752config VFIO_CCW
753 def_tristate n
754 prompt "Support for VFIO-CCW subchannels"
84cd8fc4 755 depends on S390_CCW_IOMMU && VFIO_MDEV
63f1934d
DJS
756 help
757 This driver allows usage of I/O subchannels via VFIO-CCW.
758
759 To compile this driver as a module, choose M here: the
760 module will be called vfio_ccw.
761
1fde5734
TK
762config VFIO_AP
763 def_tristate n
764 prompt "VFIO support for AP devices"
af3ab3f9 765 depends on S390_AP_IOMMU && VFIO_MDEV && KVM
929a343b 766 depends on ZCRYPT
1fde5734
TK
767 help
768 This driver grants access to Adjunct Processor (AP) devices
769 via the VFIO mediated device interface.
770
771 To compile this driver as a module, choose M here: the module
772 will be called vfio_ap.
773
843c48fd
JG
774endmenu
775
776menu "Dump support"
777
778config CRASH_DUMP
779 bool "kernel crash dumps"
843c48fd
JG
780 select KEXEC
781 help
782 Generate crash dump after being started by kexec.
783 Crash dump kernels are loaded in the main kernel with kexec-tools
784 into a specially reserved region and then later executed after
785 a crash by kdump/kexec.
8b4a503d 786 Refer to <file:Documentation/s390/zfcpdump.rst> for more details on this.
bf28a597 787 This option also enables s390 zfcpdump.
8b4a503d 788 See also <file:Documentation/s390/zfcpdump.rst>
843c48fd
JG
789
790endmenu
791
843c48fd
JG
792config CCW
793 def_bool y
794
b6ef86e9
UB
795config HAVE_PNETID
796 tristate
797 default (SMC || CCWGROUP)
798
843c48fd 799menu "Virtualization"
684de39b 800
5abb9351
VG
801config PROTECTED_VIRTUALIZATION_GUEST
802 def_bool n
803 prompt "Protected virtualization guest support"
4ce1cf7b 804 select ARCH_HAS_RESTRICTED_VIRTIO_MEMORY_ACCESS
5abb9351
VG
805 help
806 Select this option, if you want to be able to run this
807 kernel as a protected virtualization KVM guest.
808 Protected virtualization capable machines have a mini hypervisor
809 located at machine level (an ultravisor). With help of the
810 Ultravisor, KVM will be able to run "protected" VMs, special
811 VMs whose memory and management data are unavailable to KVM.
812
1da177e4 813config PFAULT
6f9a3c33
MS
814 def_bool y
815 prompt "Pseudo page fault support"
1da177e4
LT
816 help
817 Select this option, if you want to use PFAULT pseudo page fault
818 handling under VM. If running native or in LPAR, this option
819 has no effect. If your VM does not support PFAULT, PAGEEX
820 pseudo page fault handling will be used.
821 Note that VM 4.2 supports PFAULT but has a bug in its
822 implementation that causes some problems.
823 Everybody who wants to run Linux under VM != VM4.2 should select
824 this option.
825
1da177e4 826config CMM
6f9a3c33
MS
827 def_tristate n
828 prompt "Cooperative memory management"
1da177e4
LT
829 help
830 Select this option, if you want to enable the kernel interface
831 to reduce the memory size of the system. This is accomplished
832 by allocating pages of memory and put them "on hold". This only
833 makes sense for a system running under VM where the unused pages
834 will be reused by VM for other guest systems. The interface
835 allows an external monitor to balance memory of many systems.
836 Everybody who wants to run Linux under VM should select this
837 option.
838
1da177e4 839config CMM_IUCV
6f9a3c33
MS
840 def_bool y
841 prompt "IUCV special message interface to cooperative memory management"
1da177e4
LT
842 depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
843 help
844 Select this option to enable the special message interface to
845 the cooperative memory management.
846
1da177e4 847config APPLDATA_BASE
6f9a3c33
MS
848 def_bool n
849 prompt "Linux - VM Monitor Stream, base infrastructure"
5d3516b3 850 depends on PROC_SYSCTL
1da177e4
LT
851 help
852 This provides a kernel interface for creating and updating z/VM APPLDATA
853 monitor records. The monitor records are updated at certain time
854 intervals, once the timer is started.
855 Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
856 i.e. enables or disables monitoring on the Linux side.
857 A custom interval value (in seconds) can be written to
858 /proc/appldata/interval.
859
860 Defaults are 60 seconds interval and timer off.
861 The /proc entries can also be read from, showing the current settings.
862
863config APPLDATA_MEM
6f9a3c33
MS
864 def_tristate m
865 prompt "Monitor memory management statistics"
62fb2ba3 866 depends on APPLDATA_BASE && VM_EVENT_COUNTERS
1da177e4
LT
867 help
868 This provides memory management related data to the Linux - VM Monitor
869 Stream, like paging/swapping rate, memory utilisation, etc.
870 Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM
871 APPLDATA monitor record, i.e. enables or disables monitoring this record
872 on the z/VM side.
873
874 Default is disabled.
875 The /proc entry can also be read from, showing the current settings.
876
877 This can also be compiled as a module, which will be called
878 appldata_mem.o.
879
880config APPLDATA_OS
6f9a3c33
MS
881 def_tristate m
882 prompt "Monitor OS statistics"
1da177e4
LT
883 depends on APPLDATA_BASE
884 help
885 This provides OS related data to the Linux - VM Monitor Stream, like
886 CPU utilisation, etc.
887 Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
888 APPLDATA monitor record, i.e. enables or disables monitoring this record
889 on the z/VM side.
890
891 Default is disabled.
892 This can also be compiled as a module, which will be called
893 appldata_os.o.
894
895config APPLDATA_NET_SUM
6f9a3c33
MS
896 def_tristate m
897 prompt "Monitor overall network statistics"
70193af9 898 depends on APPLDATA_BASE && NET
1da177e4
LT
899 help
900 This provides network related data to the Linux - VM Monitor Stream,
901 currently there is only a total sum of network I/O statistics, no
902 per-interface data.
903 Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
904 APPLDATA monitor record, i.e. enables or disables monitoring this record
905 on the z/VM side.
906
907 Default is disabled.
908 This can also be compiled as a module, which will be called
909 appldata_net_sum.o.
910
24bbb1fa 911config S390_HYPFS_FS
6f9a3c33
MS
912 def_bool y
913 prompt "s390 hypervisor file system support"
24bbb1fa 914 select SYS_HYPERVISOR
24bbb1fa
MH
915 help
916 This is a virtual file system intended to provide accounting
917 information in an s390 hypervisor environment.
918
843c48fd 919source "arch/s390/kvm/Kconfig"
411ed322 920
fa587743 921config S390_GUEST
6f9a3c33 922 def_bool y
510cf5a6 923 prompt "s390 support for virtio devices"
79b6f7fb 924 select TTY
80629b0b 925 select VIRTUALIZATION
fa587743 926 select VIRTIO
fa587743 927 help
bdd1fc27
CH
928 Enabling this option adds support for virtio based paravirtual device
929 drivers on s390.
1da177e4 930
20766c08 931 Select this option if you want to run the kernel as a guest under
bdd1fc27 932 the KVM hypervisor.
155af2f9
HJP
933
934endmenu
badbf397
IL
935
936menu "Selftests"
937
938config S390_UNWIND_SELFTEST
939 def_tristate n
940 prompt "Test unwind functions"
941 help
942 This option enables s390 specific stack unwinder testing kernel
943 module. This option is not useful for distributions or general
944 kernels, but only for kernel developers working on architecture code.
945
946 Say N if you are unsure.
947
948endmenu