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