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