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