xref: /linux/arch/s390/Kconfig (revision f24e9f586b377749dff37554696cf3a105540c94)
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
121config AUDIT_ARCH
122	bool
123	default y
124
125comment "Code generation options"
126
127choice
128	prompt "Processor type"
129	default MARCH_G5
130
131config MARCH_G5
132	bool "S/390 model G5 and G6"
133	depends on !64BIT
134	help
135	  Select this to build a 31 bit kernel that works
136	  on all S/390 and zSeries machines.
137
138config MARCH_Z900
139	bool "IBM eServer zSeries model z800 and z900"
140	help
141	  Select this to optimize for zSeries machines. This
142	  will enable some optimizations that are not available
143	  on older 31 bit only CPUs.
144
145config MARCH_Z990
146	bool "IBM eServer zSeries model z890 and z990"
147	help
148	  Select this enable optimizations for model z890/z990.
149	  This will be slightly faster but does not work on
150	  older machines such as the z900.
151
152endchoice
153
154config PACK_STACK
155	bool "Pack kernel stack"
156	help
157	  This option enables the compiler option -mkernel-backchain if it
158	  is available. If the option is available the compiler supports
159	  the new stack layout which dramatically reduces the minimum stack
160	  frame size. With an old compiler a non-leaf function needs a
161	  minimum of 96 bytes on 31 bit and 160 bytes on 64 bit. With
162	  -mkernel-backchain the minimum size drops to 16 byte on 31 bit
163	  and 24 byte on 64 bit.
164
165	  Say Y if you are unsure.
166
167config SMALL_STACK
168	bool "Use 4kb/8kb for kernel stack instead of 8kb/16kb"
169	depends on PACK_STACK
170	help
171	  If you say Y here and the compiler supports the -mkernel-backchain
172	  option the kernel will use a smaller kernel stack size. For 31 bit
173	  the reduced size is 4kb instead of 8kb and for 64 bit it is 8kb
174	  instead of 16kb. This allows to run more thread on a system and
175	  reduces the pressure on the memory management for higher order
176	  page allocations.
177
178	  Say N if you are unsure.
179
180
181config CHECK_STACK
182	bool "Detect kernel stack overflow"
183	help
184	  This option enables the compiler option -mstack-guard and
185	  -mstack-size if they are available. If the compiler supports them
186	  it will emit additional code to each function prolog to trigger
187	  an illegal operation if the kernel stack is about to overflow.
188
189	  Say N if you are unsure.
190
191config STACK_GUARD
192	int "Size of the guard area (128-1024)"
193	range 128 1024
194	depends on CHECK_STACK
195	default "256"
196	help
197	  This allows you to specify the size of the guard area at the lower
198	  end of the kernel stack. If the kernel stack points into the guard
199	  area on function entry an illegal operation is triggered. The size
200	  needs to be a power of 2. Please keep in mind that the size of an
201	  interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit.
202	  The minimum size for the stack guard should be 256 for 31 bit and
203	  512 for 64 bit.
204
205config WARN_STACK
206	bool "Emit compiler warnings for function with broken stack usage"
207	help
208	  This option enables the compiler options -mwarn-framesize and
209	  -mwarn-dynamicstack. If the compiler supports these options it
210	  will generate warnings for function which either use alloca or
211	  create a stack frame bigger then CONFIG_WARN_STACK_SIZE.
212
213	  Say N if you are unsure.
214
215config WARN_STACK_SIZE
216	int "Maximum frame size considered safe (128-2048)"
217	range 128 2048
218	depends on WARN_STACK
219	default "256"
220	help
221	  This allows you to specify the maximum frame size a function may
222	  have without the compiler complaining about it.
223
224source "mm/Kconfig"
225
226comment "I/O subsystem configuration"
227
228config MACHCHK_WARNING
229	bool "Process warning machine checks"
230	help
231	  Select this option if you want the machine check handler on IBM S/390 or
232	  zSeries to process warning machine checks (e.g. on power failures).
233	  If unsure, say "Y".
234
235config QDIO
236	tristate "QDIO support"
237	---help---
238	  This driver provides the Queued Direct I/O base support for
239	  IBM mainframes.
240
241	  For details please refer to the documentation provided by IBM at
242	  <http://www10.software.ibm.com/developerworks/opensource/linux390>
243
244	  To compile this driver as a module, choose M here: the
245	  module will be called qdio.
246
247	  If unsure, say Y.
248
249config QDIO_PERF_STATS
250	bool "Performance statistics in /proc"
251	depends on QDIO
252	help
253	  Say Y here to get performance statistics in /proc/qdio_perf
254
255	  If unsure, say N.
256
257config QDIO_DEBUG
258	bool "Extended debugging information"
259	depends on QDIO
260	help
261	  Say Y here to get extended debugging output in
262	    /sys/kernel/debug/s390dbf/qdio...
263	  Warning: this option reduces the performance of the QDIO module.
264
265	  If unsure, say N.
266
267comment "Misc"
268
269config PREEMPT
270	bool "Preemptible Kernel"
271	help
272	  This option reduces the latency of the kernel when reacting to
273	  real-time or interactive events by allowing a low priority process to
274	  be preempted even if it is in kernel mode executing a system call.
275	  This allows applications to run more reliably even when the system is
276	  under load.
277
278	  Say N if you are unsure.
279
280config IPL
281	bool "Builtin IPL record support"
282	help
283	  If you want to use the produced kernel to IPL directly from a
284	  device, you have to merge a bootsector specific to the device
285	  into the first bytes of the kernel. You will have to select the
286	  IPL device.
287
288choice
289	prompt "IPL method generated into head.S"
290	depends on IPL
291	default IPL_TAPE
292	help
293	  Select "tape" if you want to IPL the image from a Tape.
294
295	  Select "vm_reader" if you are running under VM/ESA and want
296	  to IPL the image from the emulated card reader.
297
298config IPL_TAPE
299	bool "tape"
300
301config IPL_VM
302	bool "vm_reader"
303
304endchoice
305
306source "fs/Kconfig.binfmt"
307
308config PROCESS_DEBUG
309	bool "Show crashed user process info"
310	help
311	  Say Y to print all process fault locations to the console.  This is
312	  a debugging option; you probably do not want to set it unless you
313	  are an S390 port maintainer.
314
315config PFAULT
316	bool "Pseudo page fault support"
317	help
318	  Select this option, if you want to use PFAULT pseudo page fault
319	  handling under VM. If running native or in LPAR, this option
320	  has no effect. If your VM does not support PFAULT, PAGEEX
321	  pseudo page fault handling will be used.
322	  Note that VM 4.2 supports PFAULT but has a bug in its
323	  implementation that causes some problems.
324	  Everybody who wants to run Linux under VM != VM4.2 should select
325	  this option.
326
327config SHARED_KERNEL
328	bool "VM shared kernel support"
329	help
330	  Select this option, if you want to share the text segment of the
331	  Linux kernel between different VM guests. This reduces memory
332	  usage with lots of guests but greatly increases kernel size.
333	  You should only select this option if you know what you are
334	  doing and want to exploit this feature.
335
336config CMM
337	tristate "Cooperative memory management"
338	help
339	  Select this option, if you want to enable the kernel interface
340	  to reduce the memory size of the system. This is accomplished
341	  by allocating pages of memory and put them "on hold". This only
342	  makes sense for a system running under VM where the unused pages
343	  will be reused by VM for other guest systems. The interface
344	  allows an external monitor to balance memory of many systems.
345	  Everybody who wants to run Linux under VM should select this
346	  option.
347
348config CMM_PROC
349	bool "/proc interface to cooperative memory management"
350	depends on CMM
351	help
352	  Select this option to enable the /proc interface to the
353	  cooperative memory management.
354
355config CMM_IUCV
356	bool "IUCV special message interface to cooperative memory management"
357	depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
358	help
359	  Select this option to enable the special message interface to
360	  the cooperative memory management.
361
362config VIRT_TIMER
363	bool "Virtual CPU timer support"
364	help
365	  This provides a kernel interface for virtual CPU timers.
366	  Default is disabled.
367
368config VIRT_CPU_ACCOUNTING
369	bool "Base user process accounting on virtual cpu timer"
370	depends on VIRT_TIMER
371	help
372	  Select this option to use CPU timer deltas to do user
373	  process accounting.
374
375config APPLDATA_BASE
376	bool "Linux - VM Monitor Stream, base infrastructure"
377	depends on PROC_FS && VIRT_TIMER=y
378	help
379	  This provides a kernel interface for creating and updating z/VM APPLDATA
380	  monitor records. The monitor records are updated at certain time
381	  intervals, once the timer is started.
382	  Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
383	  i.e. enables or disables monitoring on the Linux side.
384	  A custom interval value (in seconds) can be written to
385	  /proc/appldata/interval.
386
387	  Defaults are 60 seconds interval and timer off.
388	  The /proc entries can also be read from, showing the current settings.
389
390config APPLDATA_MEM
391	tristate "Monitor memory management statistics"
392	depends on APPLDATA_BASE
393	help
394	  This provides memory management related data to the Linux - VM Monitor
395	  Stream, like paging/swapping rate, memory utilisation, etc.
396	  Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM
397	  APPLDATA monitor record, i.e. enables or disables monitoring this record
398	  on the z/VM side.
399
400	  Default is disabled.
401	  The /proc entry can also be read from, showing the current settings.
402
403	  This can also be compiled as a module, which will be called
404	  appldata_mem.o.
405
406config APPLDATA_OS
407	tristate "Monitor OS statistics"
408	depends on APPLDATA_BASE
409	help
410	  This provides OS related data to the Linux - VM Monitor Stream, like
411	  CPU utilisation, etc.
412	  Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
413	  APPLDATA monitor record, i.e. enables or disables monitoring this record
414	  on the z/VM side.
415
416	  Default is disabled.
417	  This can also be compiled as a module, which will be called
418	  appldata_os.o.
419
420config APPLDATA_NET_SUM
421	tristate "Monitor overall network statistics"
422	depends on APPLDATA_BASE
423	help
424	  This provides network related data to the Linux - VM Monitor Stream,
425	  currently there is only a total sum of network I/O statistics, no
426	  per-interface data.
427	  Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
428	  APPLDATA monitor record, i.e. enables or disables monitoring this record
429	  on the z/VM side.
430
431	  Default is disabled.
432	  This can also be compiled as a module, which will be called
433	  appldata_net_sum.o.
434
435config NO_IDLE_HZ
436	bool "No HZ timer ticks in idle"
437	help
438	  Switches the regular HZ timer off when the system is going idle.
439	  This helps z/VM to detect that the Linux system is idle. VM can
440	  then "swap-out" this guest which reduces memory usage. It also
441	  reduces the overhead of idle systems.
442
443	  The HZ timer can be switched on/off via /proc/sys/kernel/hz_timer.
444	  hz_timer=0 means HZ timer is disabled. hz_timer=1 means HZ
445	  timer is active.
446
447config NO_IDLE_HZ_INIT
448	bool "HZ timer in idle off by default"
449	depends on NO_IDLE_HZ
450	help
451	  The HZ timer is switched off in idle by default. That means the
452	  HZ timer is already disabled at boot time.
453
454config S390_HYPFS_FS
455	bool "s390 hypervisor file system support"
456	select SYS_HYPERVISOR
457	default y
458	help
459	  This is a virtual file system intended to provide accounting
460	  information in an s390 hypervisor environment.
461
462config KEXEC
463	bool "kexec system call"
464	help
465	  kexec is a system call that implements the ability to shutdown your
466	  current kernel, and to start another kernel.  It is like a reboot
467	  but is independent of hardware/microcode support.
468
469endmenu
470
471source "net/Kconfig"
472
473config PCMCIA
474	bool
475	default n
476
477source "drivers/base/Kconfig"
478
479source "drivers/connector/Kconfig"
480
481source "drivers/scsi/Kconfig"
482
483source "drivers/s390/Kconfig"
484
485source "drivers/net/Kconfig"
486
487source "fs/Kconfig"
488
489menu "Instrumentation Support"
490
491source "arch/s390/oprofile/Kconfig"
492
493config KPROBES
494	bool "Kprobes (EXPERIMENTAL)"
495	depends on EXPERIMENTAL && MODULES
496	help
497	  Kprobes allows you to trap at almost any kernel address and
498	  execute a callback function.	register_kprobe() establishes
499	  a probepoint and specifies the callback.  Kprobes is useful
500	  for kernel debugging, non-intrusive instrumentation and testing.
501	  If in doubt, say "N".
502
503endmenu
504
505source "arch/s390/Kconfig.debug"
506
507source "security/Kconfig"
508
509source "crypto/Kconfig"
510
511source "lib/Kconfig"
512