Merge branch 'work.compat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[linux-2.6-microblaze.git] / arch / s390 / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2 config MMU
3         def_bool y
4
5 config ZONE_DMA
6         def_bool y
7
8 config CPU_BIG_ENDIAN
9         def_bool y
10
11 config LOCKDEP_SUPPORT
12         def_bool y
13
14 config STACKTRACE_SUPPORT
15         def_bool y
16
17 config RWSEM_GENERIC_SPINLOCK
18         bool
19
20 config RWSEM_XCHGADD_ALGORITHM
21         def_bool y
22
23 config ARCH_HAS_ILOG2_U32
24         def_bool n
25
26 config ARCH_HAS_ILOG2_U64
27         def_bool n
28
29 config GENERIC_HWEIGHT
30         def_bool y
31
32 config GENERIC_BUG
33         def_bool y if BUG
34
35 config GENERIC_BUG_RELATIVE_POINTERS
36         def_bool y
37
38 config GENERIC_LOCKBREAK
39         def_bool y if SMP && PREEMPT
40
41 config PGSTE
42         def_bool y if KVM
43
44 config ARCH_SUPPORTS_DEBUG_PAGEALLOC
45         def_bool y
46
47 config AUDIT_ARCH
48         def_bool y
49
50 config NO_IOPORT_MAP
51         def_bool y
52
53 config PCI_QUIRKS
54         def_bool n
55
56 config ARCH_SUPPORTS_UPROBES
57         def_bool y
58
59 config S390
60         def_bool y
61         select ARCH_BINFMT_ELF_STATE
62         select ARCH_HAS_DEVMEM_IS_ALLOWED
63         select ARCH_HAS_ELF_RANDOMIZE
64         select ARCH_HAS_FORTIFY_SOURCE
65         select ARCH_HAS_GCOV_PROFILE_ALL
66         select ARCH_HAS_GIGANTIC_PAGE if (MEMORY_ISOLATION && COMPACTION) || CMA
67         select ARCH_HAS_KCOV
68         select ARCH_HAS_PTE_SPECIAL
69         select ARCH_HAS_SET_MEMORY
70         select ARCH_HAS_SG_CHAIN
71         select ARCH_HAS_STRICT_KERNEL_RWX
72         select ARCH_HAS_STRICT_MODULE_RWX
73         select ARCH_HAS_UBSAN_SANITIZE_ALL
74         select ARCH_HAVE_NMI_SAFE_CMPXCHG
75         select ARCH_INLINE_READ_LOCK
76         select ARCH_INLINE_READ_LOCK_BH
77         select ARCH_INLINE_READ_LOCK_IRQ
78         select ARCH_INLINE_READ_LOCK_IRQSAVE
79         select ARCH_INLINE_READ_TRYLOCK
80         select ARCH_INLINE_READ_UNLOCK
81         select ARCH_INLINE_READ_UNLOCK_BH
82         select ARCH_INLINE_READ_UNLOCK_IRQ
83         select ARCH_INLINE_READ_UNLOCK_IRQRESTORE
84         select ARCH_INLINE_SPIN_LOCK
85         select ARCH_INLINE_SPIN_LOCK_BH
86         select ARCH_INLINE_SPIN_LOCK_IRQ
87         select ARCH_INLINE_SPIN_LOCK_IRQSAVE
88         select ARCH_INLINE_SPIN_TRYLOCK
89         select ARCH_INLINE_SPIN_TRYLOCK_BH
90         select ARCH_INLINE_SPIN_UNLOCK
91         select ARCH_INLINE_SPIN_UNLOCK_BH
92         select ARCH_INLINE_SPIN_UNLOCK_IRQ
93         select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
94         select ARCH_INLINE_WRITE_LOCK
95         select ARCH_INLINE_WRITE_LOCK_BH
96         select ARCH_INLINE_WRITE_LOCK_IRQ
97         select ARCH_INLINE_WRITE_LOCK_IRQSAVE
98         select ARCH_INLINE_WRITE_TRYLOCK
99         select ARCH_INLINE_WRITE_UNLOCK
100         select ARCH_INLINE_WRITE_UNLOCK_BH
101         select ARCH_INLINE_WRITE_UNLOCK_IRQ
102         select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
103         select ARCH_SAVE_PAGE_KEYS if HIBERNATION
104         select ARCH_SUPPORTS_ATOMIC_RMW
105         select ARCH_SUPPORTS_NUMA_BALANCING
106         select ARCH_USE_BUILTIN_BSWAP
107         select ARCH_USE_CMPXCHG_LOCKREF
108         select ARCH_WANTS_DYNAMIC_TASK_STRUCT
109         select ARCH_WANTS_UBSAN_NO_NULL
110         select ARCH_WANT_IPC_PARSE_VERSION
111         select BUILDTIME_EXTABLE_SORT
112         select CLONE_BACKWARDS2
113         select DYNAMIC_FTRACE if FUNCTION_TRACER
114         select GENERIC_CLOCKEVENTS
115         select GENERIC_CPU_AUTOPROBE
116         select GENERIC_CPU_DEVICES if !SMP
117         select GENERIC_CPU_VULNERABILITIES
118         select GENERIC_FIND_FIRST_BIT
119         select GENERIC_SMP_IDLE_THREAD
120         select GENERIC_TIME_VSYSCALL
121         select HAVE_ALIGNED_STRUCT_PAGE if SLUB
122         select HAVE_ARCH_AUDITSYSCALL
123         select HAVE_ARCH_JUMP_LABEL
124         select CPU_NO_EFFICIENT_FFS if !HAVE_MARCH_Z9_109_FEATURES
125         select HAVE_ARCH_SECCOMP_FILTER
126         select HAVE_ARCH_SOFT_DIRTY
127         select HAVE_ARCH_TRACEHOOK
128         select HAVE_ARCH_TRANSPARENT_HUGEPAGE
129         select HAVE_EBPF_JIT if PACK_STACK && HAVE_MARCH_Z196_FEATURES
130         select HAVE_CMPXCHG_DOUBLE
131         select HAVE_CMPXCHG_LOCAL
132         select HAVE_COPY_THREAD_TLS
133         select HAVE_DEBUG_KMEMLEAK
134         select HAVE_DMA_CONTIGUOUS
135         select DMA_DIRECT_OPS
136         select HAVE_DYNAMIC_FTRACE
137         select HAVE_DYNAMIC_FTRACE_WITH_REGS
138         select HAVE_EFFICIENT_UNALIGNED_ACCESS
139         select HAVE_FTRACE_MCOUNT_RECORD
140         select HAVE_FUNCTION_GRAPH_TRACER
141         select HAVE_FUNCTION_TRACER
142         select HAVE_FUTEX_CMPXCHG if FUTEX
143         select HAVE_GCC_PLUGINS
144         select HAVE_KERNEL_BZIP2
145         select HAVE_KERNEL_GZIP
146         select HAVE_KERNEL_LZ4
147         select HAVE_KERNEL_LZMA
148         select HAVE_KERNEL_LZO
149         select HAVE_KERNEL_XZ
150         select HAVE_KPROBES
151         select HAVE_KRETPROBES
152         select HAVE_KVM
153         select HAVE_LIVEPATCH
154         select HAVE_PERF_REGS
155         select HAVE_PERF_USER_STACK_DUMP
156         select HAVE_MEMBLOCK
157         select HAVE_MEMBLOCK_NODE_MAP
158         select HAVE_MEMBLOCK_PHYS_MAP
159         select HAVE_MOD_ARCH_SPECIFIC
160         select HAVE_OPROFILE
161         select HAVE_PERF_EVENTS
162         select HAVE_REGS_AND_STACK_ACCESS_API
163         select HAVE_SYSCALL_TRACEPOINTS
164         select HAVE_VIRT_CPU_ACCOUNTING
165         select MODULES_USE_ELF_RELA
166         select NO_BOOTMEM
167         select OLD_SIGACTION
168         select OLD_SIGSUSPEND3
169         select SPARSE_IRQ
170         select SYSCTL_EXCEPTION_TRACE
171         select THREAD_INFO_IN_TASK
172         select TTY
173         select VIRT_CPU_ACCOUNTING
174         select ARCH_HAS_SCALED_CPUTIME
175         select VIRT_TO_BUS
176         select HAVE_NMI
177
178
179 config SCHED_OMIT_FRAME_POINTER
180         def_bool y
181
182 config PGTABLE_LEVELS
183         int
184         default 5
185
186 source "init/Kconfig"
187
188 source "kernel/Kconfig.freezer"
189
190 source "kernel/livepatch/Kconfig"
191
192 menu "Processor type and features"
193
194 config HAVE_MARCH_Z900_FEATURES
195         def_bool n
196
197 config HAVE_MARCH_Z990_FEATURES
198         def_bool n
199         select HAVE_MARCH_Z900_FEATURES
200
201 config HAVE_MARCH_Z9_109_FEATURES
202         def_bool n
203         select HAVE_MARCH_Z990_FEATURES
204
205 config HAVE_MARCH_Z10_FEATURES
206         def_bool n
207         select HAVE_MARCH_Z9_109_FEATURES
208
209 config HAVE_MARCH_Z196_FEATURES
210         def_bool n
211         select HAVE_MARCH_Z10_FEATURES
212
213 config HAVE_MARCH_ZEC12_FEATURES
214         def_bool n
215         select HAVE_MARCH_Z196_FEATURES
216
217 config HAVE_MARCH_Z13_FEATURES
218         def_bool n
219         select HAVE_MARCH_ZEC12_FEATURES
220
221 config HAVE_MARCH_Z14_FEATURES
222         def_bool n
223         select HAVE_MARCH_Z13_FEATURES
224
225 choice
226         prompt "Processor type"
227         default MARCH_Z196
228
229 config MARCH_Z900
230         bool "IBM zSeries model z800 and z900"
231         select HAVE_MARCH_Z900_FEATURES
232         help
233           Select this to enable optimizations for model z800/z900 (2064 and
234           2066 series). This will enable some optimizations that are not
235           available on older ESA/390 (31 Bit) only CPUs.
236
237 config MARCH_Z990
238         bool "IBM zSeries model z890 and z990"
239         select HAVE_MARCH_Z990_FEATURES
240         help
241           Select this to enable optimizations for model z890/z990 (2084 and
242           2086 series). The kernel will be slightly faster but will not work
243           on older machines.
244
245 config MARCH_Z9_109
246         bool "IBM System z9"
247         select HAVE_MARCH_Z9_109_FEATURES
248         help
249           Select this to enable optimizations for IBM System z9 (2094 and
250           2096 series). The kernel will be slightly faster but will not work
251           on older machines.
252
253 config MARCH_Z10
254         bool "IBM System z10"
255         select HAVE_MARCH_Z10_FEATURES
256         help
257           Select this to enable optimizations for IBM System z10 (2097 and
258           2098 series). The kernel will be slightly faster but will not work
259           on older machines.
260
261 config MARCH_Z196
262         bool "IBM zEnterprise 114 and 196"
263         select HAVE_MARCH_Z196_FEATURES
264         help
265           Select this to enable optimizations for IBM zEnterprise 114 and 196
266           (2818 and 2817 series). The kernel will be slightly faster but will
267           not work on older machines.
268
269 config MARCH_ZEC12
270         bool "IBM zBC12 and zEC12"
271         select HAVE_MARCH_ZEC12_FEATURES
272         help
273           Select this to enable optimizations for IBM zBC12 and zEC12 (2828 and
274           2827 series). The kernel will be slightly faster but will not work on
275           older machines.
276
277 config MARCH_Z13
278         bool "IBM z13s and z13"
279         select HAVE_MARCH_Z13_FEATURES
280         help
281           Select this to enable optimizations for IBM z13s and z13 (2965 and
282           2964 series). The kernel will be slightly faster but will not work on
283           older machines.
284
285 config MARCH_Z14
286         bool "IBM z14 ZR1 and z14"
287         select HAVE_MARCH_Z14_FEATURES
288         help
289           Select this to enable optimizations for IBM z14 ZR1 and z14 (3907
290           and 3906 series). The kernel will be slightly faster but will not
291           work on older machines.
292
293 endchoice
294
295 config MARCH_Z900_TUNE
296         def_bool TUNE_Z900 || MARCH_Z900 && TUNE_DEFAULT
297
298 config MARCH_Z990_TUNE
299         def_bool TUNE_Z990 || MARCH_Z990 && TUNE_DEFAULT
300
301 config MARCH_Z9_109_TUNE
302         def_bool TUNE_Z9_109 || MARCH_Z9_109 && TUNE_DEFAULT
303
304 config MARCH_Z10_TUNE
305         def_bool TUNE_Z10 || MARCH_Z10 && TUNE_DEFAULT
306
307 config MARCH_Z196_TUNE
308         def_bool TUNE_Z196 || MARCH_Z196 && TUNE_DEFAULT
309
310 config MARCH_ZEC12_TUNE
311         def_bool TUNE_ZEC12 || MARCH_ZEC12 && TUNE_DEFAULT
312
313 config MARCH_Z13_TUNE
314         def_bool TUNE_Z13 || MARCH_Z13 && TUNE_DEFAULT
315
316 config MARCH_Z14_TUNE
317         def_bool TUNE_Z14 || MARCH_Z14 && TUNE_DEFAULT
318
319 choice
320         prompt "Tune code generation"
321         default TUNE_DEFAULT
322         help
323           Cause the compiler to tune (-mtune) the generated code for a machine.
324           This will make the code run faster on the selected machine but
325           somewhat slower on other machines.
326           This option only changes how the compiler emits instructions, not the
327           selection of instructions itself, so the resulting kernel will run on
328           all other machines.
329
330 config TUNE_DEFAULT
331         bool "Default"
332         help
333           Tune the generated code for the target processor for which the kernel
334           will be compiled.
335
336 config TUNE_Z900
337         bool "IBM zSeries model z800 and z900"
338
339 config TUNE_Z990
340         bool "IBM zSeries model z890 and z990"
341
342 config TUNE_Z9_109
343         bool "IBM System z9"
344
345 config TUNE_Z10
346         bool "IBM System z10"
347
348 config TUNE_Z196
349         bool "IBM zEnterprise 114 and 196"
350
351 config TUNE_ZEC12
352         bool "IBM zBC12 and zEC12"
353
354 config TUNE_Z13
355         bool "IBM z13"
356
357 config TUNE_Z14
358         bool "IBM z14"
359
360 endchoice
361
362 config 64BIT
363         def_bool y
364
365 config COMPAT
366         def_bool y
367         prompt "Kernel support for 31 bit emulation"
368         select COMPAT_BINFMT_ELF if BINFMT_ELF
369         select ARCH_WANT_OLD_COMPAT_IPC
370         select COMPAT_OLD_SIGACTION
371         depends on MULTIUSER
372         help
373           Select this option if you want to enable your system kernel to
374           handle system-calls from ELF binaries for 31 bit ESA.  This option
375           (and some other stuff like libraries and such) is needed for
376           executing 31 bit applications.  It is safe to say "Y".
377
378 config SYSVIPC_COMPAT
379         def_bool y if COMPAT && SYSVIPC
380
381 config SMP
382         def_bool y
383         prompt "Symmetric multi-processing support"
384         ---help---
385           This enables support for systems with more than one CPU. If you have
386           a system with only one CPU, like most personal computers, say N. If
387           you have a system with more than one CPU, say Y.
388
389           If you say N here, the kernel will run on uni- and multiprocessor
390           machines, but will use only one CPU of a multiprocessor machine. If
391           you say Y here, the kernel will run on many, but not all,
392           uniprocessor machines. On a uniprocessor machine, the kernel
393           will run faster if you say N here.
394
395           See also the SMP-HOWTO available at
396           <http://www.tldp.org/docs.html#howto>.
397
398           Even if you don't know what to do here, say Y.
399
400 config NR_CPUS
401         int "Maximum number of CPUs (2-512)"
402         range 2 512
403         depends on SMP
404         default "64"
405         help
406           This allows you to specify the maximum number of CPUs which this
407           kernel will support. The maximum supported value is 512 and the
408           minimum value which makes sense is 2.
409
410           This is purely to save memory - each supported CPU adds
411           approximately sixteen kilobytes to the kernel image.
412
413 config HOTPLUG_CPU
414         def_bool y
415         prompt "Support for hot-pluggable CPUs"
416         depends on SMP
417         help
418           Say Y here to be able to turn CPUs off and on. CPUs
419           can be controlled through /sys/devices/system/cpu/cpu#.
420           Say N if you want to disable CPU hotplug.
421
422 # Some NUMA nodes have memory ranges that span
423 # other nodes.  Even though a pfn is valid and
424 # between a node's start and end pfns, it may not
425 # reside on that node.  See memmap_init_zone()
426 # for details. <- They meant memory holes!
427 config NODES_SPAN_OTHER_NODES
428         def_bool NUMA
429
430 config NUMA
431         bool "NUMA support"
432         depends on SMP && SCHED_TOPOLOGY
433         default n
434         help
435           Enable NUMA support
436
437           This option adds NUMA support to the kernel.
438
439           An operation mode can be selected by appending
440           numa=<method> to the kernel command line.
441
442           The default behaviour is identical to appending numa=plain to
443           the command line. This will create just one node with all
444           available memory and all CPUs in it.
445
446 config NODES_SHIFT
447         int "Maximum NUMA nodes (as a power of 2)"
448         range 1 10
449         depends on NUMA
450         default "4"
451         help
452           Specify the maximum number of NUMA nodes available on the target
453           system. Increases memory reserved to accommodate various tables.
454
455 menu "Select NUMA modes"
456         depends on NUMA
457
458 config NUMA_EMU
459         bool "NUMA emulation"
460         default y
461         help
462           Numa emulation mode will split the available system memory into
463           equal chunks which then are distributed over the configured number
464           of nodes in a round-robin manner.
465
466           The number of fake nodes is limited by the number of available memory
467           chunks (i.e. memory size / fake size) and the number of supported
468           nodes in the kernel.
469
470           The CPUs are assigned to the nodes in a way that partially respects
471           the original machine topology (if supported by the machine).
472           Fair distribution of the CPUs is not guaranteed.
473
474 config EMU_SIZE
475         hex "NUMA emulation memory chunk size"
476         default 0x10000000
477         range 0x400000 0x100000000
478         depends on NUMA_EMU
479         help
480           Select the default size by which the memory is chopped and then
481           assigned to emulated NUMA nodes.
482
483           This can be overridden by specifying
484
485           emu_size=<n>
486
487           on the kernel command line where also suffixes K, M, G, and T are
488           supported.
489
490 endmenu
491
492 config SCHED_SMT
493         def_bool n
494
495 config SCHED_MC
496         def_bool n
497
498 config SCHED_BOOK
499         def_bool n
500
501 config SCHED_DRAWER
502         def_bool n
503
504 config SCHED_TOPOLOGY
505         def_bool y
506         prompt "Topology scheduler support"
507         depends on SMP
508         select SCHED_SMT
509         select SCHED_MC
510         select SCHED_BOOK
511         select SCHED_DRAWER
512         help
513           Topology scheduler support improves the CPU scheduler's decision
514           making when dealing with machines that have multi-threading,
515           multiple cores or multiple books.
516
517 source kernel/Kconfig.preempt
518
519 source kernel/Kconfig.hz
520
521 config KEXEC
522         def_bool y
523         select KEXEC_CORE
524
525 config KEXEC_FILE
526         bool "kexec file based system call"
527         select KEXEC_CORE
528         select BUILD_BIN2C
529         depends on CRYPTO
530         depends on CRYPTO_SHA256
531         depends on CRYPTO_SHA256_S390
532         help
533           Enable the kexec file based system call. In contrast to the normal
534           kexec system call this system call takes file descriptors for the
535           kernel and initramfs as arguments.
536
537 config ARCH_HAS_KEXEC_PURGATORY
538         def_bool y
539         depends on KEXEC_FILE
540
541 config ARCH_RANDOM
542         def_bool y
543         prompt "s390 architectural random number generation API"
544         help
545           Enable the s390 architectural random number generation API
546           to provide random data for all consumers within the Linux
547           kernel.
548
549           When enabled the arch_random_* functions declared in linux/random.h
550           are implemented. The implementation is based on the s390 CPACF
551           instruction subfunction TRNG which provides a real true random
552           number generator.
553
554           If unsure, say Y.
555
556 config KERNEL_NOBP
557         def_bool n
558         prompt "Enable modified branch prediction for the kernel by default"
559         help
560           If this option is selected the kernel will switch to a modified
561           branch prediction mode if the firmware interface is available.
562           The modified branch prediction mode improves the behaviour in
563           regard to speculative execution.
564
565           With the option enabled the kernel parameter "nobp=0" or "nospec"
566           can be used to run the kernel in the normal branch prediction mode.
567
568           With the option disabled the modified branch prediction mode is
569           enabled with the "nobp=1" kernel parameter.
570
571           If unsure, say N.
572
573 config EXPOLINE
574         def_bool n
575         prompt "Avoid speculative indirect branches in the kernel"
576         help
577           Compile the kernel with the expoline compiler options to guard
578           against kernel-to-user data leaks by avoiding speculative indirect
579           branches.
580           Requires a compiler with -mindirect-branch=thunk support for full
581           protection. The kernel may run slower.
582
583           If unsure, say N.
584
585 choice
586         prompt "Expoline default"
587         depends on EXPOLINE
588         default EXPOLINE_FULL
589
590 config EXPOLINE_OFF
591         bool "spectre_v2=off"
592
593 config EXPOLINE_AUTO
594         bool "spectre_v2=auto"
595
596 config EXPOLINE_FULL
597         bool "spectre_v2=on"
598
599 endchoice
600
601 endmenu
602
603 menu "Memory setup"
604
605 config ARCH_SPARSEMEM_ENABLE
606         def_bool y
607         select SPARSEMEM_VMEMMAP_ENABLE
608         select SPARSEMEM_VMEMMAP
609
610 config ARCH_SPARSEMEM_DEFAULT
611         def_bool y
612
613 config ARCH_SELECT_MEMORY_MODEL
614         def_bool y
615
616 config ARCH_ENABLE_MEMORY_HOTPLUG
617         def_bool y if SPARSEMEM
618
619 config ARCH_ENABLE_MEMORY_HOTREMOVE
620         def_bool y
621
622 config ARCH_ENABLE_SPLIT_PMD_PTLOCK
623         def_bool y
624
625 config FORCE_MAX_ZONEORDER
626         int
627         default "9"
628
629 source "mm/Kconfig"
630
631 config MAX_PHYSMEM_BITS
632         int "Maximum size of supported physical memory in bits (42-53)"
633         range 42 53
634         default "46"
635         help
636           This option specifies the maximum supported size of physical memory
637           in bits. Supported is any size between 2^42 (4TB) and 2^53 (8PB).
638           Increasing the number of bits also increases the kernel image size.
639           By default 46 bits (64TB) are supported.
640
641 config PACK_STACK
642         def_bool y
643         prompt "Pack kernel stack"
644         help
645           This option enables the compiler option -mkernel-backchain if it
646           is available. If the option is available the compiler supports
647           the new stack layout which dramatically reduces the minimum stack
648           frame size. With an old compiler a non-leaf function needs a
649           minimum of 96 bytes on 31 bit and 160 bytes on 64 bit. With
650           -mkernel-backchain the minimum size drops to 16 byte on 31 bit
651           and 24 byte on 64 bit.
652
653           Say Y if you are unsure.
654
655 config CHECK_STACK
656         def_bool y
657         prompt "Detect kernel stack overflow"
658         help
659           This option enables the compiler option -mstack-guard and
660           -mstack-size if they are available. If the compiler supports them
661           it will emit additional code to each function prolog to trigger
662           an illegal operation if the kernel stack is about to overflow.
663
664           Say N if you are unsure.
665
666 config STACK_GUARD
667         int "Size of the guard area (128-1024)"
668         range 128 1024
669         depends on CHECK_STACK
670         default "256"
671         help
672           This allows you to specify the size of the guard area at the lower
673           end of the kernel stack. If the kernel stack points into the guard
674           area on function entry an illegal operation is triggered. The size
675           needs to be a power of 2. Please keep in mind that the size of an
676           interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit.
677           The minimum size for the stack guard should be 256 for 31 bit and
678           512 for 64 bit.
679
680 config WARN_DYNAMIC_STACK
681         def_bool n
682         prompt "Emit compiler warnings for function with dynamic stack usage"
683         help
684           This option enables the compiler option -mwarn-dynamicstack. If the
685           compiler supports this options generates warnings for functions
686           that dynamically allocate stack space using alloca.
687
688           Say N if you are unsure.
689
690 endmenu
691
692 menu "I/O subsystem"
693
694 config QDIO
695         def_tristate y
696         prompt "QDIO support"
697         ---help---
698           This driver provides the Queued Direct I/O base support for
699           IBM System z.
700
701           To compile this driver as a module, choose M here: the
702           module will be called qdio.
703
704           If unsure, say Y.
705
706 menuconfig PCI
707         bool "PCI support"
708         select PCI_MSI
709         select IOMMU_HELPER
710         select IOMMU_SUPPORT
711         select NEED_DMA_MAP_STATE
712         select NEED_SG_DMA_LENGTH
713
714         help
715           Enable PCI support.
716
717 if PCI
718
719 config PCI_NR_FUNCTIONS
720         int "Maximum number of PCI functions (1-4096)"
721         range 1 4096
722         default "128"
723         help
724           This allows you to specify the maximum number of PCI functions which
725           this kernel will support.
726
727 source "drivers/pci/Kconfig"
728
729 endif   # PCI
730
731 config PCI_DOMAINS
732         def_bool PCI
733
734 config HAS_IOMEM
735         def_bool PCI
736
737 config CHSC_SCH
738         def_tristate m
739         prompt "Support for CHSC subchannels"
740         help
741           This driver allows usage of CHSC subchannels. A CHSC subchannel
742           is usually present on LPAR only.
743           The driver creates a device /dev/chsc, which may be used to
744           obtain I/O configuration information about the machine and
745           to issue asynchronous chsc commands (DANGEROUS).
746           You will usually only want to use this interface on a special
747           LPAR designated for system management.
748
749           To compile this driver as a module, choose M here: the
750           module will be called chsc_sch.
751
752           If unsure, say N.
753
754 config SCM_BUS
755         def_bool y
756         prompt "SCM bus driver"
757         help
758           Bus driver for Storage Class Memory.
759
760 config EADM_SCH
761         def_tristate m
762         prompt "Support for EADM subchannels"
763         depends on SCM_BUS
764         help
765           This driver allows usage of EADM subchannels. EADM subchannels act
766           as a communication vehicle for SCM increments.
767
768           To compile this driver as a module, choose M here: the
769           module will be called eadm_sch.
770
771 config VFIO_CCW
772         def_tristate n
773         prompt "Support for VFIO-CCW subchannels"
774         depends on S390_CCW_IOMMU && VFIO_MDEV
775         help
776           This driver allows usage of I/O subchannels via VFIO-CCW.
777
778           To compile this driver as a module, choose M here: the
779           module will be called vfio_ccw.
780
781 endmenu
782
783 menu "Dump support"
784
785 config CRASH_DUMP
786         bool "kernel crash dumps"
787         depends on SMP
788         select KEXEC
789         help
790           Generate crash dump after being started by kexec.
791           Crash dump kernels are loaded in the main kernel with kexec-tools
792           into a specially reserved region and then later executed after
793           a crash by kdump/kexec.
794           Refer to <file:Documentation/s390/zfcpdump.txt> for more details on this.
795           This option also enables s390 zfcpdump.
796           See also <file:Documentation/s390/zfcpdump.txt>
797
798 endmenu
799
800 menu "Executable file formats / Emulations"
801
802 source "fs/Kconfig.binfmt"
803
804 config SECCOMP
805         def_bool y
806         prompt "Enable seccomp to safely compute untrusted bytecode"
807         depends on PROC_FS
808         help
809           This kernel feature is useful for number crunching applications
810           that may need to compute untrusted bytecode during their
811           execution. By using pipes or other transports made available to
812           the process as file descriptors supporting the read/write
813           syscalls, it's possible to isolate those applications in
814           their own address space using seccomp. Once seccomp is
815           enabled via /proc/<pid>/seccomp, it cannot be disabled
816           and the task is only allowed to execute a few safe syscalls
817           defined by each seccomp mode.
818
819           If unsure, say Y.
820
821 endmenu
822
823 menu "Power Management"
824
825 config ARCH_HIBERNATION_POSSIBLE
826         def_bool y
827
828 source "kernel/power/Kconfig"
829
830 endmenu
831
832 source "net/Kconfig"
833
834 config PCMCIA
835         def_bool n
836
837 config CCW
838         def_bool y
839
840 source "drivers/Kconfig"
841
842 config HAVE_PNETID
843         tristate
844         default (SMC || CCWGROUP)
845
846 source "fs/Kconfig"
847
848 source "arch/s390/Kconfig.debug"
849
850 source "security/Kconfig"
851
852 source "crypto/Kconfig"
853
854 source "lib/Kconfig"
855
856 menu "Virtualization"
857
858 config PFAULT
859         def_bool y
860         prompt "Pseudo page fault support"
861         help
862           Select this option, if you want to use PFAULT pseudo page fault
863           handling under VM. If running native or in LPAR, this option
864           has no effect. If your VM does not support PFAULT, PAGEEX
865           pseudo page fault handling will be used.
866           Note that VM 4.2 supports PFAULT but has a bug in its
867           implementation that causes some problems.
868           Everybody who wants to run Linux under VM != VM4.2 should select
869           this option.
870
871 config CMM
872         def_tristate n
873         prompt "Cooperative memory management"
874         help
875           Select this option, if you want to enable the kernel interface
876           to reduce the memory size of the system. This is accomplished
877           by allocating pages of memory and put them "on hold". This only
878           makes sense for a system running under VM where the unused pages
879           will be reused by VM for other guest systems. The interface
880           allows an external monitor to balance memory of many systems.
881           Everybody who wants to run Linux under VM should select this
882           option.
883
884 config CMM_IUCV
885         def_bool y
886         prompt "IUCV special message interface to cooperative memory management"
887         depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
888         help
889           Select this option to enable the special message interface to
890           the cooperative memory management.
891
892 config APPLDATA_BASE
893         def_bool n
894         prompt "Linux - VM Monitor Stream, base infrastructure"
895         depends on PROC_FS
896         help
897           This provides a kernel interface for creating and updating z/VM APPLDATA
898           monitor records. The monitor records are updated at certain time
899           intervals, once the timer is started.
900           Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
901           i.e. enables or disables monitoring on the Linux side.
902           A custom interval value (in seconds) can be written to
903           /proc/appldata/interval.
904
905           Defaults are 60 seconds interval and timer off.
906           The /proc entries can also be read from, showing the current settings.
907
908 config APPLDATA_MEM
909         def_tristate m
910         prompt "Monitor memory management statistics"
911         depends on APPLDATA_BASE && VM_EVENT_COUNTERS
912         help
913           This provides memory management related data to the Linux - VM Monitor
914           Stream, like paging/swapping rate, memory utilisation, etc.
915           Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM
916           APPLDATA monitor record, i.e. enables or disables monitoring this record
917           on the z/VM side.
918
919           Default is disabled.
920           The /proc entry can also be read from, showing the current settings.
921
922           This can also be compiled as a module, which will be called
923           appldata_mem.o.
924
925 config APPLDATA_OS
926         def_tristate m
927         prompt "Monitor OS statistics"
928         depends on APPLDATA_BASE
929         help
930           This provides OS related data to the Linux - VM Monitor Stream, like
931           CPU utilisation, etc.
932           Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
933           APPLDATA monitor record, i.e. enables or disables monitoring this record
934           on the z/VM side.
935
936           Default is disabled.
937           This can also be compiled as a module, which will be called
938           appldata_os.o.
939
940 config APPLDATA_NET_SUM
941         def_tristate m
942         prompt "Monitor overall network statistics"
943         depends on APPLDATA_BASE && NET
944         help
945           This provides network related data to the Linux - VM Monitor Stream,
946           currently there is only a total sum of network I/O statistics, no
947           per-interface data.
948           Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
949           APPLDATA monitor record, i.e. enables or disables monitoring this record
950           on the z/VM side.
951
952           Default is disabled.
953           This can also be compiled as a module, which will be called
954           appldata_net_sum.o.
955
956 config S390_HYPFS_FS
957         def_bool y
958         prompt "s390 hypervisor file system support"
959         select SYS_HYPERVISOR
960         help
961           This is a virtual file system intended to provide accounting
962           information in an s390 hypervisor environment.
963
964 source "arch/s390/kvm/Kconfig"
965
966 config S390_GUEST
967         def_bool y
968         prompt "s390 support for virtio devices"
969         select TTY
970         select VIRTUALIZATION
971         select VIRTIO
972         select VIRTIO_CONSOLE
973         help
974           Enabling this option adds support for virtio based paravirtual device
975           drivers on s390.
976
977           Select this option if you want to run the kernel as a guest under
978           the KVM hypervisor.
979
980 endmenu