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