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