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