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