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