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