1# 2# For a description of the syntax of this configuration file, 3# see Documentation/kbuild/kconfig-language.txt. 4# 5 6config MMU 7 def_bool y 8 9config ZONE_DMA 10 def_bool y 11 depends on 64BIT 12 13config LOCKDEP_SUPPORT 14 def_bool y 15 16config STACKTRACE_SUPPORT 17 def_bool y 18 19config RWSEM_GENERIC_SPINLOCK 20 bool 21 22config RWSEM_XCHGADD_ALGORITHM 23 def_bool y 24 25config ARCH_HAS_ILOG2_U32 26 bool 27 default n 28 29config ARCH_HAS_ILOG2_U64 30 bool 31 default n 32 33config GENERIC_HWEIGHT 34 def_bool y 35 36config GENERIC_TIME 37 def_bool y 38 39config GENERIC_BUG 40 bool 41 depends on BUG 42 default y 43 44config NO_IOMEM 45 def_bool y 46 47config NO_DMA 48 def_bool y 49 50mainmenu "Linux Kernel Configuration" 51 52config S390 53 def_bool y 54 55source "init/Kconfig" 56 57menu "Base setup" 58 59comment "Processor type and features" 60 61config 64BIT 62 bool "64 bit kernel" 63 help 64 Select this option if you have a 64 bit IBM zSeries machine 65 and want to use the 64 bit addressing mode. 66 67config 32BIT 68 bool 69 default y if !64BIT 70 71config SMP 72 bool "Symmetric multi-processing support" 73 ---help--- 74 This enables support for systems with more than one CPU. If you have 75 a system with only one CPU, like most personal computers, say N. If 76 you have a system with more than one CPU, say Y. 77 78 If you say N here, the kernel will run on single and multiprocessor 79 machines, but will use only one CPU of a multiprocessor machine. If 80 you say Y here, the kernel will run on many, but not all, 81 singleprocessor machines. On a singleprocessor machine, the kernel 82 will run faster if you say N here. 83 84 See also the SMP-HOWTO available at 85 <http://www.tldp.org/docs.html#howto>. 86 87 Even if you don't know what to do here, say Y. 88 89config NR_CPUS 90 int "Maximum number of CPUs (2-64)" 91 range 2 64 92 depends on SMP 93 default "32" 94 help 95 This allows you to specify the maximum number of CPUs which this 96 kernel will support. The maximum supported value is 64 and the 97 minimum value which makes sense is 2. 98 99 This is purely to save memory - each supported CPU adds 100 approximately sixteen kilobytes to the kernel image. 101 102config HOTPLUG_CPU 103 bool "Support for hot-pluggable CPUs" 104 depends on SMP 105 select HOTPLUG 106 default n 107 help 108 Say Y here to be able to turn CPUs off and on. CPUs 109 can be controlled through /sys/devices/system/cpu/cpu#. 110 Say N if you want to disable CPU hotplug. 111 112config MATHEMU 113 bool "IEEE FPU emulation" 114 depends on MARCH_G5 115 help 116 This option is required for IEEE compliant floating point arithmetic 117 on older S/390 machines. Say Y unless you know your machine doesn't 118 need this. 119 120config COMPAT 121 bool "Kernel support for 31 bit emulation" 122 depends on 64BIT 123 help 124 Select this option if you want to enable your system kernel to 125 handle system-calls from ELF binaries for 31 bit ESA. This option 126 (and some other stuff like libraries and such) is needed for 127 executing 31 bit applications. It is safe to say "Y". 128 129config SYSVIPC_COMPAT 130 bool 131 depends on COMPAT && SYSVIPC 132 default y 133 134config AUDIT_ARCH 135 bool 136 default y 137 138config S390_SWITCH_AMODE 139 bool "Switch kernel/user addressing modes" 140 help 141 This option allows to switch the addressing modes of kernel and user 142 space. The kernel parameter switch_amode=on will enable this feature, 143 default is disabled. Enabling this (via kernel parameter) on machines 144 earlier than IBM System z9-109 EC/BC will reduce system performance. 145 146 Note that this option will also be selected by selecting the execute 147 protection option below. Enabling the execute protection via the 148 noexec kernel parameter will also switch the addressing modes, 149 independent of the switch_amode kernel parameter. 150 151 152config S390_EXEC_PROTECT 153 bool "Data execute protection" 154 select S390_SWITCH_AMODE 155 help 156 This option allows to enable a buffer overflow protection for user 157 space programs and it also selects the addressing mode option above. 158 The kernel parameter noexec=on will enable this feature and also 159 switch the addressing modes, default is disabled. Enabling this (via 160 kernel parameter) on machines earlier than IBM System z9-109 EC/BC 161 will reduce system performance. 162 163comment "Code generation options" 164 165choice 166 prompt "Processor type" 167 default MARCH_G5 168 169config MARCH_G5 170 bool "S/390 model G5 and G6" 171 depends on !64BIT 172 help 173 Select this to build a 31 bit kernel that works 174 on all S/390 and zSeries machines. 175 176config MARCH_Z900 177 bool "IBM eServer zSeries model z800 and z900" 178 help 179 Select this to optimize for zSeries machines. This 180 will enable some optimizations that are not available 181 on older 31 bit only CPUs. 182 183config MARCH_Z990 184 bool "IBM eServer zSeries model z890 and z990" 185 help 186 Select this enable optimizations for model z890/z990. 187 This will be slightly faster but does not work on 188 older machines such as the z900. 189 190config MARCH_Z9_109 191 bool "IBM System z9" 192 help 193 Select this to enable optimizations for IBM System z9-109, IBM 194 System z9 Enterprise Class (z9 EC), and IBM System z9 Business 195 Class (z9 BC). The kernel will be slightly faster but will not 196 work on older machines such as the z990, z890, z900, and z800. 197 198endchoice 199 200config PACK_STACK 201 bool "Pack kernel stack" 202 help 203 This option enables the compiler option -mkernel-backchain if it 204 is available. If the option is available the compiler supports 205 the new stack layout which dramatically reduces the minimum stack 206 frame size. With an old compiler a non-leaf function needs a 207 minimum of 96 bytes on 31 bit and 160 bytes on 64 bit. With 208 -mkernel-backchain the minimum size drops to 16 byte on 31 bit 209 and 24 byte on 64 bit. 210 211 Say Y if you are unsure. 212 213config SMALL_STACK 214 bool "Use 4kb/8kb for kernel stack instead of 8kb/16kb" 215 depends on PACK_STACK && !LOCKDEP 216 help 217 If you say Y here and the compiler supports the -mkernel-backchain 218 option the kernel will use a smaller kernel stack size. For 31 bit 219 the reduced size is 4kb instead of 8kb and for 64 bit it is 8kb 220 instead of 16kb. This allows to run more thread on a system and 221 reduces the pressure on the memory management for higher order 222 page allocations. 223 224 Say N if you are unsure. 225 226 227config CHECK_STACK 228 bool "Detect kernel stack overflow" 229 help 230 This option enables the compiler option -mstack-guard and 231 -mstack-size if they are available. If the compiler supports them 232 it will emit additional code to each function prolog to trigger 233 an illegal operation if the kernel stack is about to overflow. 234 235 Say N if you are unsure. 236 237config STACK_GUARD 238 int "Size of the guard area (128-1024)" 239 range 128 1024 240 depends on CHECK_STACK 241 default "256" 242 help 243 This allows you to specify the size of the guard area at the lower 244 end of the kernel stack. If the kernel stack points into the guard 245 area on function entry an illegal operation is triggered. The size 246 needs to be a power of 2. Please keep in mind that the size of an 247 interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit. 248 The minimum size for the stack guard should be 256 for 31 bit and 249 512 for 64 bit. 250 251config WARN_STACK 252 bool "Emit compiler warnings for function with broken stack usage" 253 help 254 This option enables the compiler options -mwarn-framesize and 255 -mwarn-dynamicstack. If the compiler supports these options it 256 will generate warnings for function which either use alloca or 257 create a stack frame bigger then CONFIG_WARN_STACK_SIZE. 258 259 Say N if you are unsure. 260 261config WARN_STACK_SIZE 262 int "Maximum frame size considered safe (128-2048)" 263 range 128 2048 264 depends on WARN_STACK 265 default "256" 266 help 267 This allows you to specify the maximum frame size a function may 268 have without the compiler complaining about it. 269 270config ARCH_POPULATES_NODE_MAP 271 def_bool y 272 273comment "Kernel preemption" 274 275source "kernel/Kconfig.preempt" 276 277source "mm/Kconfig" 278 279comment "I/O subsystem configuration" 280 281config MACHCHK_WARNING 282 bool "Process warning machine checks" 283 help 284 Select this option if you want the machine check handler on IBM S/390 or 285 zSeries to process warning machine checks (e.g. on power failures). 286 If unsure, say "Y". 287 288config QDIO 289 tristate "QDIO support" 290 ---help--- 291 This driver provides the Queued Direct I/O base support for 292 IBM mainframes. 293 294 For details please refer to the documentation provided by IBM at 295 <http://www10.software.ibm.com/developerworks/opensource/linux390> 296 297 To compile this driver as a module, choose M here: the 298 module will be called qdio. 299 300 If unsure, say Y. 301 302config QDIO_DEBUG 303 bool "Extended debugging information" 304 depends on QDIO 305 help 306 Say Y here to get extended debugging output in 307 /sys/kernel/debug/s390dbf/qdio... 308 Warning: this option reduces the performance of the QDIO module. 309 310 If unsure, say N. 311 312comment "Misc" 313 314config IPL 315 bool "Builtin IPL record support" 316 help 317 If you want to use the produced kernel to IPL directly from a 318 device, you have to merge a bootsector specific to the device 319 into the first bytes of the kernel. You will have to select the 320 IPL device. 321 322choice 323 prompt "IPL method generated into head.S" 324 depends on IPL 325 default IPL_TAPE 326 help 327 Select "tape" if you want to IPL the image from a Tape. 328 329 Select "vm_reader" if you are running under VM/ESA and want 330 to IPL the image from the emulated card reader. 331 332config IPL_TAPE 333 bool "tape" 334 335config IPL_VM 336 bool "vm_reader" 337 338endchoice 339 340source "fs/Kconfig.binfmt" 341 342config PROCESS_DEBUG 343 bool "Show crashed user process info" 344 help 345 Say Y to print all process fault locations to the console. This is 346 a debugging option; you probably do not want to set it unless you 347 are an S390 port maintainer. 348 349config PFAULT 350 bool "Pseudo page fault support" 351 help 352 Select this option, if you want to use PFAULT pseudo page fault 353 handling under VM. If running native or in LPAR, this option 354 has no effect. If your VM does not support PFAULT, PAGEEX 355 pseudo page fault handling will be used. 356 Note that VM 4.2 supports PFAULT but has a bug in its 357 implementation that causes some problems. 358 Everybody who wants to run Linux under VM != VM4.2 should select 359 this option. 360 361config SHARED_KERNEL 362 bool "VM shared kernel support" 363 help 364 Select this option, if you want to share the text segment of the 365 Linux kernel between different VM guests. This reduces memory 366 usage with lots of guests but greatly increases kernel size. 367 Also if a kernel was IPL'ed from a shared segment the kexec system 368 call will not work. 369 You should only select this option if you know what you are 370 doing and want to exploit this feature. 371 372config CMM 373 tristate "Cooperative memory management" 374 help 375 Select this option, if you want to enable the kernel interface 376 to reduce the memory size of the system. This is accomplished 377 by allocating pages of memory and put them "on hold". This only 378 makes sense for a system running under VM where the unused pages 379 will be reused by VM for other guest systems. The interface 380 allows an external monitor to balance memory of many systems. 381 Everybody who wants to run Linux under VM should select this 382 option. 383 384config CMM_PROC 385 bool "/proc interface to cooperative memory management" 386 depends on CMM 387 help 388 Select this option to enable the /proc interface to the 389 cooperative memory management. 390 391config CMM_IUCV 392 bool "IUCV special message interface to cooperative memory management" 393 depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV) 394 help 395 Select this option to enable the special message interface to 396 the cooperative memory management. 397 398config VIRT_TIMER 399 bool "Virtual CPU timer support" 400 help 401 This provides a kernel interface for virtual CPU timers. 402 Default is disabled. 403 404config VIRT_CPU_ACCOUNTING 405 bool "Base user process accounting on virtual cpu timer" 406 depends on VIRT_TIMER 407 help 408 Select this option to use CPU timer deltas to do user 409 process accounting. 410 411config APPLDATA_BASE 412 bool "Linux - VM Monitor Stream, base infrastructure" 413 depends on PROC_FS && VIRT_TIMER=y 414 help 415 This provides a kernel interface for creating and updating z/VM APPLDATA 416 monitor records. The monitor records are updated at certain time 417 intervals, once the timer is started. 418 Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer, 419 i.e. enables or disables monitoring on the Linux side. 420 A custom interval value (in seconds) can be written to 421 /proc/appldata/interval. 422 423 Defaults are 60 seconds interval and timer off. 424 The /proc entries can also be read from, showing the current settings. 425 426config APPLDATA_MEM 427 tristate "Monitor memory management statistics" 428 depends on APPLDATA_BASE && VM_EVENT_COUNTERS 429 help 430 This provides memory management related data to the Linux - VM Monitor 431 Stream, like paging/swapping rate, memory utilisation, etc. 432 Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM 433 APPLDATA monitor record, i.e. enables or disables monitoring this record 434 on the z/VM side. 435 436 Default is disabled. 437 The /proc entry can also be read from, showing the current settings. 438 439 This can also be compiled as a module, which will be called 440 appldata_mem.o. 441 442config APPLDATA_OS 443 tristate "Monitor OS statistics" 444 depends on APPLDATA_BASE 445 help 446 This provides OS related data to the Linux - VM Monitor Stream, like 447 CPU utilisation, etc. 448 Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM 449 APPLDATA monitor record, i.e. enables or disables monitoring this record 450 on the z/VM side. 451 452 Default is disabled. 453 This can also be compiled as a module, which will be called 454 appldata_os.o. 455 456config APPLDATA_NET_SUM 457 tristate "Monitor overall network statistics" 458 depends on APPLDATA_BASE 459 help 460 This provides network related data to the Linux - VM Monitor Stream, 461 currently there is only a total sum of network I/O statistics, no 462 per-interface data. 463 Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM 464 APPLDATA monitor record, i.e. enables or disables monitoring this record 465 on the z/VM side. 466 467 Default is disabled. 468 This can also be compiled as a module, which will be called 469 appldata_net_sum.o. 470 471source kernel/Kconfig.hz 472 473config NO_IDLE_HZ 474 bool "No HZ timer ticks in idle" 475 help 476 Switches the regular HZ timer off when the system is going idle. 477 This helps z/VM to detect that the Linux system is idle. VM can 478 then "swap-out" this guest which reduces memory usage. It also 479 reduces the overhead of idle systems. 480 481 The HZ timer can be switched on/off via /proc/sys/kernel/hz_timer. 482 hz_timer=0 means HZ timer is disabled. hz_timer=1 means HZ 483 timer is active. 484 485config NO_IDLE_HZ_INIT 486 bool "HZ timer in idle off by default" 487 depends on NO_IDLE_HZ 488 help 489 The HZ timer is switched off in idle by default. That means the 490 HZ timer is already disabled at boot time. 491 492config S390_HYPFS_FS 493 bool "s390 hypervisor file system support" 494 select SYS_HYPERVISOR 495 default y 496 help 497 This is a virtual file system intended to provide accounting 498 information in an s390 hypervisor environment. 499 500config KEXEC 501 bool "kexec system call" 502 help 503 kexec is a system call that implements the ability to shutdown your 504 current kernel, and to start another kernel. It is like a reboot 505 but is independent of hardware/microcode support. 506 507config ZFCPDUMP 508 tristate "zfcpdump support" 509 select SMP 510 default n 511 help 512 Select this option if you want to build an zfcpdump enabled kernel. 513 Refer to <file:Documentation/s390/zfcpdump.txt> for more details on this. 514 515endmenu 516 517source "net/Kconfig" 518 519config PCMCIA 520 def_bool n 521 522config CCW 523 def_bool y 524 525source "drivers/Kconfig" 526 527source "fs/Kconfig" 528 529source "kernel/Kconfig.instrumentation" 530 531source "arch/s390/Kconfig.debug" 532 533source "security/Kconfig" 534 535source "crypto/Kconfig" 536 537source "lib/Kconfig" 538