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