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