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