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