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