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