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