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