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