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