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