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