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