xref: /linux/arch/s390/Kconfig (revision 6e8331ac6973435b1e7604c30f2ad394035b46e1)
1#
2# For a description of the syntax of this configuration file,
3# see Documentation/kbuild/kconfig-language.txt.
4#
5
6config MMU
7	bool
8	default y
9
10config LOCKDEP_SUPPORT
11	bool
12	default y
13
14config STACKTRACE_SUPPORT
15	bool
16	default y
17
18config RWSEM_GENERIC_SPINLOCK
19	bool
20
21config RWSEM_XCHGADD_ALGORITHM
22	bool
23	default y
24
25config GENERIC_HWEIGHT
26	bool
27	default y
28
29config GENERIC_CALIBRATE_DELAY
30	bool
31	default y
32
33config GENERIC_BUST_SPINLOCK
34	bool
35
36mainmenu "Linux Kernel Configuration"
37
38config S390
39	bool
40	default y
41
42source "init/Kconfig"
43
44menu "Base setup"
45
46comment "Processor type and features"
47
48config 64BIT
49	bool "64 bit kernel"
50	help
51	  Select this option if you have a 64 bit IBM zSeries machine
52	  and want to use the 64 bit addressing mode.
53
54config SMP
55	bool "Symmetric multi-processing support"
56	---help---
57	  This enables support for systems with more than one CPU. If you have
58	  a system with only one CPU, like most personal computers, say N. If
59	  you have a system with more than one CPU, say Y.
60
61	  If you say N here, the kernel will run on single and multiprocessor
62	  machines, but will use only one CPU of a multiprocessor machine. If
63	  you say Y here, the kernel will run on many, but not all,
64	  singleprocessor machines. On a singleprocessor machine, the kernel
65	  will run faster if you say N here.
66
67	  See also the <file:Documentation/smp.txt> and the SMP-HOWTO
68	  available at <http://www.tldp.org/docs.html#howto>.
69
70	  Even if you don't know what to do here, say Y.
71
72config NR_CPUS
73	int "Maximum number of CPUs (2-64)"
74	range 2 64
75	depends on SMP
76	default "32"
77	help
78	  This allows you to specify the maximum number of CPUs which this
79	  kernel will support.  The maximum supported value is 64 and the
80	  minimum value which makes sense is 2.
81
82	  This is purely to save memory - each supported CPU adds
83	  approximately sixteen kilobytes to the kernel image.
84
85config HOTPLUG_CPU
86	bool "Support for hot-pluggable CPUs"
87	depends on SMP
88	select HOTPLUG
89	default n
90	help
91	  Say Y here to be able to turn CPUs off and on. CPUs
92	  can be controlled through /sys/devices/system/cpu/cpu#.
93	  Say N if you want to disable CPU hotplug.
94
95config DEFAULT_MIGRATION_COST
96	int
97	default "1000000"
98
99config MATHEMU
100	bool "IEEE FPU emulation"
101	depends on MARCH_G5
102	help
103	  This option is required for IEEE compliant floating point arithmetic
104	  on older S/390 machines. Say Y unless you know your machine doesn't
105	  need this.
106
107config COMPAT
108	bool "Kernel support for 31 bit emulation"
109	depends on 64BIT
110	help
111	  Select this option if you want to enable your system kernel to
112	  handle system-calls from ELF binaries for 31 bit ESA.  This option
113	  (and some other stuff like libraries and such) is needed for
114	  executing 31 bit applications.  It is safe to say "Y".
115
116config SYSVIPC_COMPAT
117	bool
118	depends on COMPAT && SYSVIPC
119	default y
120
121comment "Code generation options"
122
123choice
124	prompt "Processor type"
125	default MARCH_G5
126
127config MARCH_G5
128	bool "S/390 model G5 and G6"
129	depends on !64BIT
130	help
131	  Select this to build a 31 bit kernel that works
132	  on all S/390 and zSeries machines.
133
134config MARCH_Z900
135	bool "IBM eServer zSeries model z800 and z900"
136	help
137	  Select this to optimize for zSeries machines. This
138	  will enable some optimizations that are not available
139	  on older 31 bit only CPUs.
140
141config MARCH_Z990
142	bool "IBM eServer zSeries model z890 and z990"
143	help
144	  Select this enable optimizations for model z890/z990.
145	  This will be slightly faster but does not work on
146	  older machines such as the z900.
147
148endchoice
149
150config PACK_STACK
151	bool "Pack kernel stack"
152	help
153	  This option enables the compiler option -mkernel-backchain if it
154	  is available. If the option is available the compiler supports
155	  the new stack layout which dramatically reduces the minimum stack
156	  frame size. With an old compiler a non-leaf function needs a
157	  minimum of 96 bytes on 31 bit and 160 bytes on 64 bit. With
158	  -mkernel-backchain the minimum size drops to 16 byte on 31 bit
159	  and 24 byte on 64 bit.
160
161	  Say Y if you are unsure.
162
163config SMALL_STACK
164	bool "Use 4kb/8kb for kernel stack instead of 8kb/16kb"
165	depends on PACK_STACK
166	help
167	  If you say Y here and the compiler supports the -mkernel-backchain
168	  option the kernel will use a smaller kernel stack size. For 31 bit
169	  the reduced size is 4kb instead of 8kb and for 64 bit it is 8kb
170	  instead of 16kb. This allows to run more thread on a system and
171	  reduces the pressure on the memory management for higher order
172	  page allocations.
173
174	  Say N if you are unsure.
175
176
177config CHECK_STACK
178	bool "Detect kernel stack overflow"
179	help
180	  This option enables the compiler option -mstack-guard and
181	  -mstack-size if they are available. If the compiler supports them
182	  it will emit additional code to each function prolog to trigger
183	  an illegal operation if the kernel stack is about to overflow.
184
185	  Say N if you are unsure.
186
187config STACK_GUARD
188	int "Size of the guard area (128-1024)"
189	range 128 1024
190	depends on CHECK_STACK
191	default "256"
192	help
193	  This allows you to specify the size of the guard area at the lower
194	  end of the kernel stack. If the kernel stack points into the guard
195	  area on function entry an illegal operation is triggered. The size
196	  needs to be a power of 2. Please keep in mind that the size of an
197	  interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit.
198	  The minimum size for the stack guard should be 256 for 31 bit and
199	  512 for 64 bit.
200
201config WARN_STACK
202	bool "Emit compiler warnings for function with broken stack usage"
203	help
204	  This option enables the compiler options -mwarn-framesize and
205	  -mwarn-dynamicstack. If the compiler supports these options it
206	  will generate warnings for function which either use alloca or
207	  create a stack frame bigger then CONFIG_WARN_STACK_SIZE.
208
209	  Say N if you are unsure.
210
211config WARN_STACK_SIZE
212	int "Maximum frame size considered safe (128-2048)"
213	range 128 2048
214	depends on WARN_STACK
215	default "256"
216	help
217	  This allows you to specify the maximum frame size a function may
218	  have without the compiler complaining about it.
219
220source "mm/Kconfig"
221
222comment "I/O subsystem configuration"
223
224config MACHCHK_WARNING
225	bool "Process warning machine checks"
226	help
227	  Select this option if you want the machine check handler on IBM S/390 or
228	  zSeries to process warning machine checks (e.g. on power failures).
229	  If unsure, say "Y".
230
231config QDIO
232	tristate "QDIO support"
233	---help---
234	  This driver provides the Queued Direct I/O base support for
235	  IBM mainframes.
236
237	  For details please refer to the documentation provided by IBM at
238	  <http://www10.software.ibm.com/developerworks/opensource/linux390>
239
240	  To compile this driver as a module, choose M here: the
241	  module will be called qdio.
242
243	  If unsure, say Y.
244
245config QDIO_PERF_STATS
246	bool "Performance statistics in /proc"
247	depends on QDIO
248	help
249	  Say Y here to get performance statistics in /proc/qdio_perf
250
251	  If unsure, say N.
252
253config QDIO_DEBUG
254	bool "Extended debugging information"
255	depends on QDIO
256	help
257	  Say Y here to get extended debugging output in
258	    /sys/kernel/debug/s390dbf/qdio...
259	  Warning: this option reduces the performance of the QDIO module.
260
261	  If unsure, say N.
262
263comment "Misc"
264
265config PREEMPT
266	bool "Preemptible Kernel"
267	help
268	  This option reduces the latency of the kernel when reacting to
269	  real-time or interactive events by allowing a low priority process to
270	  be preempted even if it is in kernel mode executing a system call.
271	  This allows applications to run more reliably even when the system is
272	  under load.
273
274	  Say N if you are unsure.
275
276config IPL
277	bool "Builtin IPL record support"
278	help
279	  If you want to use the produced kernel to IPL directly from a
280	  device, you have to merge a bootsector specific to the device
281	  into the first bytes of the kernel. You will have to select the
282	  IPL device.
283
284choice
285	prompt "IPL method generated into head.S"
286	depends on IPL
287	default IPL_TAPE
288	help
289	  Select "tape" if you want to IPL the image from a Tape.
290
291	  Select "vm_reader" if you are running under VM/ESA and want
292	  to IPL the image from the emulated card reader.
293
294config IPL_TAPE
295	bool "tape"
296
297config IPL_VM
298	bool "vm_reader"
299
300endchoice
301
302source "fs/Kconfig.binfmt"
303
304config PROCESS_DEBUG
305	bool "Show crashed user process info"
306	help
307	  Say Y to print all process fault locations to the console.  This is
308	  a debugging option; you probably do not want to set it unless you
309	  are an S390 port maintainer.
310
311config PFAULT
312	bool "Pseudo page fault support"
313	help
314	  Select this option, if you want to use PFAULT pseudo page fault
315	  handling under VM. If running native or in LPAR, this option
316	  has no effect. If your VM does not support PFAULT, PAGEEX
317	  pseudo page fault handling will be used.
318	  Note that VM 4.2 supports PFAULT but has a bug in its
319	  implementation that causes some problems.
320	  Everybody who wants to run Linux under VM != VM4.2 should select
321	  this option.
322
323config SHARED_KERNEL
324	bool "VM shared kernel support"
325	help
326	  Select this option, if you want to share the text segment of the
327	  Linux kernel between different VM guests. This reduces memory
328	  usage with lots of guests but greatly increases kernel size.
329	  You should only select this option if you know what you are
330	  doing and want to exploit this feature.
331
332config CMM
333	tristate "Cooperative memory management"
334	help
335	  Select this option, if you want to enable the kernel interface
336	  to reduce the memory size of the system. This is accomplished
337	  by allocating pages of memory and put them "on hold". This only
338	  makes sense for a system running under VM where the unused pages
339	  will be reused by VM for other guest systems. The interface
340	  allows an external monitor to balance memory of many systems.
341	  Everybody who wants to run Linux under VM should select this
342	  option.
343
344config CMM_PROC
345	bool "/proc interface to cooperative memory management"
346	depends on CMM
347	help
348	  Select this option to enable the /proc interface to the
349	  cooperative memory management.
350
351config CMM_IUCV
352	bool "IUCV special message interface to cooperative memory management"
353	depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
354	help
355	  Select this option to enable the special message interface to
356	  the cooperative memory management.
357
358config VIRT_TIMER
359	bool "Virtual CPU timer support"
360	help
361	  This provides a kernel interface for virtual CPU timers.
362	  Default is disabled.
363
364config VIRT_CPU_ACCOUNTING
365	bool "Base user process accounting on virtual cpu timer"
366	depends on VIRT_TIMER
367	help
368	  Select this option to use CPU timer deltas to do user
369	  process accounting.
370
371config APPLDATA_BASE
372	bool "Linux - VM Monitor Stream, base infrastructure"
373	depends on PROC_FS && VIRT_TIMER=y
374	help
375	  This provides a kernel interface for creating and updating z/VM APPLDATA
376	  monitor records. The monitor records are updated at certain time
377	  intervals, once the timer is started.
378	  Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
379	  i.e. enables or disables monitoring on the Linux side.
380	  A custom interval value (in seconds) can be written to
381	  /proc/appldata/interval.
382
383	  Defaults are 60 seconds interval and timer off.
384	  The /proc entries can also be read from, showing the current settings.
385
386config APPLDATA_MEM
387	tristate "Monitor memory management statistics"
388	depends on APPLDATA_BASE
389	help
390	  This provides memory management related data to the Linux - VM Monitor
391	  Stream, like paging/swapping rate, memory utilisation, etc.
392	  Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM
393	  APPLDATA monitor record, i.e. enables or disables monitoring this record
394	  on the z/VM side.
395
396	  Default is disabled.
397	  The /proc entry can also be read from, showing the current settings.
398
399	  This can also be compiled as a module, which will be called
400	  appldata_mem.o.
401
402config APPLDATA_OS
403	tristate "Monitor OS statistics"
404	depends on APPLDATA_BASE
405	help
406	  This provides OS related data to the Linux - VM Monitor Stream, like
407	  CPU utilisation, etc.
408	  Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
409	  APPLDATA monitor record, i.e. enables or disables monitoring this record
410	  on the z/VM side.
411
412	  Default is disabled.
413	  This can also be compiled as a module, which will be called
414	  appldata_os.o.
415
416config APPLDATA_NET_SUM
417	tristate "Monitor overall network statistics"
418	depends on APPLDATA_BASE
419	help
420	  This provides network related data to the Linux - VM Monitor Stream,
421	  currently there is only a total sum of network I/O statistics, no
422	  per-interface data.
423	  Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
424	  APPLDATA monitor record, i.e. enables or disables monitoring this record
425	  on the z/VM side.
426
427	  Default is disabled.
428	  This can also be compiled as a module, which will be called
429	  appldata_net_sum.o.
430
431config NO_IDLE_HZ
432	bool "No HZ timer ticks in idle"
433	help
434	  Switches the regular HZ timer off when the system is going idle.
435	  This helps z/VM to detect that the Linux system is idle. VM can
436	  then "swap-out" this guest which reduces memory usage. It also
437	  reduces the overhead of idle systems.
438
439	  The HZ timer can be switched on/off via /proc/sys/kernel/hz_timer.
440	  hz_timer=0 means HZ timer is disabled. hz_timer=1 means HZ
441	  timer is active.
442
443config NO_IDLE_HZ_INIT
444	bool "HZ timer in idle off by default"
445	depends on NO_IDLE_HZ
446	help
447	  The HZ timer is switched off in idle by default. That means the
448	  HZ timer is already disabled at boot time.
449
450config S390_HYPFS_FS
451	bool "s390 hypervisor file system support"
452	select SYS_HYPERVISOR
453	default y
454	help
455	  This is a virtual file system intended to provide accounting
456	  information in an s390 hypervisor environment.
457
458config KEXEC
459	bool "kexec system call (EXPERIMENTAL)"
460	depends on EXPERIMENTAL
461	help
462	  kexec is a system call that implements the ability to shutdown your
463	  current kernel, and to start another kernel.  It is like a reboot
464	  but is independent of hardware/microcode support.
465
466endmenu
467
468source "net/Kconfig"
469
470config PCMCIA
471	bool
472	default n
473
474source "drivers/base/Kconfig"
475
476source "drivers/connector/Kconfig"
477
478source "drivers/scsi/Kconfig"
479
480source "drivers/s390/Kconfig"
481
482source "drivers/net/Kconfig"
483
484source "fs/Kconfig"
485
486source "arch/s390/oprofile/Kconfig"
487
488source "arch/s390/Kconfig.debug"
489
490source "security/Kconfig"
491
492source "crypto/Kconfig"
493
494source "lib/Kconfig"
495