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