xref: /linux/arch/s390/Kconfig (revision 4413e16d9d21673bb5048a2e542f1aaa00015c2e)
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 NO_IOMEM
38	def_bool y
39
40config NO_DMA
41	def_bool y
42
43config ARCH_DMA_ADDR_T_64BIT
44	def_bool 64BIT
45
46config GENERIC_LOCKBREAK
47	def_bool y if SMP && PREEMPT
48
49config PGSTE
50	def_bool y if KVM
51
52config ARCH_SUPPORTS_DEBUG_PAGEALLOC
53	def_bool y
54
55config KEXEC
56	def_bool y
57
58config AUDIT_ARCH
59	def_bool y
60
61config S390
62	def_bool y
63	select USE_GENERIC_SMP_HELPERS if SMP
64	select GENERIC_CPU_DEVICES if !SMP
65	select HAVE_SYSCALL_WRAPPERS
66	select HAVE_FUNCTION_TRACER
67	select HAVE_FUNCTION_TRACE_MCOUNT_TEST
68	select HAVE_FTRACE_MCOUNT_RECORD
69	select HAVE_C_RECORDMCOUNT
70	select HAVE_SYSCALL_TRACEPOINTS
71	select HAVE_DYNAMIC_FTRACE
72	select HAVE_FUNCTION_GRAPH_TRACER
73	select HAVE_REGS_AND_STACK_ACCESS_API
74	select HAVE_OPROFILE
75	select HAVE_KPROBES
76	select HAVE_KRETPROBES
77	select HAVE_KVM if 64BIT
78	select HAVE_ARCH_TRACEHOOK
79	select INIT_ALL_POSSIBLE
80	select HAVE_IRQ_WORK
81	select HAVE_PERF_EVENTS
82	select ARCH_HAVE_NMI_SAFE_CMPXCHG
83	select HAVE_KERNEL_GZIP
84	select HAVE_KERNEL_BZIP2
85	select HAVE_KERNEL_LZMA
86	select HAVE_KERNEL_LZO
87	select HAVE_KERNEL_XZ
88	select HAVE_ARCH_MUTEX_CPU_RELAX
89	select HAVE_ARCH_JUMP_LABEL if !MARCH_G5
90	select HAVE_BPF_JIT if 64BIT && PACK_STACK
91	select ARCH_SAVE_PAGE_KEYS if HIBERNATION
92	select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
93	select HAVE_MEMBLOCK
94	select HAVE_MEMBLOCK_NODE_MAP
95	select HAVE_CMPXCHG_LOCAL
96	select HAVE_CMPXCHG_DOUBLE
97	select HAVE_VIRT_CPU_ACCOUNTING
98	select VIRT_CPU_ACCOUNTING
99	select ARCH_DISCARD_MEMBLOCK
100	select BUILDTIME_EXTABLE_SORT
101	select ARCH_INLINE_SPIN_TRYLOCK
102	select ARCH_INLINE_SPIN_TRYLOCK_BH
103	select ARCH_INLINE_SPIN_LOCK
104	select ARCH_INLINE_SPIN_LOCK_BH
105	select ARCH_INLINE_SPIN_LOCK_IRQ
106	select ARCH_INLINE_SPIN_LOCK_IRQSAVE
107	select ARCH_INLINE_SPIN_UNLOCK
108	select ARCH_INLINE_SPIN_UNLOCK_BH
109	select ARCH_INLINE_SPIN_UNLOCK_IRQ
110	select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
111	select ARCH_INLINE_READ_TRYLOCK
112	select ARCH_INLINE_READ_LOCK
113	select ARCH_INLINE_READ_LOCK_BH
114	select ARCH_INLINE_READ_LOCK_IRQ
115	select ARCH_INLINE_READ_LOCK_IRQSAVE
116	select ARCH_INLINE_READ_UNLOCK
117	select ARCH_INLINE_READ_UNLOCK_BH
118	select ARCH_INLINE_READ_UNLOCK_IRQ
119	select ARCH_INLINE_READ_UNLOCK_IRQRESTORE
120	select ARCH_INLINE_WRITE_TRYLOCK
121	select ARCH_INLINE_WRITE_LOCK
122	select ARCH_INLINE_WRITE_LOCK_BH
123	select ARCH_INLINE_WRITE_LOCK_IRQ
124	select ARCH_INLINE_WRITE_LOCK_IRQSAVE
125	select ARCH_INLINE_WRITE_UNLOCK
126	select ARCH_INLINE_WRITE_UNLOCK_BH
127	select ARCH_INLINE_WRITE_UNLOCK_IRQ
128	select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
129	select ARCH_WANT_IPC_PARSE_VERSION
130	select GENERIC_SMP_IDLE_THREAD
131	select GENERIC_TIME_VSYSCALL
132	select GENERIC_CLOCKEVENTS
133	select KTIME_SCALAR if 32BIT
134	select HAVE_ARCH_SECCOMP_FILTER
135
136config SCHED_OMIT_FRAME_POINTER
137	def_bool y
138
139source "init/Kconfig"
140
141source "kernel/Kconfig.freezer"
142
143menu "Processor type and features"
144
145config HAVE_MARCH_Z900_FEATURES
146	def_bool n
147
148config HAVE_MARCH_Z990_FEATURES
149	def_bool n
150	select HAVE_MARCH_Z900_FEATURES
151
152config HAVE_MARCH_Z9_109_FEATURES
153	def_bool n
154	select HAVE_MARCH_Z990_FEATURES
155
156config HAVE_MARCH_Z10_FEATURES
157	def_bool n
158	select HAVE_MARCH_Z9_109_FEATURES
159
160config HAVE_MARCH_Z196_FEATURES
161	def_bool n
162	select HAVE_MARCH_Z10_FEATURES
163
164choice
165	prompt "Processor type"
166	default MARCH_G5
167
168config MARCH_G5
169	bool "System/390 model G5 and G6"
170	depends on !64BIT
171	help
172	  Select this to build a 31 bit kernel that works
173	  on all ESA/390 and z/Architecture machines.
174
175config MARCH_Z900
176	bool "IBM zSeries model z800 and z900"
177	select HAVE_MARCH_Z900_FEATURES if 64BIT
178	help
179	  Select this to enable optimizations for model z800/z900 (2064 and
180	  2066 series). This will enable some optimizations that are not
181	  available on older ESA/390 (31 Bit) only CPUs.
182
183config MARCH_Z990
184	bool "IBM zSeries model z890 and z990"
185	select HAVE_MARCH_Z990_FEATURES if 64BIT
186	help
187	  Select this to enable optimizations for model z890/z990 (2084 and
188	  2086 series). The kernel will be slightly faster but will not work
189	  on older machines.
190
191config MARCH_Z9_109
192	bool "IBM System z9"
193	select HAVE_MARCH_Z9_109_FEATURES if 64BIT
194	help
195	  Select this to enable optimizations for IBM System z9 (2094 and
196	  2096 series). The kernel will be slightly faster but will not work
197	  on older machines.
198
199config MARCH_Z10
200	bool "IBM System z10"
201	select HAVE_MARCH_Z10_FEATURES if 64BIT
202	help
203	  Select this to enable optimizations for IBM System z10 (2097 and
204	  2098 series). The kernel will be slightly faster but will not work
205	  on older machines.
206
207config MARCH_Z196
208	bool "IBM zEnterprise 114 and 196"
209	select HAVE_MARCH_Z196_FEATURES if 64BIT
210	help
211	  Select this to enable optimizations for IBM zEnterprise 114 and 196
212	  (2818 and 2817 series). The kernel will be slightly faster but will
213	  not work on older machines.
214
215endchoice
216
217config 64BIT
218	def_bool y
219	prompt "64 bit kernel"
220	help
221	  Select this option if you have an IBM z/Architecture machine
222	  and want to use the 64 bit addressing mode.
223
224config 32BIT
225	def_bool y if !64BIT
226
227config COMPAT
228	def_bool y
229	prompt "Kernel support for 31 bit emulation"
230	depends on 64BIT
231	select COMPAT_BINFMT_ELF if BINFMT_ELF
232	select ARCH_WANT_OLD_COMPAT_IPC
233	help
234	  Select this option if you want to enable your system kernel to
235	  handle system-calls from ELF binaries for 31 bit ESA.  This option
236	  (and some other stuff like libraries and such) is needed for
237	  executing 31 bit applications.  It is safe to say "Y".
238
239config SYSVIPC_COMPAT
240	def_bool y if COMPAT && SYSVIPC
241
242config KEYS_COMPAT
243	def_bool y if COMPAT && KEYS
244
245config SMP
246	def_bool y
247	prompt "Symmetric multi-processing support"
248	---help---
249	  This enables support for systems with more than one CPU. If you have
250	  a system with only one CPU, like most personal computers, say N. If
251	  you have a system with more than one CPU, say Y.
252
253	  If you say N here, the kernel will run on single and multiprocessor
254	  machines, but will use only one CPU of a multiprocessor machine. If
255	  you say Y here, the kernel will run on many, but not all,
256	  singleprocessor machines. On a singleprocessor machine, the kernel
257	  will run faster if you say N here.
258
259	  See also the SMP-HOWTO available at
260	  <http://www.tldp.org/docs.html#howto>.
261
262	  Even if you don't know what to do here, say Y.
263
264config NR_CPUS
265	int "Maximum number of CPUs (2-64)"
266	range 2 64
267	depends on SMP
268	default "32" if !64BIT
269	default "64" if 64BIT
270	help
271	  This allows you to specify the maximum number of CPUs which this
272	  kernel will support.  The maximum supported value is 64 and the
273	  minimum value which makes sense is 2.
274
275	  This is purely to save memory - each supported CPU adds
276	  approximately sixteen kilobytes to the kernel image.
277
278config HOTPLUG_CPU
279	def_bool y
280	prompt "Support for hot-pluggable CPUs"
281	depends on SMP
282	select HOTPLUG
283	help
284	  Say Y here to be able to turn CPUs off and on. CPUs
285	  can be controlled through /sys/devices/system/cpu/cpu#.
286	  Say N if you want to disable CPU hotplug.
287
288config SCHED_MC
289	def_bool n
290
291config SCHED_BOOK
292	def_bool y
293	prompt "Book scheduler support"
294	depends on SMP
295	select SCHED_MC
296	help
297	  Book scheduler support improves the CPU scheduler's decision making
298	  when dealing with machines that have several books.
299
300source kernel/Kconfig.preempt
301
302config MATHEMU
303	def_bool y
304	prompt "IEEE FPU emulation"
305	depends on MARCH_G5
306	help
307	  This option is required for IEEE compliant floating point arithmetic
308	  on older ESA/390 machines. Say Y unless you know your machine doesn't
309	  need this.
310
311source kernel/Kconfig.hz
312
313endmenu
314
315menu "Memory setup"
316
317config ARCH_SPARSEMEM_ENABLE
318	def_bool y
319	select SPARSEMEM_VMEMMAP_ENABLE
320	select SPARSEMEM_VMEMMAP
321	select SPARSEMEM_STATIC if !64BIT
322
323config ARCH_SPARSEMEM_DEFAULT
324	def_bool y
325
326config ARCH_SELECT_MEMORY_MODEL
327	def_bool y
328
329config ARCH_ENABLE_MEMORY_HOTPLUG
330	def_bool y if SPARSEMEM
331
332config ARCH_ENABLE_MEMORY_HOTREMOVE
333	def_bool y
334
335config FORCE_MAX_ZONEORDER
336	int
337	default "9"
338
339source "mm/Kconfig"
340
341config PACK_STACK
342	def_bool y
343	prompt "Pack kernel stack"
344	help
345	  This option enables the compiler option -mkernel-backchain if it
346	  is available. If the option is available the compiler supports
347	  the new stack layout which dramatically reduces the minimum stack
348	  frame size. With an old compiler a non-leaf function needs a
349	  minimum of 96 bytes on 31 bit and 160 bytes on 64 bit. With
350	  -mkernel-backchain the minimum size drops to 16 byte on 31 bit
351	  and 24 byte on 64 bit.
352
353	  Say Y if you are unsure.
354
355config SMALL_STACK
356	def_bool n
357	prompt "Use 8kb for kernel stack instead of 16kb"
358	depends on PACK_STACK && 64BIT && !LOCKDEP
359	help
360	  If you say Y here and the compiler supports the -mkernel-backchain
361	  option the kernel will use a smaller kernel stack size. The reduced
362	  size is 8kb instead of 16kb. This allows to run more threads on a
363	  system and reduces the pressure on the memory management for higher
364	  order page allocations.
365
366	  Say N if you are unsure.
367
368config CHECK_STACK
369	def_bool y
370	prompt "Detect kernel stack overflow"
371	help
372	  This option enables the compiler option -mstack-guard and
373	  -mstack-size if they are available. If the compiler supports them
374	  it will emit additional code to each function prolog to trigger
375	  an illegal operation if the kernel stack is about to overflow.
376
377	  Say N if you are unsure.
378
379config STACK_GUARD
380	int "Size of the guard area (128-1024)"
381	range 128 1024
382	depends on CHECK_STACK
383	default "256"
384	help
385	  This allows you to specify the size of the guard area at the lower
386	  end of the kernel stack. If the kernel stack points into the guard
387	  area on function entry an illegal operation is triggered. The size
388	  needs to be a power of 2. Please keep in mind that the size of an
389	  interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit.
390	  The minimum size for the stack guard should be 256 for 31 bit and
391	  512 for 64 bit.
392
393config WARN_DYNAMIC_STACK
394	def_bool n
395	prompt "Emit compiler warnings for function with dynamic stack usage"
396	help
397	  This option enables the compiler option -mwarn-dynamicstack. If the
398	  compiler supports this options generates warnings for functions
399	  that dynamically allocate stack space using alloca.
400
401	  Say N if you are unsure.
402
403endmenu
404
405menu "I/O subsystem"
406
407config QDIO
408	def_tristate y
409	prompt "QDIO support"
410	---help---
411	  This driver provides the Queued Direct I/O base support for
412	  IBM System z.
413
414	  To compile this driver as a module, choose M here: the
415	  module will be called qdio.
416
417	  If unsure, say Y.
418
419config CHSC_SCH
420	def_tristate m
421	prompt "Support for CHSC subchannels"
422	help
423	  This driver allows usage of CHSC subchannels. A CHSC subchannel
424	  is usually present on LPAR only.
425	  The driver creates a device /dev/chsc, which may be used to
426	  obtain I/O configuration information about the machine and
427	  to issue asynchronous chsc commands (DANGEROUS).
428	  You will usually only want to use this interface on a special
429	  LPAR designated for system management.
430
431	  To compile this driver as a module, choose M here: the
432	  module will be called chsc_sch.
433
434	  If unsure, say N.
435
436config SCM_BUS
437	def_bool y
438	depends on 64BIT
439	prompt "SCM bus driver"
440	help
441	  Bus driver for Storage Class Memory.
442
443config EADM_SCH
444	def_tristate m
445	prompt "Support for EADM subchannels"
446	depends on SCM_BUS
447	help
448	  This driver allows usage of EADM subchannels. EADM subchannels act
449	  as a communication vehicle for SCM increments.
450
451	  To compile this driver as a module, choose M here: the
452	  module will be called eadm_sch.
453
454endmenu
455
456menu "Dump support"
457
458config CRASH_DUMP
459	bool "kernel crash dumps"
460	depends on 64BIT && SMP
461	select KEXEC
462	help
463	  Generate crash dump after being started by kexec.
464	  Crash dump kernels are loaded in the main kernel with kexec-tools
465	  into a specially reserved region and then later executed after
466	  a crash by kdump/kexec.
467	  For more details see Documentation/kdump/kdump.txt
468
469config ZFCPDUMP
470	def_bool n
471	prompt "zfcpdump support"
472	select SMP
473	help
474	  Select this option if you want to build an zfcpdump enabled kernel.
475	  Refer to <file:Documentation/s390/zfcpdump.txt> for more details on this.
476
477endmenu
478
479menu "Executable file formats / Emulations"
480
481source "fs/Kconfig.binfmt"
482
483config SECCOMP
484	def_bool y
485	prompt "Enable seccomp to safely compute untrusted bytecode"
486	depends on PROC_FS
487	help
488	  This kernel feature is useful for number crunching applications
489	  that may need to compute untrusted bytecode during their
490	  execution. By using pipes or other transports made available to
491	  the process as file descriptors supporting the read/write
492	  syscalls, it's possible to isolate those applications in
493	  their own address space using seccomp. Once seccomp is
494	  enabled via /proc/<pid>/seccomp, it cannot be disabled
495	  and the task is only allowed to execute a few safe syscalls
496	  defined by each seccomp mode.
497
498	  If unsure, say Y.
499
500endmenu
501
502menu "Power Management"
503
504config ARCH_HIBERNATION_POSSIBLE
505	def_bool y if 64BIT
506
507source "kernel/power/Kconfig"
508
509endmenu
510
511source "net/Kconfig"
512
513config PCMCIA
514	def_bool n
515
516config CCW
517	def_bool y
518
519source "drivers/Kconfig"
520
521source "fs/Kconfig"
522
523source "arch/s390/Kconfig.debug"
524
525source "security/Kconfig"
526
527source "crypto/Kconfig"
528
529source "lib/Kconfig"
530
531menu "Virtualization"
532
533config PFAULT
534	def_bool y
535	prompt "Pseudo page fault support"
536	help
537	  Select this option, if you want to use PFAULT pseudo page fault
538	  handling under VM. If running native or in LPAR, this option
539	  has no effect. If your VM does not support PFAULT, PAGEEX
540	  pseudo page fault handling will be used.
541	  Note that VM 4.2 supports PFAULT but has a bug in its
542	  implementation that causes some problems.
543	  Everybody who wants to run Linux under VM != VM4.2 should select
544	  this option.
545
546config SHARED_KERNEL
547	bool "VM shared kernel support"
548	depends on !JUMP_LABEL
549	help
550	  Select this option, if you want to share the text segment of the
551	  Linux kernel between different VM guests. This reduces memory
552	  usage with lots of guests but greatly increases kernel size.
553	  Also if a kernel was IPL'ed from a shared segment the kexec system
554	  call will not work.
555	  You should only select this option if you know what you are
556	  doing and want to exploit this feature.
557
558config CMM
559	def_tristate n
560	prompt "Cooperative memory management"
561	help
562	  Select this option, if you want to enable the kernel interface
563	  to reduce the memory size of the system. This is accomplished
564	  by allocating pages of memory and put them "on hold". This only
565	  makes sense for a system running under VM where the unused pages
566	  will be reused by VM for other guest systems. The interface
567	  allows an external monitor to balance memory of many systems.
568	  Everybody who wants to run Linux under VM should select this
569	  option.
570
571config CMM_IUCV
572	def_bool y
573	prompt "IUCV special message interface to cooperative memory management"
574	depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
575	help
576	  Select this option to enable the special message interface to
577	  the cooperative memory management.
578
579config APPLDATA_BASE
580	def_bool n
581	prompt "Linux - VM Monitor Stream, base infrastructure"
582	depends on PROC_FS
583	help
584	  This provides a kernel interface for creating and updating z/VM APPLDATA
585	  monitor records. The monitor records are updated at certain time
586	  intervals, once the timer is started.
587	  Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
588	  i.e. enables or disables monitoring on the Linux side.
589	  A custom interval value (in seconds) can be written to
590	  /proc/appldata/interval.
591
592	  Defaults are 60 seconds interval and timer off.
593	  The /proc entries can also be read from, showing the current settings.
594
595config APPLDATA_MEM
596	def_tristate m
597	prompt "Monitor memory management statistics"
598	depends on APPLDATA_BASE && VM_EVENT_COUNTERS
599	help
600	  This provides memory management related data to the Linux - VM Monitor
601	  Stream, like paging/swapping rate, memory utilisation, etc.
602	  Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM
603	  APPLDATA monitor record, i.e. enables or disables monitoring this record
604	  on the z/VM side.
605
606	  Default is disabled.
607	  The /proc entry can also be read from, showing the current settings.
608
609	  This can also be compiled as a module, which will be called
610	  appldata_mem.o.
611
612config APPLDATA_OS
613	def_tristate m
614	prompt "Monitor OS statistics"
615	depends on APPLDATA_BASE
616	help
617	  This provides OS related data to the Linux - VM Monitor Stream, like
618	  CPU utilisation, etc.
619	  Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
620	  APPLDATA monitor record, i.e. enables or disables monitoring this record
621	  on the z/VM side.
622
623	  Default is disabled.
624	  This can also be compiled as a module, which will be called
625	  appldata_os.o.
626
627config APPLDATA_NET_SUM
628	def_tristate m
629	prompt "Monitor overall network statistics"
630	depends on APPLDATA_BASE && NET
631	help
632	  This provides network related data to the Linux - VM Monitor Stream,
633	  currently there is only a total sum of network I/O statistics, no
634	  per-interface data.
635	  Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
636	  APPLDATA monitor record, i.e. enables or disables monitoring this record
637	  on the z/VM side.
638
639	  Default is disabled.
640	  This can also be compiled as a module, which will be called
641	  appldata_net_sum.o.
642
643config S390_HYPFS_FS
644	def_bool y
645	prompt "s390 hypervisor file system support"
646	select SYS_HYPERVISOR
647	help
648	  This is a virtual file system intended to provide accounting
649	  information in an s390 hypervisor environment.
650
651source "arch/s390/kvm/Kconfig"
652
653config S390_GUEST
654	def_bool y
655	prompt "s390 support for virtio devices (EXPERIMENTAL)"
656	depends on 64BIT && EXPERIMENTAL
657	select VIRTUALIZATION
658	select VIRTIO
659	select VIRTIO_RING
660	select VIRTIO_CONSOLE
661	help
662	  Enabling this option adds support for virtio based paravirtual device
663	  drivers on s390.
664
665	  Select this option if you want to run the kernel as a guest under
666	  the KVM hypervisor.
667
668endmenu
669