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