File Index
Files and directories
Sign in
FILE

Kconfig

File preview with syntax highlighting.

linux-6.19.14/arch/s390/Kconfig KCONFIG
   1# SPDX-License-Identifier: GPL-2.0
   2config MMU
   3	def_bool y
   4
   5config CPU_BIG_ENDIAN
   6	def_bool y
   7
   8config LOCKDEP_SUPPORT
   9	def_bool y
  10
  11config STACKTRACE_SUPPORT
  12	def_bool y
  13
  14config ARCH_HAS_ILOG2_U32
  15	def_bool n
  16
  17config ARCH_HAS_ILOG2_U64
  18	def_bool n
  19
  20config ARCH_PROC_KCORE_TEXT
  21	def_bool y
  22
  23config GENERIC_HWEIGHT
  24	def_bool !HAVE_MARCH_Z196_FEATURES
  25
  26config GENERIC_BUG
  27	def_bool y if BUG
  28
  29config GENERIC_BUG_RELATIVE_POINTERS
  30	def_bool y
  31
  32config GENERIC_LOCKBREAK
  33	def_bool y if PREEMPTION
  34
  35config PGSTE
  36	def_bool y if KVM
  37
  38config AUDIT_ARCH
  39	def_bool y
  40
  41config NO_IOPORT_MAP
  42	def_bool y
  43
  44config ARCH_SUPPORTS_UPROBES
  45	def_bool y
  46
  47config KASAN_SHADOW_OFFSET
  48	hex
  49	depends on KASAN
  50	default 0x1C000000000000
  51
  52config CC_HAS_BUILTIN_FFS
  53	def_bool !(CC_IS_GCC && GCC_VERSION < 160000)
  54	help
  55	  GCC versions before 16.0.0 generate library calls to ffs()
  56	  for __builtin_ffs() even when __has_builtin(__builtin_ffs)
  57	  is true.
  58
  59config CC_ASM_FLAG_OUTPUT_BROKEN
  60	def_bool CC_IS_GCC && GCC_VERSION < 140200
  61	help
  62	  GCC versions before 14.2.0 may die with an internal
  63	  compiler error in some configurations if flag output
  64	  operands are used within inline assemblies.
  65
  66config CC_HAS_ASM_AOR_FORMAT_FLAGS
  67	def_bool !(CC_IS_CLANG && CLANG_VERSION < 190100)
  68	help
  69	  Clang versions before 19.1.0 do not support A,
  70	  O, and R inline assembly format flags.
  71
  72config CC_HAS_STACKPROTECTOR_GLOBAL
  73	def_bool $(cc-option, -mstack-protector-guard=global -mstack-protector-guard-record)
  74
  75config S390
  76	def_bool y
  77	#
  78	# Note: keep this list sorted alphabetically
  79	#
  80	imply IMA_SECURE_AND_OR_TRUSTED_BOOT
  81	select ALTERNATE_USER_ADDRESS_SPACE
  82	select ARCH_32BIT_USTAT_F_TINODE
  83	select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE
  84	select ARCH_ENABLE_MEMORY_HOTPLUG if SPARSEMEM
  85	select ARCH_ENABLE_MEMORY_HOTREMOVE
  86	select ARCH_ENABLE_SPLIT_PMD_PTLOCK if PGTABLE_LEVELS > 2
  87	select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE
  88	select ARCH_HAS_CPU_FINALIZE_INIT
  89	select ARCH_HAS_CURRENT_STACK_POINTER
  90	select ARCH_HAS_DEBUG_VIRTUAL
  91	select ARCH_HAS_DEBUG_VM_PGTABLE
  92	select ARCH_HAS_DEBUG_WX
  93	select ARCH_HAS_DEVMEM_IS_ALLOWED
  94	select ARCH_HAS_DMA_OPS if PCI
  95	select ARCH_HAS_ELF_RANDOMIZE
  96	select ARCH_HAS_FORCE_DMA_UNENCRYPTED
  97	select ARCH_HAS_FORTIFY_SOURCE
  98	select ARCH_HAS_GCOV_PROFILE_ALL
  99	select ARCH_HAS_GIGANTIC_PAGE
 100	select ARCH_HAS_KCOV
 101	select ARCH_HAS_MEMBARRIER_SYNC_CORE
 102	select ARCH_HAS_MEM_ENCRYPT
 103	select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS
 104	select ARCH_HAS_PREEMPT_LAZY
 105	select ARCH_HAS_PTDUMP
 106	select ARCH_HAS_PTE_SPECIAL
 107	select ARCH_HAS_SCALED_CPUTIME
 108	select ARCH_HAS_SET_DIRECT_MAP
 109	select ARCH_HAS_SET_MEMORY
 110	select ARCH_HAS_STRICT_KERNEL_RWX
 111	select ARCH_HAS_STRICT_MODULE_RWX
 112	select ARCH_HAS_SYSCALL_WRAPPER
 113	select ARCH_HAS_UBSAN
 114	select ARCH_HAS_VDSO_TIME_DATA
 115	select ARCH_HAVE_NMI_SAFE_CMPXCHG
 116	select ARCH_HAVE_TRACE_MMIO_ACCESS
 117	select ARCH_INLINE_READ_LOCK
 118	select ARCH_INLINE_READ_LOCK_BH
 119	select ARCH_INLINE_READ_LOCK_IRQ
 120	select ARCH_INLINE_READ_LOCK_IRQSAVE
 121	select ARCH_INLINE_READ_TRYLOCK
 122	select ARCH_INLINE_READ_UNLOCK
 123	select ARCH_INLINE_READ_UNLOCK_BH
 124	select ARCH_INLINE_READ_UNLOCK_IRQ
 125	select ARCH_INLINE_READ_UNLOCK_IRQRESTORE
 126	select ARCH_INLINE_SPIN_LOCK
 127	select ARCH_INLINE_SPIN_LOCK_BH
 128	select ARCH_INLINE_SPIN_LOCK_IRQ
 129	select ARCH_INLINE_SPIN_LOCK_IRQSAVE
 130	select ARCH_INLINE_SPIN_TRYLOCK
 131	select ARCH_INLINE_SPIN_TRYLOCK_BH
 132	select ARCH_INLINE_SPIN_UNLOCK
 133	select ARCH_INLINE_SPIN_UNLOCK_BH
 134	select ARCH_INLINE_SPIN_UNLOCK_IRQ
 135	select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
 136	select ARCH_INLINE_WRITE_LOCK
 137	select ARCH_INLINE_WRITE_LOCK_BH
 138	select ARCH_INLINE_WRITE_LOCK_IRQ
 139	select ARCH_INLINE_WRITE_LOCK_IRQSAVE
 140	select ARCH_INLINE_WRITE_TRYLOCK
 141	select ARCH_INLINE_WRITE_UNLOCK
 142	select ARCH_INLINE_WRITE_UNLOCK_BH
 143	select ARCH_INLINE_WRITE_UNLOCK_IRQ
 144	select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
 145	select ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE
 146	select ARCH_STACKWALK
 147	select ARCH_SUPPORTS_ATOMIC_RMW
 148	select ARCH_SUPPORTS_DEBUG_PAGEALLOC
 149	select ARCH_SUPPORTS_HUGETLBFS
 150	select ARCH_SUPPORTS_INT128 if CC_HAS_INT128 && CC_IS_CLANG
 151	select ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPINGS
 152	select ARCH_SUPPORTS_NUMA_BALANCING
 153	select ARCH_SUPPORTS_PER_VMA_LOCK
 154	select ARCH_USE_BUILTIN_BSWAP
 155	select ARCH_USE_CMPXCHG_LOCKREF
 156	select ARCH_USE_SYM_ANNOTATIONS
 157	select ARCH_WANTS_NO_INSTR
 158	select ARCH_WANT_DEFAULT_BPF_JIT
 159	select ARCH_WANT_IPC_PARSE_VERSION
 160	select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
 161	select ARCH_WANT_KERNEL_PMD_MKWRITE
 162	select ARCH_WANT_LD_ORPHAN_WARN
 163	select ARCH_WANTS_THP_SWAP
 164	select BUILDTIME_TABLE_SORT
 165	select CLONE_BACKWARDS2
 166	select DCACHE_WORD_ACCESS if !KMSAN
 167	select DYNAMIC_FTRACE if FUNCTION_TRACER
 168	select FUNCTION_ALIGNMENT_8B if CC_IS_GCC
 169	select FUNCTION_ALIGNMENT_16B if !CC_IS_GCC
 170	select GENERIC_ALLOCATOR
 171	select GENERIC_CPU_DEVICES
 172	select GENERIC_CPU_AUTOPROBE
 173	select GENERIC_CPU_VULNERABILITIES
 174	select GENERIC_ENTRY
 175	select GENERIC_GETTIMEOFDAY
 176	select GENERIC_SMP_IDLE_THREAD
 177	select GENERIC_TIME_VSYSCALL
 178	select GENERIC_IOREMAP if PCI
 179	select HAVE_ALIGNED_STRUCT_PAGE
 180	select HAVE_ARCH_AUDITSYSCALL
 181	select HAVE_ARCH_JUMP_LABEL
 182	select HAVE_ARCH_JUMP_LABEL_RELATIVE
 183	select HAVE_ARCH_KASAN
 184	select HAVE_ARCH_KASAN_VMALLOC
 185	select HAVE_ARCH_KCSAN
 186	select HAVE_ARCH_KMSAN
 187	select HAVE_ARCH_KFENCE
 188	select HAVE_ARCH_KSTACK_ERASE
 189	select HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET
 190	select HAVE_ARCH_SECCOMP_FILTER
 191	select HAVE_ARCH_SOFT_DIRTY
 192	select HAVE_ARCH_TRACEHOOK
 193	select HAVE_ARCH_TRANSPARENT_HUGEPAGE
 194	select HAVE_ARCH_VMAP_STACK
 195	select HAVE_ASM_MODVERSIONS
 196	select HAVE_BUILDTIME_MCOUNT_SORT
 197	select HAVE_CMPXCHG_DOUBLE
 198	select HAVE_CMPXCHG_LOCAL
 199	select HAVE_DEBUG_KMEMLEAK
 200	select HAVE_DMA_CONTIGUOUS
 201	select HAVE_DYNAMIC_FTRACE
 202	select HAVE_DYNAMIC_FTRACE_WITH_ARGS
 203	select HAVE_FTRACE_REGS_HAVING_PT_REGS
 204	select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
 205	select HAVE_DYNAMIC_FTRACE_WITH_REGS
 206	select HAVE_EBPF_JIT if HAVE_MARCH_Z196_FEATURES
 207	select HAVE_EFFICIENT_UNALIGNED_ACCESS
 208	select HAVE_GENERIC_TIF_BITS
 209	select HAVE_GUP_FAST
 210	select HAVE_FENTRY
 211	select HAVE_FTRACE_GRAPH_FUNC
 212	select HAVE_FUNCTION_ARG_ACCESS_API
 213	select HAVE_FUNCTION_ERROR_INJECTION
 214	select HAVE_FUNCTION_GRAPH_FREGS
 215	select HAVE_FUNCTION_GRAPH_TRACER
 216	select HAVE_FUNCTION_TRACER
 217	select HAVE_GCC_PLUGINS
 218	select HAVE_GENERIC_VDSO
 219	select HAVE_IOREMAP_PROT if PCI
 220	select HAVE_KERNEL_BZIP2
 221	select HAVE_KERNEL_GZIP
 222	select HAVE_KERNEL_LZ4
 223	select HAVE_KERNEL_LZMA
 224	select HAVE_KERNEL_LZO
 225	select HAVE_KERNEL_UNCOMPRESSED
 226	select HAVE_KERNEL_XZ
 227	select HAVE_KERNEL_ZSTD
 228	select HAVE_KPROBES
 229	select HAVE_KPROBES_ON_FTRACE
 230	select HAVE_KRETPROBES
 231	select HAVE_LIVEPATCH
 232	select HAVE_MEMBLOCK_PHYS_MAP
 233	select HAVE_MOD_ARCH_SPECIFIC
 234	select HAVE_NMI
 235	select HAVE_NOP_MCOUNT
 236	select HAVE_PAGE_SIZE_4KB
 237	select HAVE_PCI
 238	select HAVE_PERF_EVENTS
 239	select HAVE_PERF_REGS
 240	select HAVE_PERF_USER_STACK_DUMP
 241	select HAVE_POSIX_CPU_TIMERS_TASK_WORK
 242	select HAVE_PREEMPT_DYNAMIC_KEY
 243	select HAVE_REGS_AND_STACK_ACCESS_API
 244	select HAVE_RELIABLE_STACKTRACE
 245	select HAVE_RETHOOK
 246	select HAVE_RSEQ
 247	select HAVE_SAMPLE_FTRACE_DIRECT
 248	select HAVE_SAMPLE_FTRACE_DIRECT_MULTI
 249	select HAVE_SETUP_PER_CPU_AREA
 250	select HAVE_SOFTIRQ_ON_OWN_STACK
 251	select HAVE_STACKPROTECTOR if CC_HAS_STACKPROTECTOR_GLOBAL
 252	select HAVE_SYSCALL_TRACEPOINTS
 253	select HAVE_VIRT_CPU_ACCOUNTING
 254	select HAVE_VIRT_CPU_ACCOUNTING_IDLE
 255	select HOTPLUG_SMT
 256	select IOMMU_HELPER		if PCI
 257	select IOMMU_SUPPORT		if PCI
 258	select IRQ_MSI_LIB		if PCI
 259	select KASAN_VMALLOC if KASAN
 260	select LOCK_MM_AND_FIND_VMA
 261	select MMU_GATHER_MERGE_VMAS
 262	select MMU_GATHER_NO_GATHER
 263	select MMU_GATHER_RCU_TABLE_FREE
 264	select MODULES_USE_ELF_RELA
 265	select NEED_DMA_MAP_STATE	if PCI
 266	select NEED_PER_CPU_EMBED_FIRST_CHUNK
 267	select NEED_PROC_VMCORE_DEVICE_RAM if PROC_VMCORE
 268	select NEED_SG_DMA_LENGTH	if PCI
 269	select OLD_SIGACTION
 270	select OLD_SIGSUSPEND3
 271	select PCI_DOMAINS		if PCI
 272	select PCI_MSI			if PCI
 273	select PCI_MSI_ARCH_FALLBACKS	if PCI_MSI
 274	select PCI_QUIRKS		if PCI
 275	select SPARSE_IRQ
 276	select SWIOTLB
 277	select SYSCTL_EXCEPTION_TRACE
 278	select SYSTEM_DATA_VERIFICATION if KEXEC_SIG
 279	select THREAD_INFO_IN_TASK
 280	select TRACE_IRQFLAGS_SUPPORT
 281	select TTY
 282	select USER_STACKTRACE_SUPPORT
 283	select VDSO_GETRANDOM
 284	select VIRT_CPU_ACCOUNTING
 285	select VMAP_STACK
 286	select ZONE_DMA
 287	# Note: keep the above list sorted alphabetically
 288
 289config SCHED_OMIT_FRAME_POINTER
 290	def_bool y
 291
 292config PGTABLE_LEVELS
 293	int
 294	default 5
 295
 296source "kernel/livepatch/Kconfig"
 297
 298config ARCH_SUPPORTS_KEXEC
 299	def_bool y
 300
 301config ARCH_SUPPORTS_KEXEC_FILE
 302	def_bool y
 303
 304config ARCH_SUPPORTS_KEXEC_SIG
 305	def_bool y
 306
 307config ARCH_SUPPORTS_KEXEC_PURGATORY
 308	def_bool y
 309
 310config ARCH_SUPPORTS_CRASH_DUMP
 311	def_bool y
 312	help
 313	  Refer to <file:Documentation/arch/s390/zfcpdump.rst> for more details on this.
 314	  This option also enables s390 zfcpdump.
 315	  See also <file:Documentation/arch/s390/zfcpdump.rst>
 316
 317config ARCH_DEFAULT_CRASH_DUMP
 318	def_bool y
 319
 320menu "Processor type and features"
 321
 322config HAVE_MARCH_Z10_FEATURES
 323	def_bool n
 324
 325config HAVE_MARCH_Z196_FEATURES
 326	def_bool n
 327	select HAVE_MARCH_Z10_FEATURES
 328
 329config HAVE_MARCH_ZEC12_FEATURES
 330	def_bool n
 331	select HAVE_MARCH_Z196_FEATURES
 332
 333config HAVE_MARCH_Z13_FEATURES
 334	def_bool n
 335	select HAVE_MARCH_ZEC12_FEATURES
 336
 337config HAVE_MARCH_Z14_FEATURES
 338	def_bool n
 339	select HAVE_MARCH_Z13_FEATURES
 340
 341config HAVE_MARCH_Z15_FEATURES
 342	def_bool n
 343	select HAVE_MARCH_Z14_FEATURES
 344
 345config HAVE_MARCH_Z16_FEATURES
 346	def_bool n
 347	select HAVE_MARCH_Z15_FEATURES
 348
 349config HAVE_MARCH_Z17_FEATURES
 350	def_bool n
 351	select HAVE_MARCH_Z16_FEATURES
 352
 353choice
 354	prompt "Processor type"
 355	default MARCH_Z196
 356
 357config MARCH_Z10
 358	bool "IBM System z10"
 359	select HAVE_MARCH_Z10_FEATURES
 360	depends on $(cc-option,-march=z10)
 361	help
 362	  Select this to enable optimizations for IBM System z10 (2097 and 2098
 363	  series). This is the oldest machine generation currently supported.
 364
 365config MARCH_Z196
 366	bool "IBM zEnterprise 114 and 196"
 367	select HAVE_MARCH_Z196_FEATURES
 368	depends on $(cc-option,-march=z196)
 369	help
 370	  Select this to enable optimizations for IBM zEnterprise 114 and 196
 371	  (2818 and 2817 series). The kernel will be slightly faster but will
 372	  not work on older machines.
 373
 374config MARCH_ZEC12
 375	bool "IBM zBC12 and zEC12"
 376	select HAVE_MARCH_ZEC12_FEATURES
 377	depends on $(cc-option,-march=zEC12)
 378	help
 379	  Select this to enable optimizations for IBM zBC12 and zEC12 (2828 and
 380	  2827 series). The kernel will be slightly faster but will not work on
 381	  older machines.
 382
 383config MARCH_Z13
 384	bool "IBM z13s and z13"
 385	select HAVE_MARCH_Z13_FEATURES
 386	depends on $(cc-option,-march=z13)
 387	help
 388	  Select this to enable optimizations for IBM z13s and z13 (2965 and
 389	  2964 series). The kernel will be slightly faster but will not work on
 390	  older machines.
 391
 392config MARCH_Z14
 393	bool "IBM z14 ZR1 and z14"
 394	select HAVE_MARCH_Z14_FEATURES
 395	depends on $(cc-option,-march=z14)
 396	help
 397	  Select this to enable optimizations for IBM z14 ZR1 and z14 (3907
 398	  and 3906 series). The kernel will be slightly faster but will not
 399	  work on older machines.
 400
 401config MARCH_Z15
 402	bool "IBM z15"
 403	select HAVE_MARCH_Z15_FEATURES
 404	depends on $(cc-option,-march=z15)
 405	help
 406	  Select this to enable optimizations for IBM z15 (8562
 407	  and 8561 series). The kernel will be slightly faster but will not
 408	  work on older machines.
 409
 410config MARCH_Z16
 411	bool "IBM z16"
 412	select HAVE_MARCH_Z16_FEATURES
 413	depends on $(cc-option,-march=z16)
 414	help
 415	  Select this to enable optimizations for IBM z16 (3931 and
 416	  3932 series).
 417
 418config MARCH_Z17
 419	bool "IBM z17"
 420	select HAVE_MARCH_Z17_FEATURES
 421	depends on $(cc-option,-march=z17)
 422	help
 423	  Select this to enable optimizations for IBM z17 (9175 and
 424	  9176 series).
 425
 426endchoice
 427
 428config MARCH_Z10_TUNE
 429	def_bool TUNE_Z10 || MARCH_Z10 && TUNE_DEFAULT
 430
 431config MARCH_Z196_TUNE
 432	def_bool TUNE_Z196 || MARCH_Z196 && TUNE_DEFAULT
 433
 434config MARCH_ZEC12_TUNE
 435	def_bool TUNE_ZEC12 || MARCH_ZEC12 && TUNE_DEFAULT
 436
 437config MARCH_Z13_TUNE
 438	def_bool TUNE_Z13 || MARCH_Z13 && TUNE_DEFAULT
 439
 440config MARCH_Z14_TUNE
 441	def_bool TUNE_Z14 || MARCH_Z14 && TUNE_DEFAULT
 442
 443config MARCH_Z15_TUNE
 444	def_bool TUNE_Z15 || MARCH_Z15 && TUNE_DEFAULT
 445
 446config MARCH_Z16_TUNE
 447	def_bool TUNE_Z16 || MARCH_Z16 && TUNE_DEFAULT
 448
 449config MARCH_Z17_TUNE
 450	def_bool TUNE_Z17 || MARCH_Z17 && TUNE_DEFAULT
 451
 452choice
 453	prompt "Tune code generation"
 454	default TUNE_DEFAULT
 455	help
 456	  Cause the compiler to tune (-mtune) the generated code for a machine.
 457	  This will make the code run faster on the selected machine but
 458	  somewhat slower on other machines.
 459	  This option only changes how the compiler emits instructions, not the
 460	  selection of instructions itself, so the resulting kernel will run on
 461	  all other machines.
 462
 463config TUNE_DEFAULT
 464	bool "Default"
 465	help
 466	  Tune the generated code for the target processor for which the kernel
 467	  will be compiled.
 468
 469config TUNE_Z10
 470	bool "IBM System z10"
 471
 472config TUNE_Z196
 473	bool "IBM zEnterprise 114 and 196"
 474	depends on $(cc-option,-mtune=z196)
 475
 476config TUNE_ZEC12
 477	bool "IBM zBC12 and zEC12"
 478	depends on $(cc-option,-mtune=zEC12)
 479
 480config TUNE_Z13
 481	bool "IBM z13s and z13"
 482	depends on $(cc-option,-mtune=z13)
 483
 484config TUNE_Z14
 485	bool "IBM z14 ZR1 and z14"
 486	depends on $(cc-option,-mtune=z14)
 487
 488config TUNE_Z15
 489	bool "IBM z15"
 490	depends on $(cc-option,-mtune=z15)
 491
 492config TUNE_Z16
 493	bool "IBM z16"
 494	depends on $(cc-option,-mtune=z16)
 495
 496config TUNE_Z17
 497	bool "IBM z17"
 498	depends on $(cc-option,-mtune=z17)
 499
 500endchoice
 501
 502config 64BIT
 503	def_bool y
 504
 505config COMMAND_LINE_SIZE
 506	int "Maximum size of kernel command line"
 507	default 4096
 508	range 896 1048576
 509	help
 510	  This allows you to specify the maximum length of the kernel command
 511	  line.
 512
 513config SMP
 514	def_bool y
 515
 516config NR_CPUS
 517	int "Maximum number of CPUs (2-512)"
 518	range 2 512
 519	default "64"
 520	help
 521	  This allows you to specify the maximum number of CPUs which this
 522	  kernel will support. The maximum supported value is 512 and the
 523	  minimum value which makes sense is 2.
 524
 525	  This is purely to save memory - each supported CPU adds
 526	  approximately sixteen kilobytes to the kernel image.
 527
 528config HOTPLUG_CPU
 529	def_bool y
 530
 531config NUMA
 532	bool "NUMA support"
 533	depends on SCHED_TOPOLOGY
 534	default n
 535	help
 536	  Enable NUMA support
 537
 538	  This option adds NUMA support to the kernel.
 539
 540config NODES_SHIFT
 541	int
 542	depends on NUMA
 543	default "1"
 544
 545config SCHED_TOPOLOGY
 546	def_bool y
 547	prompt "Topology scheduler support"
 548	select ARCH_SUPPORTS_SCHED_SMT
 549	select ARCH_SUPPORTS_SCHED_MC
 550	select SCHED_SMT
 551	select SCHED_MC
 552	help
 553	  Topology scheduler support improves the CPU scheduler's decision
 554	  making when dealing with machines that have multi-threading,
 555	  multiple cores or multiple books.
 556
 557config SCHED_TOPOLOGY_VERTICAL
 558	def_bool y
 559	bool "Use vertical CPU polarization by default"
 560	depends on SCHED_TOPOLOGY
 561	help
 562	  Use vertical CPU polarization by default if available.
 563	  The default CPU polarization is horizontal.
 564
 565config HIPERDISPATCH_ON
 566	def_bool y
 567	bool "Use hiperdispatch on vertical polarization by default"
 568	depends on SCHED_TOPOLOGY
 569	depends on PROC_SYSCTL
 570	help
 571	  Hiperdispatch aims to improve the CPU scheduler's decision
 572	  making when using vertical polarization by adjusting CPU
 573	  capacities dynamically. Set this option to use hiperdispatch
 574	  on vertical polarization by default. This can be overwritten
 575	  by sysctl's s390.hiperdispatch attribute later on.
 576
 577source "kernel/Kconfig.hz"
 578
 579config CERT_STORE
 580	bool "Get user certificates via DIAG320"
 581	depends on KEYS
 582	select CRYPTO_LIB_SHA256
 583	help
 584	  Enable this option if you want to access user-provided secure boot
 585	  certificates via DIAG 0x320.
 586
 587	  These certificates will be made available via the keyring named
 588	  'cert_store'.
 589
 590config KERNEL_NOBP
 591	def_bool n
 592	prompt "Enable modified branch prediction for the kernel by default"
 593	help
 594	  If this option is selected the kernel will switch to a modified
 595	  branch prediction mode if the firmware interface is available.
 596	  The modified branch prediction mode improves the behaviour in
 597	  regard to speculative execution.
 598
 599	  With the option enabled the kernel parameter "nobp=0" or "nospec"
 600	  can be used to run the kernel in the normal branch prediction mode.
 601
 602	  With the option disabled the modified branch prediction mode is
 603	  enabled with the "nobp=1" kernel parameter.
 604
 605	  If unsure, say N.
 606
 607config EXPOLINE
 608	def_bool n
 609	depends on $(cc-option,-mindirect-branch=thunk)
 610	prompt "Avoid speculative indirect branches in the kernel"
 611	help
 612	  Compile the kernel with the expoline compiler options to guard
 613	  against kernel-to-user data leaks by avoiding speculative indirect
 614	  branches.
 615	  Requires a compiler with -mindirect-branch=thunk support for full
 616	  protection. The kernel may run slower.
 617
 618	  If unsure, say N.
 619
 620config EXPOLINE_EXTERN
 621	def_bool EXPOLINE && CC_IS_GCC && GCC_VERSION >= 110200 && \
 622		 $(success,$(srctree)/arch/s390/tools/gcc-thunk-extern.sh $(CC))
 623	help
 624	  Generate expolines as external functions if the compiler supports it.
 625	  This option is required for some tooling like kpatch, if expolines
 626	  are enabled. The kernel is compiled with
 627	  -mindirect-branch=thunk-extern, which requires a newer compiler.
 628
 629choice
 630	prompt "Expoline default"
 631	depends on EXPOLINE
 632	default EXPOLINE_FULL
 633
 634config EXPOLINE_OFF
 635	bool "spectre_v2=off"
 636
 637config EXPOLINE_AUTO
 638	bool "spectre_v2=auto"
 639
 640config EXPOLINE_FULL
 641	bool "spectre_v2=on"
 642
 643endchoice
 644
 645config RELOCATABLE
 646	def_bool y
 647	select ARCH_VMLINUX_NEEDS_RELOCS
 648	help
 649	  This builds a kernel image that retains relocation information
 650	  so it can be loaded at an arbitrary address.
 651	  The relocations make the kernel image about 15% larger (compressed
 652	  10%), but are discarded at runtime.
 653	  Note: this option exists only for documentation purposes, please do
 654	  not remove it.
 655
 656config RANDOMIZE_BASE
 657	bool "Randomize the address of the kernel image (KASLR)"
 658	default y
 659	help
 660	  In support of Kernel Address Space Layout Randomization (KASLR),
 661	  this randomizes the address at which the kernel image is loaded,
 662	  as a security feature that deters exploit attempts relying on
 663	  knowledge of the location of kernel internals.
 664
 665config RANDOMIZE_IDENTITY_BASE
 666	bool "Randomize the address of the identity mapping base"
 667	depends on RANDOMIZE_BASE
 668	default DEBUG_VM
 669	help
 670	  The identity mapping base address is pinned to zero by default.
 671	  Allow randomization of that base to expose otherwise missed
 672	  notion of physical and virtual addresses of data structures.
 673	  That does not have any impact on the base address at which the
 674	  kernel image is loaded.
 675
 676	  If unsure, say N
 677
 678config KERNEL_IMAGE_BASE
 679	hex "Kernel image base address"
 680	range 0x100000 0x1FFFFFE0000000 if !KASAN
 681	range 0x100000 0x1BFFFFE0000000 if KASAN
 682	default 0x3FFE0000000 if !KASAN
 683	default 0x7FFFE0000000 if KASAN
 684	help
 685	  This is the address at which the kernel image is loaded in case
 686	  Kernel Address Space Layout Randomization (KASLR) is disabled.
 687
 688	  In case the Protected virtualization guest support is enabled the
 689	  Ultravisor imposes a virtual address limit. If the value of this
 690	  option leads to the kernel image exceeding the Ultravisor limit,
 691	  this option is ignored and the image is loaded below the limit.
 692
 693	  If the value of this option leads to the kernel image overlapping
 694	  the virtual memory where other data structures are located, this
 695	  option is ignored and the image is loaded above the structures.
 696
 697endmenu
 698
 699menu "Memory setup"
 700
 701config ARCH_SPARSEMEM_ENABLE
 702	def_bool y
 703	select SPARSEMEM_VMEMMAP_ENABLE
 704
 705config ARCH_SPARSEMEM_DEFAULT
 706	def_bool y
 707
 708config MAX_PHYSMEM_BITS
 709	int "Maximum size of supported physical memory in bits (42-53)"
 710	range 42 53
 711	default "46"
 712	help
 713	  This option specifies the maximum supported size of physical memory
 714	  in bits. Supported is any size between 2^42 (4TB) and 2^53 (8PB).
 715	  Increasing the number of bits also increases the kernel image size.
 716	  By default 46 bits (64TB) are supported.
 717
 718endmenu
 719
 720menu "I/O subsystem"
 721
 722config QDIO
 723	def_tristate y
 724	prompt "QDIO support"
 725	help
 726	  This driver provides the Queued Direct I/O base support for
 727	  IBM System z.
 728
 729	  To compile this driver as a module, choose M here: the
 730	  module will be called qdio.
 731
 732	  If unsure, say Y.
 733
 734if PCI
 735
 736config PCI_NR_FUNCTIONS
 737	int "Maximum number of PCI functions (1-4096)"
 738	range 1 4096
 739	default "512"
 740	help
 741	  This allows you to specify the maximum number of PCI functions which
 742	  this kernel will support.
 743
 744endif # PCI
 745
 746config HAS_IOMEM
 747	def_bool PCI
 748
 749config CHSC_SCH
 750	def_tristate m
 751	prompt "Support for CHSC subchannels"
 752	help
 753	  This driver allows usage of CHSC subchannels. A CHSC subchannel
 754	  is usually present on LPAR only.
 755	  The driver creates a device /dev/chsc, which may be used to
 756	  obtain I/O configuration information about the machine and
 757	  to issue asynchronous chsc commands (DANGEROUS).
 758	  You will usually only want to use this interface on a special
 759	  LPAR designated for system management.
 760
 761	  To compile this driver as a module, choose M here: the
 762	  module will be called chsc_sch.
 763
 764	  If unsure, say N.
 765
 766config SCM_BUS
 767	def_bool y
 768	prompt "SCM bus driver"
 769	help
 770	  Bus driver for Storage Class Memory.
 771
 772config EADM_SCH
 773	def_tristate m
 774	prompt "Support for EADM subchannels"
 775	depends on SCM_BUS
 776	help
 777	  This driver allows usage of EADM subchannels. EADM subchannels act
 778	  as a communication vehicle for SCM increments.
 779
 780	  To compile this driver as a module, choose M here: the
 781	  module will be called eadm_sch.
 782
 783config AP
 784	def_tristate y
 785	prompt "Support for Adjunct Processors (ap)"
 786	help
 787	  This driver allows usage to Adjunct Processor (AP) devices via
 788	  the ap bus, cards and queues. Supported Adjunct Processors are
 789	  the CryptoExpress Cards (CEX).
 790
 791	  To compile this driver as a module, choose M here: the
 792	  module will be called ap.
 793
 794	  If unsure, say Y (default).
 795
 796config AP_DEBUG
 797	def_bool n
 798	prompt "Enable debug features for Adjunct Processor (ap) devices"
 799	depends on AP
 800	help
 801	  Say 'Y' here to enable some additional debug features for Adjunct
 802	  Processor (ap) devices.
 803
 804	  There will be some more sysfs attributes displayed for ap queues.
 805
 806	  Do not enable on production level kernel build.
 807
 808	  If unsure, say N.
 809
 810config VFIO_CCW
 811	def_tristate n
 812	prompt "Support for VFIO-CCW subchannels"
 813	depends on VFIO
 814	select VFIO_MDEV
 815	help
 816	  This driver allows usage of I/O subchannels via VFIO-CCW.
 817
 818	  To compile this driver as a module, choose M here: the
 819	  module will be called vfio_ccw.
 820
 821config VFIO_AP
 822	def_tristate n
 823	prompt "VFIO support for AP devices"
 824	depends on KVM
 825	depends on VFIO
 826	depends on AP
 827	select VFIO_MDEV
 828	help
 829	  This driver grants access to Adjunct Processor (AP) devices
 830	  via the VFIO mediated device interface.
 831
 832	  To compile this driver as a module, choose M here: the module
 833	  will be called vfio_ap.
 834
 835endmenu
 836
 837config CCW
 838	def_bool y
 839
 840config HAVE_PNETID
 841	tristate
 842	default (SMC || CCWGROUP)
 843
 844menu "Virtualization"
 845
 846config PFAULT
 847	def_bool y
 848	prompt "Pseudo page fault support"
 849	help
 850	  Select this option, if you want to use PFAULT pseudo page fault
 851	  handling under VM. If running native or in LPAR, this option
 852	  has no effect. If your VM does not support PFAULT, PAGEEX
 853	  pseudo page fault handling will be used.
 854	  Note that VM 4.2 supports PFAULT but has a bug in its
 855	  implementation that causes some problems.
 856	  Everybody who wants to run Linux under VM != VM4.2 should select
 857	  this option.
 858
 859config CMM
 860	def_tristate n
 861	prompt "Cooperative memory management"
 862	help
 863	  Select this option, if you want to enable the kernel interface
 864	  to reduce the memory size of the system. This is accomplished
 865	  by allocating pages of memory and put them "on hold". This only
 866	  makes sense for a system running under VM where the unused pages
 867	  will be reused by VM for other guest systems. The interface
 868	  allows an external monitor to balance memory of many systems.
 869	  Everybody who wants to run Linux under VM should select this
 870	  option.
 871
 872config CMM_IUCV
 873	def_bool y
 874	prompt "IUCV special message interface to cooperative memory management"
 875	depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
 876	help
 877	  Select this option to enable the special message interface to
 878	  the cooperative memory management.
 879
 880config APPLDATA_BASE
 881	def_bool n
 882	prompt "Linux - VM Monitor Stream, base infrastructure"
 883	depends on PROC_SYSCTL
 884	help
 885	  This provides a kernel interface for creating and updating z/VM APPLDATA
 886	  monitor records. The monitor records are updated at certain time
 887	  intervals, once the timer is started.
 888	  Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
 889	  i.e. enables or disables monitoring on the Linux side.
 890	  A custom interval value (in seconds) can be written to
 891	  /proc/appldata/interval.
 892
 893	  Defaults are 60 seconds interval and timer off.
 894	  The /proc entries can also be read from, showing the current settings.
 895
 896config APPLDATA_MEM
 897	def_tristate m
 898	prompt "Monitor memory management statistics"
 899	depends on APPLDATA_BASE && VM_EVENT_COUNTERS
 900	help
 901	  This provides memory management related data to the Linux - VM Monitor
 902	  Stream, like paging/swapping rate, memory utilisation, etc.
 903	  Writing 1 or 0 to /proc/appldata/memory 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	  The /proc entry can also be read from, showing the current settings.
 909
 910	  This can also be compiled as a module, which will be called
 911	  appldata_mem.o.
 912
 913config APPLDATA_OS
 914	def_tristate m
 915	prompt "Monitor OS statistics"
 916	depends on APPLDATA_BASE
 917	help
 918	  This provides OS related data to the Linux - VM Monitor Stream, like
 919	  CPU utilisation, etc.
 920	  Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
 921	  APPLDATA monitor record, i.e. enables or disables monitoring this record
 922	  on the z/VM side.
 923
 924	  Default is disabled.
 925	  This can also be compiled as a module, which will be called
 926	  appldata_os.o.
 927
 928config APPLDATA_NET_SUM
 929	def_tristate m
 930	prompt "Monitor overall network statistics"
 931	depends on APPLDATA_BASE && NET
 932	help
 933	  This provides network related data to the Linux - VM Monitor Stream,
 934	  currently there is only a total sum of network I/O statistics, no
 935	  per-interface data.
 936	  Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
 937	  APPLDATA monitor record, i.e. enables or disables monitoring this record
 938	  on the z/VM side.
 939
 940	  Default is disabled.
 941	  This can also be compiled as a module, which will be called
 942	  appldata_net_sum.o.
 943
 944config S390_HYPFS
 945	def_bool y
 946	prompt "s390 hypervisor information"
 947	help
 948	  This provides several binary files at (debugfs)/s390_hypfs/ to
 949	  provide accounting information in an s390 hypervisor environment.
 950
 951config S390_HYPFS_FS
 952	def_bool n
 953	prompt "s390 hypervisor file system support"
 954	select SYS_HYPERVISOR
 955	depends on S390_HYPFS
 956	help
 957	  This is a virtual file system intended to provide accounting
 958	  information in an s390 hypervisor environment. This file system
 959	  is deprecated and should not be used.
 960
 961	  Say N if you are unsure.
 962
 963source "arch/s390/kvm/Kconfig"
 964
 965config S390_GUEST
 966	def_bool y
 967	prompt "s390 support for virtio devices"
 968	select TTY
 969	select VIRTUALIZATION
 970	select VIRTIO
 971	help
 972	  Enabling this option adds support for virtio based paravirtual device
 973	  drivers on s390.
 974
 975	  Select this option if you want to run the kernel as a guest under
 976	  the KVM hypervisor.
 977
 978endmenu
 979
 980config S390_MODULES_SANITY_TEST_HELPERS
 981	def_bool n
 982
 983menu "Selftests"
 984
 985config S390_UNWIND_SELFTEST
 986	def_tristate n
 987	depends on KUNIT
 988	default KUNIT_ALL_TESTS
 989	prompt "Test unwind functions"
 990	help
 991	  This option enables s390 specific stack unwinder testing kernel
 992	  module. This option is not useful for distributions or general
 993	  kernels, but only for kernel developers working on architecture code.
 994
 995	  Say N if you are unsure.
 996
 997config S390_KPROBES_SANITY_TEST
 998	def_tristate n
 999	prompt "Enable s390 specific kprobes tests"
1000	depends on KPROBES
1001	depends on KUNIT
1002	help
1003	  This option enables an s390 specific kprobes test module. This option
1004	  is not useful for distributions or general kernels, but only for kernel
1005	  developers working on architecture code.
1006
1007	  Say N if you are unsure.
1008
1009config S390_MODULES_SANITY_TEST
1010	def_tristate n
1011	depends on KUNIT
1012	default KUNIT_ALL_TESTS
1013	prompt "Enable s390 specific modules tests"
1014	select S390_MODULES_SANITY_TEST_HELPERS
1015	help
1016	  This option enables an s390 specific modules test. This option is
1017	  not useful for distributions or general kernels, but only for
1018	  kernel developers working on architecture code.
1019
1020	  Say N if you are unsure.
1021endmenu
~/ Read-only file preview.