]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - arch/s390/Kconfig
[S390] pm: dcssblk power management callbacks.
[mirror_ubuntu-artful-kernel.git] / arch / s390 / Kconfig
CommitLineData
1da177e4
LT
1#
2# For a description of the syntax of this configuration file,
3# see Documentation/kbuild/kconfig-language.txt.
4#
5
dbd70fb4
HC
6config SCHED_MC
7 def_bool y
8 depends on SMP
9
1da177e4 10config MMU
61d48c2c 11 def_bool y
1da177e4 12
66701b14 13config ZONE_DMA
118bcd31
HC
14 def_bool y
15 depends on 64BIT
66701b14 16
2b105ff9 17config LOCKDEP_SUPPORT
61d48c2c 18 def_bool y
2b105ff9 19
5bdc9b44 20config STACKTRACE_SUPPORT
61d48c2c 21 def_bool y
5bdc9b44 22
a3afe70b
HC
23config HAVE_LATENCYTOP_SUPPORT
24 def_bool y
25
1da177e4
LT
26config RWSEM_GENERIC_SPINLOCK
27 bool
28
29config RWSEM_XCHGADD_ALGORITHM
61d48c2c 30 def_bool y
1da177e4 31
f0d1b0b3
DH
32config ARCH_HAS_ILOG2_U32
33 bool
34 default n
35
36config ARCH_HAS_ILOG2_U64
37 bool
38 default n
39
7e33db4e 40config GENERIC_HWEIGHT
61d48c2c 41 def_bool y
7e33db4e 42
dc64bef5
MS
43config GENERIC_TIME
44 def_bool y
45
b020632e
MS
46config GENERIC_TIME_VSYSCALL
47 def_bool y
48
5a62b192
HC
49config GENERIC_CLOCKEVENTS
50 def_bool y
51
c0007f1a
HC
52config GENERIC_BUG
53 bool
54 depends on BUG
55 default y
56
23db764d 57config NO_IOMEM
5ea81769
AV
58 def_bool y
59
411f0f3e
HC
60config NO_DMA
61 def_bool y
62
b6b40c53
MS
63config GENERIC_LOCKBREAK
64 bool
65 default y
66 depends on SMP && PREEMPT
67
402b0862
CO
68config PGSTE
69 bool
70 default y if KVM
71
c185b783
MS
72config VIRT_CPU_ACCOUNTING
73 def_bool y
74
6a11f75b
AM
75config ARCH_SUPPORTS_DEBUG_PAGEALLOC
76 def_bool y
77
1da177e4
LT
78mainmenu "Linux Kernel Configuration"
79
347a8dc3 80config S390
61d48c2c 81 def_bool y
ca9fc75a 82 select USE_GENERIC_SMP_HELPERS if SMP
ed6bb619 83 select HAVE_SYSCALL_WRAPPERS
5d360a75 84 select HAVE_FUNCTION_TRACER
8b4488f8 85 select HAVE_FUNCTION_TRACE_MCOUNT_TEST
dfd9f7ab 86 select HAVE_FTRACE_MCOUNT_RECORD
9bf1226b 87 select HAVE_FTRACE_SYSCALLS
dfd9f7ab 88 select HAVE_DYNAMIC_FTRACE
88dbd203 89 select HAVE_FUNCTION_GRAPH_TRACER
36cd3c9f 90 select HAVE_DEFAULT_NO_SPIN_MUTEXES
42d4b839 91 select HAVE_OPROFILE
3f550096 92 select HAVE_KPROBES
9edddaa2 93 select HAVE_KRETPROBES
77b455f1 94 select HAVE_KVM if 64BIT
753c4dd6 95 select HAVE_ARCH_TRACEHOOK
98a79d6a 96 select INIT_ALL_POSSIBLE
1da177e4 97
1da177e4
LT
98source "init/Kconfig"
99
dc52ddc0
MH
100source "kernel/Kconfig.freezer"
101
1da177e4
LT
102menu "Base setup"
103
104comment "Processor type and features"
105
5a62b192
HC
106source "kernel/time/Kconfig"
107
347a8dc3 108config 64BIT
1da177e4
LT
109 bool "64 bit kernel"
110 help
111 Select this option if you have a 64 bit IBM zSeries machine
112 and want to use the 64 bit addressing mode.
113
d9f7a745
MS
114config 32BIT
115 bool
116 default y if !64BIT
117
1da177e4
LT
118config SMP
119 bool "Symmetric multi-processing support"
120 ---help---
121 This enables support for systems with more than one CPU. If you have
122 a system with only one CPU, like most personal computers, say N. If
123 you have a system with more than one CPU, say Y.
124
125 If you say N here, the kernel will run on single and multiprocessor
126 machines, but will use only one CPU of a multiprocessor machine. If
127 you say Y here, the kernel will run on many, but not all,
128 singleprocessor machines. On a singleprocessor machine, the kernel
129 will run faster if you say N here.
130
03502faa
AB
131 See also the SMP-HOWTO available at
132 <http://www.tldp.org/docs.html#howto>.
1da177e4
LT
133
134 Even if you don't know what to do here, say Y.
135
136config NR_CPUS
137 int "Maximum number of CPUs (2-64)"
138 range 2 64
139 depends on SMP
057c5cb3
HC
140 default "32" if !64BIT
141 default "64" if 64BIT
1da177e4
LT
142 help
143 This allows you to specify the maximum number of CPUs which this
144 kernel will support. The maximum supported value is 64 and the
145 minimum value which makes sense is 2.
146
147 This is purely to save memory - each supported CPU adds
148 approximately sixteen kilobytes to the kernel image.
149
150config HOTPLUG_CPU
151 bool "Support for hot-pluggable CPUs"
152 depends on SMP
153 select HOTPLUG
154 default n
155 help
156 Say Y here to be able to turn CPUs off and on. CPUs
157 can be controlled through /sys/devices/system/cpu/cpu#.
158 Say N if you want to disable CPU hotplug.
159
160config MATHEMU
161 bool "IEEE FPU emulation"
162 depends on MARCH_G5
163 help
164 This option is required for IEEE compliant floating point arithmetic
165 on older S/390 machines. Say Y unless you know your machine doesn't
166 need this.
167
347a8dc3 168config COMPAT
1da177e4 169 bool "Kernel support for 31 bit emulation"
347a8dc3 170 depends on 64BIT
63506c41 171 select COMPAT_BINFMT_ELF
1da177e4
LT
172 help
173 Select this option if you want to enable your system kernel to
174 handle system-calls from ELF binaries for 31 bit ESA. This option
175 (and some other stuff like libraries and such) is needed for
176 executing 31 bit applications. It is safe to say "Y".
177
1da177e4
LT
178config SYSVIPC_COMPAT
179 bool
180 depends on COMPAT && SYSVIPC
181 default y
182
e65e1fc2
AV
183config AUDIT_ARCH
184 bool
185 default y
186
c1821c2e
GS
187config S390_SWITCH_AMODE
188 bool "Switch kernel/user addressing modes"
189 help
190 This option allows to switch the addressing modes of kernel and user
191 space. The kernel parameter switch_amode=on will enable this feature,
192 default is disabled. Enabling this (via kernel parameter) on machines
193 earlier than IBM System z9-109 EC/BC will reduce system performance.
194
195 Note that this option will also be selected by selecting the execute
196 protection option below. Enabling the execute protection via the
197 noexec kernel parameter will also switch the addressing modes,
198 independent of the switch_amode kernel parameter.
199
200
201config S390_EXEC_PROTECT
202 bool "Data execute protection"
203 select S390_SWITCH_AMODE
204 help
205 This option allows to enable a buffer overflow protection for user
206 space programs and it also selects the addressing mode option above.
207 The kernel parameter noexec=on will enable this feature and also
208 switch the addressing modes, default is disabled. Enabling this (via
209 kernel parameter) on machines earlier than IBM System z9-109 EC/BC
210 will reduce system performance.
211
1da177e4
LT
212comment "Code generation options"
213
214choice
215 prompt "Processor type"
216 default MARCH_G5
217
218config MARCH_G5
219 bool "S/390 model G5 and G6"
347a8dc3 220 depends on !64BIT
1da177e4
LT
221 help
222 Select this to build a 31 bit kernel that works
223 on all S/390 and zSeries machines.
224
225config MARCH_Z900
226 bool "IBM eServer zSeries model z800 and z900"
227 help
228 Select this to optimize for zSeries machines. This
229 will enable some optimizations that are not available
230 on older 31 bit only CPUs.
231
232config MARCH_Z990
233 bool "IBM eServer zSeries model z890 and z990"
234 help
235 Select this enable optimizations for model z890/z990.
236 This will be slightly faster but does not work on
237 older machines such as the z900.
238
0efa4703
CB
239config MARCH_Z9_109
240 bool "IBM System z9"
241 help
242 Select this to enable optimizations for IBM System z9-109, IBM
243 System z9 Enterprise Class (z9 EC), and IBM System z9 Business
244 Class (z9 BC). The kernel will be slightly faster but will not
245 work on older machines such as the z990, z890, z900, and z800.
246
e37f50e1
MS
247config MARCH_Z10
248 bool "IBM System z10"
249 help
250 Select this to enable optimizations for IBM System z10. The
251 kernel will be slightly faster but will not work on older
252 machines such as the z990, z890, z900, z800, z9-109, z9-ec
253 and z9-bc.
254
1da177e4
LT
255endchoice
256
257config PACK_STACK
258 bool "Pack kernel stack"
259 help
260 This option enables the compiler option -mkernel-backchain if it
261 is available. If the option is available the compiler supports
262 the new stack layout which dramatically reduces the minimum stack
263 frame size. With an old compiler a non-leaf function needs a
264 minimum of 96 bytes on 31 bit and 160 bytes on 64 bit. With
265 -mkernel-backchain the minimum size drops to 16 byte on 31 bit
266 and 24 byte on 64 bit.
267
268 Say Y if you are unsure.
269
270config SMALL_STACK
7f5a8ba6
HC
271 bool "Use 8kb for kernel stack instead of 16kb"
272 depends on PACK_STACK && 64BIT && !LOCKDEP
1da177e4
LT
273 help
274 If you say Y here and the compiler supports the -mkernel-backchain
7f5a8ba6
HC
275 option the kernel will use a smaller kernel stack size. The reduced
276 size is 8kb instead of 16kb. This allows to run more threads on a
277 system and reduces the pressure on the memory management for higher
278 order page allocations.
1da177e4
LT
279
280 Say N if you are unsure.
281
1da177e4
LT
282config CHECK_STACK
283 bool "Detect kernel stack overflow"
284 help
285 This option enables the compiler option -mstack-guard and
286 -mstack-size if they are available. If the compiler supports them
287 it will emit additional code to each function prolog to trigger
288 an illegal operation if the kernel stack is about to overflow.
289
290 Say N if you are unsure.
291
292config STACK_GUARD
293 int "Size of the guard area (128-1024)"
294 range 128 1024
295 depends on CHECK_STACK
296 default "256"
297 help
298 This allows you to specify the size of the guard area at the lower
299 end of the kernel stack. If the kernel stack points into the guard
300 area on function entry an illegal operation is triggered. The size
301 needs to be a power of 2. Please keep in mind that the size of an
302 interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit.
303 The minimum size for the stack guard should be 256 for 31 bit and
304 512 for 64 bit.
305
306config WARN_STACK
307 bool "Emit compiler warnings for function with broken stack usage"
308 help
309 This option enables the compiler options -mwarn-framesize and
310 -mwarn-dynamicstack. If the compiler supports these options it
311 will generate warnings for function which either use alloca or
025dfdaf 312 create a stack frame bigger than CONFIG_WARN_STACK_SIZE.
1da177e4
LT
313
314 Say N if you are unsure.
315
316config WARN_STACK_SIZE
317 int "Maximum frame size considered safe (128-2048)"
318 range 128 2048
319 depends on WARN_STACK
c5a37255 320 default "2048"
1da177e4
LT
321 help
322 This allows you to specify the maximum frame size a function may
323 have without the compiler complaining about it.
324
39b742f9
HC
325config ARCH_POPULATES_NODE_MAP
326 def_bool y
327
61d48c2c
MS
328comment "Kernel preemption"
329
330source "kernel/Kconfig.preempt"
331
17f34580
HC
332config ARCH_SPARSEMEM_ENABLE
333 def_bool y
334 select SPARSEMEM_VMEMMAP_ENABLE
335 select SPARSEMEM_VMEMMAP
148f1678 336 select SPARSEMEM_STATIC if !64BIT
17f34580
HC
337
338config ARCH_SPARSEMEM_DEFAULT
339 def_bool y
340
97195d6b
HJP
341config ARCH_SELECT_MEMORY_MODEL
342 def_bool y
343
421c175c
HC
344config ARCH_ENABLE_MEMORY_HOTPLUG
345 def_bool y
346 depends on SPARSEMEM
347
7e9238fb
GS
348config ARCH_ENABLE_MEMORY_HOTREMOVE
349 def_bool y
350
3f22ab27
DH
351source "mm/Kconfig"
352
1da177e4
LT
353comment "I/O subsystem configuration"
354
1da177e4
LT
355config QDIO
356 tristate "QDIO support"
357 ---help---
8129ee16 358 This driver provides the Queued Direct I/O base support for
efca13bc 359 IBM System z.
1da177e4
LT
360
361 To compile this driver as a module, choose M here: the
362 module will be called qdio.
363
364 If unsure, say Y.
365
9d92a7e1
CH
366config CHSC_SCH
367 tristate "Support for CHSC subchannels"
368 help
369 This driver allows usage of CHSC subchannels. A CHSC subchannel
370 is usually present on LPAR only.
371 The driver creates a device /dev/chsc, which may be used to
372 obtain I/O configuration information about the machine and
373 to issue asynchronous chsc commands (DANGEROUS).
374 You will usually only want to use this interface on a special
375 LPAR designated for system management.
376
377 To compile this driver as a module, choose M here: the
378 module will be called chsc_sch.
379
380 If unsure, say N.
381
1da177e4
LT
382comment "Misc"
383
1da177e4
LT
384config IPL
385 bool "Builtin IPL record support"
386 help
387 If you want to use the produced kernel to IPL directly from a
388 device, you have to merge a bootsector specific to the device
389 into the first bytes of the kernel. You will have to select the
390 IPL device.
391
392choice
393 prompt "IPL method generated into head.S"
394 depends on IPL
46e7951f 395 default IPL_VM
1da177e4
LT
396 help
397 Select "tape" if you want to IPL the image from a Tape.
398
399 Select "vm_reader" if you are running under VM/ESA and want
400 to IPL the image from the emulated card reader.
401
402config IPL_TAPE
403 bool "tape"
404
405config IPL_VM
406 bool "vm_reader"
407
408endchoice
409
410source "fs/Kconfig.binfmt"
411
684de39b
HC
412config FORCE_MAX_ZONEORDER
413 int
414 default "9"
415
1da177e4
LT
416config PROCESS_DEBUG
417 bool "Show crashed user process info"
418 help
419 Say Y to print all process fault locations to the console. This is
420 a debugging option; you probably do not want to set it unless you
421 are an S390 port maintainer.
422
423config PFAULT
424 bool "Pseudo page fault support"
425 help
426 Select this option, if you want to use PFAULT pseudo page fault
427 handling under VM. If running native or in LPAR, this option
428 has no effect. If your VM does not support PFAULT, PAGEEX
429 pseudo page fault handling will be used.
430 Note that VM 4.2 supports PFAULT but has a bug in its
431 implementation that causes some problems.
432 Everybody who wants to run Linux under VM != VM4.2 should select
433 this option.
434
435config SHARED_KERNEL
436 bool "VM shared kernel support"
437 help
438 Select this option, if you want to share the text segment of the
439 Linux kernel between different VM guests. This reduces memory
440 usage with lots of guests but greatly increases kernel size.
9c9c1761
HC
441 Also if a kernel was IPL'ed from a shared segment the kexec system
442 call will not work.
1da177e4
LT
443 You should only select this option if you know what you are
444 doing and want to exploit this feature.
445
446config CMM
447 tristate "Cooperative memory management"
448 help
449 Select this option, if you want to enable the kernel interface
450 to reduce the memory size of the system. This is accomplished
451 by allocating pages of memory and put them "on hold". This only
452 makes sense for a system running under VM where the unused pages
453 will be reused by VM for other guest systems. The interface
454 allows an external monitor to balance memory of many systems.
455 Everybody who wants to run Linux under VM should select this
456 option.
457
458config CMM_PROC
459 bool "/proc interface to cooperative memory management"
460 depends on CMM
461 help
462 Select this option to enable the /proc interface to the
463 cooperative memory management.
464
465config CMM_IUCV
466 bool "IUCV special message interface to cooperative memory management"
467 depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
468 help
469 Select this option to enable the special message interface to
470 the cooperative memory management.
471
45e576b1
MS
472config PAGE_STATES
473 bool "Unused page notification"
474 help
475 This enables the notification of unused pages to the
476 hypervisor. The ESSA instruction is used to do the states
477 changes between a page that has content and the unused state.
478
1da177e4
LT
479config APPLDATA_BASE
480 bool "Linux - VM Monitor Stream, base infrastructure"
c185b783 481 depends on PROC_FS
1da177e4
LT
482 help
483 This provides a kernel interface for creating and updating z/VM APPLDATA
484 monitor records. The monitor records are updated at certain time
485 intervals, once the timer is started.
486 Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
487 i.e. enables or disables monitoring on the Linux side.
488 A custom interval value (in seconds) can be written to
489 /proc/appldata/interval.
490
491 Defaults are 60 seconds interval and timer off.
492 The /proc entries can also be read from, showing the current settings.
493
494config APPLDATA_MEM
495 tristate "Monitor memory management statistics"
62fb2ba3 496 depends on APPLDATA_BASE && VM_EVENT_COUNTERS
1da177e4
LT
497 help
498 This provides memory management related data to the Linux - VM Monitor
499 Stream, like paging/swapping rate, memory utilisation, etc.
500 Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM
501 APPLDATA monitor record, i.e. enables or disables monitoring this record
502 on the z/VM side.
503
504 Default is disabled.
505 The /proc entry can also be read from, showing the current settings.
506
507 This can also be compiled as a module, which will be called
508 appldata_mem.o.
509
510config APPLDATA_OS
511 tristate "Monitor OS statistics"
512 depends on APPLDATA_BASE
513 help
514 This provides OS related data to the Linux - VM Monitor Stream, like
515 CPU utilisation, etc.
516 Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
517 APPLDATA monitor record, i.e. enables or disables monitoring this record
518 on the z/VM side.
519
520 Default is disabled.
521 This can also be compiled as a module, which will be called
522 appldata_os.o.
523
524config APPLDATA_NET_SUM
525 tristate "Monitor overall network statistics"
70193af9 526 depends on APPLDATA_BASE && NET
1da177e4
LT
527 help
528 This provides network related data to the Linux - VM Monitor Stream,
529 currently there is only a total sum of network I/O statistics, no
530 per-interface data.
531 Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
532 APPLDATA monitor record, i.e. enables or disables monitoring this record
533 on the z/VM side.
534
535 Default is disabled.
536 This can also be compiled as a module, which will be called
537 appldata_net_sum.o.
538
61d48c2c
MS
539source kernel/Kconfig.hz
540
24bbb1fa
MH
541config S390_HYPFS_FS
542 bool "s390 hypervisor file system support"
543 select SYS_HYPERVISOR
544 default y
545 help
546 This is a virtual file system intended to provide accounting
547 information in an s390 hypervisor environment.
548
cf13f0ea 549config KEXEC
07d43ce6 550 bool "kexec system call"
cf13f0ea
HC
551 help
552 kexec is a system call that implements the ability to shutdown your
553 current kernel, and to start another kernel. It is like a reboot
554 but is independent of hardware/microcode support.
555
411ed322 556config ZFCPDUMP
59f2e69d 557 bool "zfcpdump support"
411ed322
MH
558 select SMP
559 default n
560 help
561 Select this option if you want to build an zfcpdump enabled kernel.
e403149c 562 Refer to <file:Documentation/s390/zfcpdump.txt> for more details on this.
411ed322 563
fa587743 564config S390_GUEST
20766c08 565bool "s390 guest support for KVM (EXPERIMENTAL)"
fa587743
CO
566 depends on 64BIT && EXPERIMENTAL
567 select VIRTIO
568 select VIRTIO_RING
faeba830 569 select VIRTIO_CONSOLE
fa587743 570 help
20766c08
CB
571 Select this option if you want to run the kernel as a guest under
572 the KVM hypervisor. This will add detection for KVM as well as a
573 virtio transport. If KVM is detected, the virtio console will be
574 the default console.
bcf5cef7
HC
575
576config SECCOMP
577 bool "Enable seccomp to safely compute untrusted bytecode"
578 depends on PROC_FS
579 default y
580 help
581 This kernel feature is useful for number crunching applications
582 that may need to compute untrusted bytecode during their
583 execution. By using pipes or other transports made available to
584 the process as file descriptors supporting the read/write
585 syscalls, it's possible to isolate those applications in
586 their own address space using seccomp. Once seccomp is
587 enabled via /proc/<pid>/seccomp, it cannot be disabled
588 and the task is only allowed to execute a few safe syscalls
589 defined by each seccomp mode.
590
591 If unsure, say Y.
592
1da177e4
LT
593endmenu
594
d5950b43
SR
595source "net/Kconfig"
596
1da177e4 597config PCMCIA
61d48c2c 598 def_bool n
1da177e4 599
61d48c2c
MS
600config CCW
601 def_bool y
1da177e4 602
61d48c2c 603source "drivers/Kconfig"
1da177e4
LT
604
605source "fs/Kconfig"
606
1da177e4
LT
607source "arch/s390/Kconfig.debug"
608
609source "security/Kconfig"
610
611source "crypto/Kconfig"
612
613source "lib/Kconfig"
77b455f1
CB
614
615source "arch/s390/kvm/Kconfig"