x86/xen: resume timer irqs early
[linux/fpc-iii.git] / arch / s390 / Kconfig
blob6671e8db186191445b0023c1e105db287777d72b
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 ARCH_DISCARD_MEMBLOCK
64         select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
65         select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
66         select ARCH_HAVE_NMI_SAFE_CMPXCHG
67         select ARCH_INLINE_READ_LOCK
68         select ARCH_INLINE_READ_LOCK_BH
69         select ARCH_INLINE_READ_LOCK_IRQ
70         select ARCH_INLINE_READ_LOCK_IRQSAVE
71         select ARCH_INLINE_READ_TRYLOCK
72         select ARCH_INLINE_READ_UNLOCK
73         select ARCH_INLINE_READ_UNLOCK_BH
74         select ARCH_INLINE_READ_UNLOCK_IRQ
75         select ARCH_INLINE_READ_UNLOCK_IRQRESTORE
76         select ARCH_INLINE_SPIN_LOCK
77         select ARCH_INLINE_SPIN_LOCK_BH
78         select ARCH_INLINE_SPIN_LOCK_IRQ
79         select ARCH_INLINE_SPIN_LOCK_IRQSAVE
80         select ARCH_INLINE_SPIN_TRYLOCK
81         select ARCH_INLINE_SPIN_TRYLOCK_BH
82         select ARCH_INLINE_SPIN_UNLOCK
83         select ARCH_INLINE_SPIN_UNLOCK_BH
84         select ARCH_INLINE_SPIN_UNLOCK_IRQ
85         select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
86         select ARCH_INLINE_WRITE_LOCK
87         select ARCH_INLINE_WRITE_LOCK_BH
88         select ARCH_INLINE_WRITE_LOCK_IRQ
89         select ARCH_INLINE_WRITE_LOCK_IRQSAVE
90         select ARCH_INLINE_WRITE_TRYLOCK
91         select ARCH_INLINE_WRITE_UNLOCK
92         select ARCH_INLINE_WRITE_UNLOCK_BH
93         select ARCH_INLINE_WRITE_UNLOCK_IRQ
94         select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
95         select ARCH_SAVE_PAGE_KEYS if HIBERNATION
96         select ARCH_USE_CMPXCHG_LOCKREF
97         select ARCH_WANT_IPC_PARSE_VERSION
98         select BUILDTIME_EXTABLE_SORT
99         select CLONE_BACKWARDS2
100         select GENERIC_CLOCKEVENTS
101         select GENERIC_CPU_DEVICES if !SMP
102         select GENERIC_SMP_IDLE_THREAD
103         select GENERIC_TIME_VSYSCALL
104         select HAVE_ALIGNED_STRUCT_PAGE if SLUB
105         select HAVE_ARCH_JUMP_LABEL if !MARCH_G5
106         select HAVE_ARCH_SECCOMP_FILTER
107         select HAVE_ARCH_TRACEHOOK
108         select HAVE_ARCH_TRANSPARENT_HUGEPAGE if 64BIT
109         select HAVE_BPF_JIT if 64BIT && PACK_STACK
110         select HAVE_CMPXCHG_DOUBLE
111         select HAVE_CMPXCHG_LOCAL
112         select HAVE_C_RECORDMCOUNT
113         select HAVE_DEBUG_KMEMLEAK
114         select HAVE_DYNAMIC_FTRACE
115         select HAVE_FTRACE_MCOUNT_RECORD
116         select HAVE_FUNCTION_GRAPH_TRACER
117         select HAVE_FUNCTION_TRACER
118         select HAVE_FUNCTION_TRACE_MCOUNT_TEST
119         select HAVE_FUTEX_CMPXCHG if FUTEX
120         select HAVE_KERNEL_BZIP2
121         select HAVE_KERNEL_GZIP
122         select HAVE_KERNEL_LZ4
123         select HAVE_KERNEL_LZMA
124         select HAVE_KERNEL_LZO
125         select HAVE_KERNEL_XZ
126         select HAVE_KPROBES
127         select HAVE_KRETPROBES
128         select HAVE_KVM if 64BIT
129         select HAVE_MEMBLOCK
130         select HAVE_MEMBLOCK_NODE_MAP
131         select HAVE_MOD_ARCH_SPECIFIC
132         select HAVE_OPROFILE
133         select HAVE_PERF_EVENTS
134         select HAVE_REGS_AND_STACK_ACCESS_API
135         select HAVE_SYSCALL_TRACEPOINTS
136         select HAVE_UID16 if 32BIT
137         select HAVE_VIRT_CPU_ACCOUNTING
138         select INIT_ALL_POSSIBLE
139         select KTIME_SCALAR if 32BIT
140         select MODULES_USE_ELF_RELA
141         select OLD_SIGACTION
142         select OLD_SIGSUSPEND3
143         select SYSCTL_EXCEPTION_TRACE
144         select USE_GENERIC_SMP_HELPERS if SMP
145         select VIRT_CPU_ACCOUNTING
146         select VIRT_TO_BUS
148 config SCHED_OMIT_FRAME_POINTER
149         def_bool y
151 source "init/Kconfig"
153 source "kernel/Kconfig.freezer"
155 menu "Processor type and features"
157 config HAVE_MARCH_Z900_FEATURES
158         def_bool n
160 config HAVE_MARCH_Z990_FEATURES
161         def_bool n
162         select HAVE_MARCH_Z900_FEATURES
164 config HAVE_MARCH_Z9_109_FEATURES
165         def_bool n
166         select HAVE_MARCH_Z990_FEATURES
168 config HAVE_MARCH_Z10_FEATURES
169         def_bool n
170         select HAVE_MARCH_Z9_109_FEATURES
172 config HAVE_MARCH_Z196_FEATURES
173         def_bool n
174         select HAVE_MARCH_Z10_FEATURES
176 config HAVE_MARCH_ZEC12_FEATURES
177         def_bool n
178         select HAVE_MARCH_Z196_FEATURES
180 choice
181         prompt "Processor type"
182         default MARCH_G5
184 config MARCH_G5
185         bool "System/390 model G5 and G6"
186         depends on !64BIT
187         help
188           Select this to build a 31 bit kernel that works
189           on all ESA/390 and z/Architecture machines.
191 config MARCH_Z900
192         bool "IBM zSeries model z800 and z900"
193         select HAVE_MARCH_Z900_FEATURES if 64BIT
194         help
195           Select this to enable optimizations for model z800/z900 (2064 and
196           2066 series). This will enable some optimizations that are not
197           available on older ESA/390 (31 Bit) only CPUs.
199 config MARCH_Z990
200         bool "IBM zSeries model z890 and z990"
201         select HAVE_MARCH_Z990_FEATURES if 64BIT
202         help
203           Select this to enable optimizations for model z890/z990 (2084 and
204           2086 series). The kernel will be slightly faster but will not work
205           on older machines.
207 config MARCH_Z9_109
208         bool "IBM System z9"
209         select HAVE_MARCH_Z9_109_FEATURES if 64BIT
210         help
211           Select this to enable optimizations for IBM System z9 (2094 and
212           2096 series). The kernel will be slightly faster but will not work
213           on older machines.
215 config MARCH_Z10
216         bool "IBM System z10"
217         select HAVE_MARCH_Z10_FEATURES if 64BIT
218         help
219           Select this to enable optimizations for IBM System z10 (2097 and
220           2098 series). The kernel will be slightly faster but will not work
221           on older machines.
223 config MARCH_Z196
224         bool "IBM zEnterprise 114 and 196"
225         select HAVE_MARCH_Z196_FEATURES if 64BIT
226         help
227           Select this to enable optimizations for IBM zEnterprise 114 and 196
228           (2818 and 2817 series). The kernel will be slightly faster but will
229           not work on older machines.
231 config MARCH_ZEC12
232         bool "IBM zBC12 and zEC12"
233         select HAVE_MARCH_ZEC12_FEATURES if 64BIT
234         help
235           Select this to enable optimizations for IBM zBC12 and zEC12 (2828 and
236           2827 series). The kernel will be slightly faster but will not work on
237           older machines.
239 endchoice
241 config 64BIT
242         def_bool y
243         prompt "64 bit kernel"
244         help
245           Select this option if you have an IBM z/Architecture machine
246           and want to use the 64 bit addressing mode.
248 config 32BIT
249         def_bool y if !64BIT
251 config COMPAT
252         def_bool y
253         prompt "Kernel support for 31 bit emulation"
254         depends on 64BIT
255         select COMPAT_BINFMT_ELF if BINFMT_ELF
256         select ARCH_WANT_OLD_COMPAT_IPC
257         select COMPAT_OLD_SIGACTION
258         help
259           Select this option if you want to enable your system kernel to
260           handle system-calls from ELF binaries for 31 bit ESA.  This option
261           (and some other stuff like libraries and such) is needed for
262           executing 31 bit applications.  It is safe to say "Y".
264 config SYSVIPC_COMPAT
265         def_bool y if COMPAT && SYSVIPC
267 config KEYS_COMPAT
268         def_bool y if COMPAT && KEYS
270 config SMP
271         def_bool y
272         prompt "Symmetric multi-processing support"
273         ---help---
274           This enables support for systems with more than one CPU. If you have
275           a system with only one CPU, like most personal computers, say N. If
276           you have a system with more than one CPU, say Y.
278           If you say N here, the kernel will run on single and multiprocessor
279           machines, but will use only one CPU of a multiprocessor machine. If
280           you say Y here, the kernel will run on many, but not all,
281           singleprocessor machines. On a singleprocessor machine, the kernel
282           will run faster if you say N here.
284           See also the SMP-HOWTO available at
285           <http://www.tldp.org/docs.html#howto>.
287           Even if you don't know what to do here, say Y.
289 config NR_CPUS
290         int "Maximum number of CPUs (2-64)"
291         range 2 64
292         depends on SMP
293         default "32" if !64BIT
294         default "64" if 64BIT
295         help
296           This allows you to specify the maximum number of CPUs which this
297           kernel will support.  The maximum supported value is 64 and the
298           minimum value which makes sense is 2.
300           This is purely to save memory - each supported CPU adds
301           approximately sixteen kilobytes to the kernel image.
303 config HOTPLUG_CPU
304         def_bool y
305         prompt "Support for hot-pluggable CPUs"
306         depends on SMP
307         help
308           Say Y here to be able to turn CPUs off and on. CPUs
309           can be controlled through /sys/devices/system/cpu/cpu#.
310           Say N if you want to disable CPU hotplug.
312 config SCHED_MC
313         def_bool n
315 config SCHED_BOOK
316         def_bool y
317         prompt "Book scheduler support"
318         depends on SMP
319         select SCHED_MC
320         help
321           Book scheduler support improves the CPU scheduler's decision making
322           when dealing with machines that have several books.
324 source kernel/Kconfig.preempt
326 config MATHEMU
327         def_bool y
328         prompt "IEEE FPU emulation"
329         depends on MARCH_G5
330         help
331           This option is required for IEEE compliant floating point arithmetic
332           on older ESA/390 machines. Say Y unless you know your machine doesn't
333           need this.
335 source kernel/Kconfig.hz
337 endmenu
339 menu "Memory setup"
341 config ARCH_SPARSEMEM_ENABLE
342         def_bool y
343         select SPARSEMEM_VMEMMAP_ENABLE
344         select SPARSEMEM_VMEMMAP
345         select SPARSEMEM_STATIC if !64BIT
347 config ARCH_SPARSEMEM_DEFAULT
348         def_bool y
350 config ARCH_SELECT_MEMORY_MODEL
351         def_bool y
353 config ARCH_ENABLE_MEMORY_HOTPLUG
354         def_bool y if SPARSEMEM
356 config ARCH_ENABLE_MEMORY_HOTREMOVE
357         def_bool y
359 config FORCE_MAX_ZONEORDER
360         int
361         default "9"
363 source "mm/Kconfig"
365 config PACK_STACK
366         def_bool y
367         prompt "Pack kernel stack"
368         help
369           This option enables the compiler option -mkernel-backchain if it
370           is available. If the option is available the compiler supports
371           the new stack layout which dramatically reduces the minimum stack
372           frame size. With an old compiler a non-leaf function needs a
373           minimum of 96 bytes on 31 bit and 160 bytes on 64 bit. With
374           -mkernel-backchain the minimum size drops to 16 byte on 31 bit
375           and 24 byte on 64 bit.
377           Say Y if you are unsure.
379 config CHECK_STACK
380         def_bool y
381         prompt "Detect kernel stack overflow"
382         help
383           This option enables the compiler option -mstack-guard and
384           -mstack-size if they are available. If the compiler supports them
385           it will emit additional code to each function prolog to trigger
386           an illegal operation if the kernel stack is about to overflow.
388           Say N if you are unsure.
390 config STACK_GUARD
391         int "Size of the guard area (128-1024)"
392         range 128 1024
393         depends on CHECK_STACK
394         default "256"
395         help
396           This allows you to specify the size of the guard area at the lower
397           end of the kernel stack. If the kernel stack points into the guard
398           area on function entry an illegal operation is triggered. The size
399           needs to be a power of 2. Please keep in mind that the size of an
400           interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit.
401           The minimum size for the stack guard should be 256 for 31 bit and
402           512 for 64 bit.
404 config WARN_DYNAMIC_STACK
405         def_bool n
406         prompt "Emit compiler warnings for function with dynamic stack usage"
407         help
408           This option enables the compiler option -mwarn-dynamicstack. If the
409           compiler supports this options generates warnings for functions
410           that dynamically allocate stack space using alloca.
412           Say N if you are unsure.
414 endmenu
416 menu "I/O subsystem"
418 config QDIO
419         def_tristate y
420         prompt "QDIO support"
421         ---help---
422           This driver provides the Queued Direct I/O base support for
423           IBM System z.
425           To compile this driver as a module, choose M here: the
426           module will be called qdio.
428           If unsure, say Y.
430 menuconfig PCI
431         bool "PCI support"
432         default n
433         depends on 64BIT
434         select PCI_MSI
435         help
436           Enable PCI support.
438 if PCI
440 config PCI_NR_FUNCTIONS
441         int "Maximum number of PCI functions (1-4096)"
442         range 1 4096
443         default "64"
444         help
445           This allows you to specify the maximum number of PCI functions which
446           this kernel will support.
448 config PCI_NR_MSI
449         int "Maximum number of MSI interrupts (64-32768)"
450         range 64 32768
451         default "256"
452         help
453           This defines the number of virtual interrupts the kernel will
454           provide for MSI interrupts. If you configure your system to have
455           too few drivers will fail to allocate MSI interrupts for all
456           PCI devices.
458 source "drivers/pci/Kconfig"
459 source "drivers/pci/pcie/Kconfig"
460 source "drivers/pci/hotplug/Kconfig"
462 endif   # PCI
464 config PCI_DOMAINS
465         def_bool PCI
467 config HAS_IOMEM
468         def_bool PCI
470 config IOMMU_HELPER
471         def_bool PCI
473 config HAS_DMA
474         def_bool PCI
475         select HAVE_DMA_API_DEBUG
477 config NEED_SG_DMA_LENGTH
478         def_bool PCI
480 config HAVE_DMA_ATTRS
481         def_bool PCI
483 config NEED_DMA_MAP_STATE
484         def_bool PCI
486 config CHSC_SCH
487         def_tristate m
488         prompt "Support for CHSC subchannels"
489         help
490           This driver allows usage of CHSC subchannels. A CHSC subchannel
491           is usually present on LPAR only.
492           The driver creates a device /dev/chsc, which may be used to
493           obtain I/O configuration information about the machine and
494           to issue asynchronous chsc commands (DANGEROUS).
495           You will usually only want to use this interface on a special
496           LPAR designated for system management.
498           To compile this driver as a module, choose M here: the
499           module will be called chsc_sch.
501           If unsure, say N.
503 config SCM_BUS
504         def_bool y
505         depends on 64BIT
506         prompt "SCM bus driver"
507         help
508           Bus driver for Storage Class Memory.
510 config EADM_SCH
511         def_tristate m
512         prompt "Support for EADM subchannels"
513         depends on SCM_BUS
514         help
515           This driver allows usage of EADM subchannels. EADM subchannels act
516           as a communication vehicle for SCM increments.
518           To compile this driver as a module, choose M here: the
519           module will be called eadm_sch.
521 endmenu
523 menu "Dump support"
525 config CRASH_DUMP
526         bool "kernel crash dumps"
527         depends on 64BIT && SMP
528         select KEXEC
529         select ZFCPDUMP
530         help
531           Generate crash dump after being started by kexec.
532           Crash dump kernels are loaded in the main kernel with kexec-tools
533           into a specially reserved region and then later executed after
534           a crash by kdump/kexec.
535           For more details see Documentation/kdump/kdump.txt
537 config ZFCPDUMP
538         def_bool n
539         prompt "zfcpdump support"
540         depends on SMP
541         help
542           Select this option if you want to build an zfcpdump enabled kernel.
543           Refer to <file:Documentation/s390/zfcpdump.txt> for more details on this.
545 endmenu
547 menu "Executable file formats / Emulations"
549 source "fs/Kconfig.binfmt"
551 config SECCOMP
552         def_bool y
553         prompt "Enable seccomp to safely compute untrusted bytecode"
554         depends on PROC_FS
555         help
556           This kernel feature is useful for number crunching applications
557           that may need to compute untrusted bytecode during their
558           execution. By using pipes or other transports made available to
559           the process as file descriptors supporting the read/write
560           syscalls, it's possible to isolate those applications in
561           their own address space using seccomp. Once seccomp is
562           enabled via /proc/<pid>/seccomp, it cannot be disabled
563           and the task is only allowed to execute a few safe syscalls
564           defined by each seccomp mode.
566           If unsure, say Y.
568 endmenu
570 menu "Power Management"
572 config ARCH_HIBERNATION_POSSIBLE
573         def_bool y if 64BIT
575 source "kernel/power/Kconfig"
577 endmenu
579 source "net/Kconfig"
581 config PCMCIA
582         def_bool n
584 config CCW
585         def_bool y
587 source "drivers/Kconfig"
589 source "fs/Kconfig"
591 source "arch/s390/Kconfig.debug"
593 source "security/Kconfig"
595 source "crypto/Kconfig"
597 source "lib/Kconfig"
599 menu "Virtualization"
601 config PFAULT
602         def_bool y
603         prompt "Pseudo page fault support"
604         help
605           Select this option, if you want to use PFAULT pseudo page fault
606           handling under VM. If running native or in LPAR, this option
607           has no effect. If your VM does not support PFAULT, PAGEEX
608           pseudo page fault handling will be used.
609           Note that VM 4.2 supports PFAULT but has a bug in its
610           implementation that causes some problems.
611           Everybody who wants to run Linux under VM != VM4.2 should select
612           this option.
614 config SHARED_KERNEL
615         bool "VM shared kernel support"
616         depends on !JUMP_LABEL
617         help
618           Select this option, if you want to share the text segment of the
619           Linux kernel between different VM guests. This reduces memory
620           usage with lots of guests but greatly increases kernel size.
621           Also if a kernel was IPL'ed from a shared segment the kexec system
622           call will not work.
623           You should only select this option if you know what you are
624           doing and want to exploit this feature.
626 config CMM
627         def_tristate n
628         prompt "Cooperative memory management"
629         help
630           Select this option, if you want to enable the kernel interface
631           to reduce the memory size of the system. This is accomplished
632           by allocating pages of memory and put them "on hold". This only
633           makes sense for a system running under VM where the unused pages
634           will be reused by VM for other guest systems. The interface
635           allows an external monitor to balance memory of many systems.
636           Everybody who wants to run Linux under VM should select this
637           option.
639 config CMM_IUCV
640         def_bool y
641         prompt "IUCV special message interface to cooperative memory management"
642         depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
643         help
644           Select this option to enable the special message interface to
645           the cooperative memory management.
647 config APPLDATA_BASE
648         def_bool n
649         prompt "Linux - VM Monitor Stream, base infrastructure"
650         depends on PROC_FS
651         help
652           This provides a kernel interface for creating and updating z/VM APPLDATA
653           monitor records. The monitor records are updated at certain time
654           intervals, once the timer is started.
655           Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
656           i.e. enables or disables monitoring on the Linux side.
657           A custom interval value (in seconds) can be written to
658           /proc/appldata/interval.
660           Defaults are 60 seconds interval and timer off.
661           The /proc entries can also be read from, showing the current settings.
663 config APPLDATA_MEM
664         def_tristate m
665         prompt "Monitor memory management statistics"
666         depends on APPLDATA_BASE && VM_EVENT_COUNTERS
667         help
668           This provides memory management related data to the Linux - VM Monitor
669           Stream, like paging/swapping rate, memory utilisation, etc.
670           Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM
671           APPLDATA monitor record, i.e. enables or disables monitoring this record
672           on the z/VM side.
674           Default is disabled.
675           The /proc entry can also be read from, showing the current settings.
677           This can also be compiled as a module, which will be called
678           appldata_mem.o.
680 config APPLDATA_OS
681         def_tristate m
682         prompt "Monitor OS statistics"
683         depends on APPLDATA_BASE
684         help
685           This provides OS related data to the Linux - VM Monitor Stream, like
686           CPU utilisation, etc.
687           Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
688           APPLDATA monitor record, i.e. enables or disables monitoring this record
689           on the z/VM side.
691           Default is disabled.
692           This can also be compiled as a module, which will be called
693           appldata_os.o.
695 config APPLDATA_NET_SUM
696         def_tristate m
697         prompt "Monitor overall network statistics"
698         depends on APPLDATA_BASE && NET
699         help
700           This provides network related data to the Linux - VM Monitor Stream,
701           currently there is only a total sum of network I/O statistics, no
702           per-interface data.
703           Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
704           APPLDATA monitor record, i.e. enables or disables monitoring this record
705           on the z/VM side.
707           Default is disabled.
708           This can also be compiled as a module, which will be called
709           appldata_net_sum.o.
711 config S390_HYPFS_FS
712         def_bool y
713         prompt "s390 hypervisor file system support"
714         select SYS_HYPERVISOR
715         help
716           This is a virtual file system intended to provide accounting
717           information in an s390 hypervisor environment.
719 source "arch/s390/kvm/Kconfig"
721 config S390_GUEST
722         def_bool y
723         prompt "s390 support for virtio devices"
724         depends on 64BIT
725         select TTY
726         select VIRTUALIZATION
727         select VIRTIO
728         select VIRTIO_CONSOLE
729         help
730           Enabling this option adds support for virtio based paravirtual device
731           drivers on s390.
733           Select this option if you want to run the kernel as a guest under
734           the KVM hypervisor.
736 endmenu