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