Root/arch/s390/Kconfig

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

Archive Download this file



interactive