linux/arch/s390/Kconfig
<<
>>
Prefs
   1# SPDX-License-Identifier: GPL-2.0
   2config MMU
   3        def_bool y
   4
   5config ZONE_DMA
   6        def_bool y
   7
   8config CPU_BIG_ENDIAN
   9        def_bool y
  10
  11config LOCKDEP_SUPPORT
  12        def_bool y
  13
  14config STACKTRACE_SUPPORT
  15        def_bool y
  16
  17config RWSEM_GENERIC_SPINLOCK
  18        bool
  19
  20config RWSEM_XCHGADD_ALGORITHM
  21        def_bool y
  22
  23config ARCH_HAS_ILOG2_U32
  24        def_bool n
  25
  26config ARCH_HAS_ILOG2_U64
  27        def_bool n
  28
  29config GENERIC_HWEIGHT
  30        def_bool y
  31
  32config GENERIC_BUG
  33        def_bool y if BUG
  34
  35config GENERIC_BUG_RELATIVE_POINTERS
  36        def_bool y
  37
  38config ARCH_DMA_ADDR_T_64BIT
  39        def_bool y
  40
  41config GENERIC_LOCKBREAK
  42        def_bool y if SMP && PREEMPT
  43
  44config PGSTE
  45        def_bool y if KVM
  46
  47config ARCH_SUPPORTS_DEBUG_PAGEALLOC
  48        def_bool y
  49
  50config KEXEC
  51        def_bool y
  52        select KEXEC_CORE
  53
  54config AUDIT_ARCH
  55        def_bool y
  56
  57config NO_IOPORT_MAP
  58        def_bool y
  59
  60config PCI_QUIRKS
  61        def_bool n
  62
  63config ARCH_SUPPORTS_UPROBES
  64        def_bool y
  65
  66config S390
  67        def_bool y
  68        select ARCH_BINFMT_ELF_STATE
  69        select ARCH_HAS_DEVMEM_IS_ALLOWED
  70        select ARCH_HAS_ELF_RANDOMIZE
  71        select ARCH_HAS_FORTIFY_SOURCE
  72        select ARCH_HAS_GCOV_PROFILE_ALL
  73        select ARCH_HAS_GIGANTIC_PAGE if (MEMORY_ISOLATION && COMPACTION) || CMA
  74        select ARCH_HAS_KCOV
  75        select ARCH_HAS_SET_MEMORY
  76        select ARCH_HAS_SG_CHAIN
  77        select ARCH_HAS_STRICT_KERNEL_RWX
  78        select ARCH_HAS_STRICT_MODULE_RWX
  79        select ARCH_HAS_UBSAN_SANITIZE_ALL
  80        select ARCH_HAVE_NMI_SAFE_CMPXCHG
  81        select ARCH_INLINE_READ_LOCK
  82        select ARCH_INLINE_READ_LOCK_BH
  83        select ARCH_INLINE_READ_LOCK_IRQ
  84        select ARCH_INLINE_READ_LOCK_IRQSAVE
  85        select ARCH_INLINE_READ_TRYLOCK
  86        select ARCH_INLINE_READ_UNLOCK
  87        select ARCH_INLINE_READ_UNLOCK_BH
  88        select ARCH_INLINE_READ_UNLOCK_IRQ
  89        select ARCH_INLINE_READ_UNLOCK_IRQRESTORE
  90        select ARCH_INLINE_SPIN_LOCK
  91        select ARCH_INLINE_SPIN_LOCK_BH
  92        select ARCH_INLINE_SPIN_LOCK_IRQ
  93        select ARCH_INLINE_SPIN_LOCK_IRQSAVE
  94        select ARCH_INLINE_SPIN_TRYLOCK
  95        select ARCH_INLINE_SPIN_TRYLOCK_BH
  96        select ARCH_INLINE_SPIN_UNLOCK
  97        select ARCH_INLINE_SPIN_UNLOCK_BH
  98        select ARCH_INLINE_SPIN_UNLOCK_IRQ
  99        select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
 100        select ARCH_INLINE_WRITE_LOCK
 101        select ARCH_INLINE_WRITE_LOCK_BH
 102        select ARCH_INLINE_WRITE_LOCK_IRQ
 103        select ARCH_INLINE_WRITE_LOCK_IRQSAVE
 104        select ARCH_INLINE_WRITE_TRYLOCK
 105        select ARCH_INLINE_WRITE_UNLOCK
 106        select ARCH_INLINE_WRITE_UNLOCK_BH
 107        select ARCH_INLINE_WRITE_UNLOCK_IRQ
 108        select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
 109        select ARCH_SAVE_PAGE_KEYS if HIBERNATION
 110        select ARCH_SUPPORTS_ATOMIC_RMW
 111        select ARCH_SUPPORTS_NUMA_BALANCING
 112        select ARCH_USE_BUILTIN_BSWAP
 113        select ARCH_USE_CMPXCHG_LOCKREF
 114        select ARCH_WANTS_DYNAMIC_TASK_STRUCT
 115        select ARCH_WANTS_UBSAN_NO_NULL
 116        select ARCH_WANT_IPC_PARSE_VERSION
 117        select BUILDTIME_EXTABLE_SORT
 118        select CLONE_BACKWARDS2
 119        select DYNAMIC_FTRACE if FUNCTION_TRACER
 120        select GENERIC_CLOCKEVENTS
 121        select GENERIC_CPU_AUTOPROBE
 122        select GENERIC_CPU_DEVICES if !SMP
 123        select GENERIC_FIND_FIRST_BIT
 124        select GENERIC_SMP_IDLE_THREAD
 125        select GENERIC_TIME_VSYSCALL
 126        select HAVE_ALIGNED_STRUCT_PAGE if SLUB
 127        select HAVE_ARCH_AUDITSYSCALL
 128        select HAVE_ARCH_JUMP_LABEL
 129        select CPU_NO_EFFICIENT_FFS if !HAVE_MARCH_Z9_109_FEATURES
 130        select HAVE_ARCH_SECCOMP_FILTER
 131        select HAVE_ARCH_SOFT_DIRTY
 132        select HAVE_ARCH_TRACEHOOK
 133        select HAVE_ARCH_TRANSPARENT_HUGEPAGE
 134        select HAVE_EBPF_JIT if PACK_STACK && HAVE_MARCH_Z196_FEATURES
 135        select HAVE_CMPXCHG_DOUBLE
 136        select HAVE_CMPXCHG_LOCAL
 137        select HAVE_COPY_THREAD_TLS
 138        select HAVE_DEBUG_KMEMLEAK
 139        select HAVE_DMA_API_DEBUG
 140        select HAVE_DMA_CONTIGUOUS
 141        select DMA_DIRECT_OPS
 142        select HAVE_DYNAMIC_FTRACE
 143        select HAVE_DYNAMIC_FTRACE_WITH_REGS
 144        select HAVE_EFFICIENT_UNALIGNED_ACCESS
 145        select HAVE_FTRACE_MCOUNT_RECORD
 146        select HAVE_FUNCTION_GRAPH_TRACER
 147        select HAVE_FUNCTION_TRACER
 148        select HAVE_FUTEX_CMPXCHG if FUTEX
 149        select HAVE_GCC_PLUGINS
 150        select HAVE_KERNEL_BZIP2
 151        select HAVE_KERNEL_GZIP
 152        select HAVE_KERNEL_LZ4
 153        select HAVE_KERNEL_LZMA
 154        select HAVE_KERNEL_LZO
 155        select HAVE_KERNEL_XZ
 156        select HAVE_KPROBES
 157        select HAVE_KRETPROBES
 158        select HAVE_KVM
 159        select HAVE_LIVEPATCH
 160        select HAVE_PERF_REGS
 161        select HAVE_PERF_USER_STACK_DUMP
 162        select HAVE_MEMBLOCK
 163        select HAVE_MEMBLOCK_NODE_MAP
 164        select HAVE_MEMBLOCK_PHYS_MAP
 165        select HAVE_MOD_ARCH_SPECIFIC
 166        select HAVE_OPROFILE
 167        select HAVE_PERF_EVENTS
 168        select HAVE_REGS_AND_STACK_ACCESS_API
 169        select HAVE_SYSCALL_TRACEPOINTS
 170        select HAVE_VIRT_CPU_ACCOUNTING
 171        select MODULES_USE_ELF_RELA
 172        select NO_BOOTMEM
 173        select OLD_SIGACTION
 174        select OLD_SIGSUSPEND3
 175        select SPARSE_IRQ
 176        select SYSCTL_EXCEPTION_TRACE
 177        select THREAD_INFO_IN_TASK
 178        select TTY
 179        select VIRT_CPU_ACCOUNTING
 180        select ARCH_HAS_SCALED_CPUTIME
 181        select VIRT_TO_BUS
 182        select HAVE_NMI
 183
 184
 185config SCHED_OMIT_FRAME_POINTER
 186        def_bool y
 187
 188config PGTABLE_LEVELS
 189        int
 190        default 5
 191
 192source "init/Kconfig"
 193
 194source "kernel/Kconfig.freezer"
 195
 196source "kernel/livepatch/Kconfig"
 197
 198menu "Processor type and features"
 199
 200config HAVE_MARCH_Z900_FEATURES
 201        def_bool n
 202
 203config HAVE_MARCH_Z990_FEATURES
 204        def_bool n
 205        select HAVE_MARCH_Z900_FEATURES
 206
 207config HAVE_MARCH_Z9_109_FEATURES
 208        def_bool n
 209        select HAVE_MARCH_Z990_FEATURES
 210
 211config HAVE_MARCH_Z10_FEATURES
 212        def_bool n
 213        select HAVE_MARCH_Z9_109_FEATURES
 214
 215config HAVE_MARCH_Z196_FEATURES
 216        def_bool n
 217        select HAVE_MARCH_Z10_FEATURES
 218
 219config HAVE_MARCH_ZEC12_FEATURES
 220        def_bool n
 221        select HAVE_MARCH_Z196_FEATURES
 222
 223config HAVE_MARCH_Z13_FEATURES
 224        def_bool n
 225        select HAVE_MARCH_ZEC12_FEATURES
 226
 227config HAVE_MARCH_Z14_FEATURES
 228        def_bool n
 229        select HAVE_MARCH_Z13_FEATURES
 230
 231choice
 232        prompt "Processor type"
 233        default MARCH_Z196
 234
 235config MARCH_Z900
 236        bool "IBM zSeries model z800 and z900"
 237        select HAVE_MARCH_Z900_FEATURES
 238        help
 239          Select this to enable optimizations for model z800/z900 (2064 and
 240          2066 series). This will enable some optimizations that are not
 241          available on older ESA/390 (31 Bit) only CPUs.
 242
 243config MARCH_Z990
 244        bool "IBM zSeries model z890 and z990"
 245        select HAVE_MARCH_Z990_FEATURES
 246        help
 247          Select this to enable optimizations for model z890/z990 (2084 and
 248          2086 series). The kernel will be slightly faster but will not work
 249          on older machines.
 250
 251config MARCH_Z9_109
 252        bool "IBM System z9"
 253        select HAVE_MARCH_Z9_109_FEATURES
 254        help
 255          Select this to enable optimizations for IBM System z9 (2094 and
 256          2096 series). The kernel will be slightly faster but will not work
 257          on older machines.
 258
 259config MARCH_Z10
 260        bool "IBM System z10"
 261        select HAVE_MARCH_Z10_FEATURES
 262        help
 263          Select this to enable optimizations for IBM System z10 (2097 and
 264          2098 series). The kernel will be slightly faster but will not work
 265          on older machines.
 266
 267config MARCH_Z196
 268        bool "IBM zEnterprise 114 and 196"
 269        select HAVE_MARCH_Z196_FEATURES
 270        help
 271          Select this to enable optimizations for IBM zEnterprise 114 and 196
 272          (2818 and 2817 series). The kernel will be slightly faster but will
 273          not work on older machines.
 274
 275config MARCH_ZEC12
 276        bool "IBM zBC12 and zEC12"
 277        select HAVE_MARCH_ZEC12_FEATURES
 278        help
 279          Select this to enable optimizations for IBM zBC12 and zEC12 (2828 and
 280          2827 series). The kernel will be slightly faster but will not work on
 281          older machines.
 282
 283config MARCH_Z13
 284        bool "IBM z13s and z13"
 285        select HAVE_MARCH_Z13_FEATURES
 286        help
 287          Select this to enable optimizations for IBM z13s and z13 (2965 and
 288          2964 series). The kernel will be slightly faster but will not work on
 289          older machines.
 290
 291config MARCH_Z14
 292        bool "IBM z14"
 293        select HAVE_MARCH_Z14_FEATURES
 294        help
 295          Select this to enable optimizations for IBM z14 (3906 series).
 296          The kernel will be slightly faster but will not work on older
 297          machines.
 298
 299endchoice
 300
 301config MARCH_Z900_TUNE
 302        def_bool TUNE_Z900 || MARCH_Z900 && TUNE_DEFAULT
 303
 304config MARCH_Z990_TUNE
 305        def_bool TUNE_Z990 || MARCH_Z990 && TUNE_DEFAULT
 306
 307config MARCH_Z9_109_TUNE
 308        def_bool TUNE_Z9_109 || MARCH_Z9_109 && TUNE_DEFAULT
 309
 310config MARCH_Z10_TUNE
 311        def_bool TUNE_Z10 || MARCH_Z10 && TUNE_DEFAULT
 312
 313config MARCH_Z196_TUNE
 314        def_bool TUNE_Z196 || MARCH_Z196 && TUNE_DEFAULT
 315
 316config MARCH_ZEC12_TUNE
 317        def_bool TUNE_ZEC12 || MARCH_ZEC12 && TUNE_DEFAULT
 318
 319config MARCH_Z13_TUNE
 320        def_bool TUNE_Z13 || MARCH_Z13 && TUNE_DEFAULT
 321
 322config MARCH_Z14_TUNE
 323        def_bool TUNE_Z14 || MARCH_Z14 && TUNE_DEFAULT
 324
 325choice
 326        prompt "Tune code generation"
 327        default TUNE_DEFAULT
 328        help
 329          Cause the compiler to tune (-mtune) the generated code for a machine.
 330          This will make the code run faster on the selected machine but
 331          somewhat slower on other machines.
 332          This option only changes how the compiler emits instructions, not the
 333          selection of instructions itself, so the resulting kernel will run on
 334          all other machines.
 335
 336config TUNE_DEFAULT
 337        bool "Default"
 338        help
 339          Tune the generated code for the target processor for which the kernel
 340          will be compiled.
 341
 342config TUNE_Z900
 343        bool "IBM zSeries model z800 and z900"
 344
 345config TUNE_Z990
 346        bool "IBM zSeries model z890 and z990"
 347
 348config TUNE_Z9_109
 349        bool "IBM System z9"
 350
 351config TUNE_Z10
 352        bool "IBM System z10"
 353
 354config TUNE_Z196
 355        bool "IBM zEnterprise 114 and 196"
 356
 357config TUNE_ZEC12
 358        bool "IBM zBC12 and zEC12"
 359
 360config TUNE_Z13
 361        bool "IBM z13"
 362
 363config TUNE_Z14
 364        bool "IBM z14"
 365
 366endchoice
 367
 368config 64BIT
 369        def_bool y
 370
 371config COMPAT
 372        def_bool y
 373        prompt "Kernel support for 31 bit emulation"
 374        select COMPAT_BINFMT_ELF if BINFMT_ELF
 375        select ARCH_WANT_OLD_COMPAT_IPC
 376        select COMPAT_OLD_SIGACTION
 377        depends on MULTIUSER
 378        help
 379          Select this option if you want to enable your system kernel to
 380          handle system-calls from ELF binaries for 31 bit ESA.  This option
 381          (and some other stuff like libraries and such) is needed for
 382          executing 31 bit applications.  It is safe to say "Y".
 383
 384config SYSVIPC_COMPAT
 385        def_bool y if COMPAT && SYSVIPC
 386
 387config SMP
 388        def_bool y
 389        prompt "Symmetric multi-processing support"
 390        ---help---
 391          This enables support for systems with more than one CPU. If you have
 392          a system with only one CPU, like most personal computers, say N. If
 393          you have a system with more than one CPU, say Y.
 394
 395          If you say N here, the kernel will run on uni- and multiprocessor
 396          machines, but will use only one CPU of a multiprocessor machine. If
 397          you say Y here, the kernel will run on many, but not all,
 398          uniprocessor machines. On a uniprocessor machine, the kernel
 399          will run faster if you say N here.
 400
 401          See also the SMP-HOWTO available at
 402          <http://www.tldp.org/docs.html#howto>.
 403
 404          Even if you don't know what to do here, say Y.
 405
 406config NR_CPUS
 407        int "Maximum number of CPUs (2-512)"
 408        range 2 512
 409        depends on SMP
 410        default "64"
 411        help
 412          This allows you to specify the maximum number of CPUs which this
 413          kernel will support. The maximum supported value is 512 and the
 414          minimum value which makes sense is 2.
 415
 416          This is purely to save memory - each supported CPU adds
 417          approximately sixteen kilobytes to the kernel image.
 418
 419config HOTPLUG_CPU
 420        def_bool y
 421        prompt "Support for hot-pluggable CPUs"
 422        depends on SMP
 423        help
 424          Say Y here to be able to turn CPUs off and on. CPUs
 425          can be controlled through /sys/devices/system/cpu/cpu#.
 426          Say N if you want to disable CPU hotplug.
 427
 428# Some NUMA nodes have memory ranges that span
 429# other nodes.  Even though a pfn is valid and
 430# between a node's start and end pfns, it may not
 431# reside on that node.  See memmap_init_zone()
 432# for details. <- They meant memory holes!
 433config NODES_SPAN_OTHER_NODES
 434        def_bool NUMA
 435
 436config NUMA
 437        bool "NUMA support"
 438        depends on SMP && SCHED_TOPOLOGY
 439        default n
 440        help
 441          Enable NUMA support
 442
 443          This option adds NUMA support to the kernel.
 444
 445          An operation mode can be selected by appending
 446          numa=<method> to the kernel command line.
 447
 448          The default behaviour is identical to appending numa=plain to
 449          the command line. This will create just one node with all
 450          available memory and all CPUs in it.
 451
 452config NODES_SHIFT
 453        int "Maximum NUMA nodes (as a power of 2)"
 454        range 1 10
 455        depends on NUMA
 456        default "4"
 457        help
 458          Specify the maximum number of NUMA nodes available on the target
 459          system. Increases memory reserved to accommodate various tables.
 460
 461menu "Select NUMA modes"
 462        depends on NUMA
 463
 464config NUMA_EMU
 465        bool "NUMA emulation"
 466        default y
 467        help
 468          Numa emulation mode will split the available system memory into
 469          equal chunks which then are distributed over the configured number
 470          of nodes in a round-robin manner.
 471
 472          The number of fake nodes is limited by the number of available memory
 473          chunks (i.e. memory size / fake size) and the number of supported
 474          nodes in the kernel.
 475
 476          The CPUs are assigned to the nodes in a way that partially respects
 477          the original machine topology (if supported by the machine).
 478          Fair distribution of the CPUs is not guaranteed.
 479
 480config EMU_SIZE
 481        hex "NUMA emulation memory chunk size"
 482        default 0x10000000
 483        range 0x400000 0x100000000
 484        depends on NUMA_EMU
 485        help
 486          Select the default size by which the memory is chopped and then
 487          assigned to emulated NUMA nodes.
 488
 489          This can be overridden by specifying
 490
 491          emu_size=<n>
 492
 493          on the kernel command line where also suffixes K, M, G, and T are
 494          supported.
 495
 496endmenu
 497
 498config SCHED_SMT
 499        def_bool n
 500
 501config SCHED_MC
 502        def_bool n
 503
 504config SCHED_BOOK
 505        def_bool n
 506
 507config SCHED_DRAWER
 508        def_bool n
 509
 510config SCHED_TOPOLOGY
 511        def_bool y
 512        prompt "Topology scheduler support"
 513        depends on SMP
 514        select SCHED_SMT
 515        select SCHED_MC
 516        select SCHED_BOOK
 517        select SCHED_DRAWER
 518        help
 519          Topology scheduler support improves the CPU scheduler's decision
 520          making when dealing with machines that have multi-threading,
 521          multiple cores or multiple books.
 522
 523source kernel/Kconfig.preempt
 524
 525source kernel/Kconfig.hz
 526
 527config ARCH_RANDOM
 528        def_bool y
 529        prompt "s390 architectural random number generation API"
 530        help
 531          Enable the s390 architectural random number generation API
 532          to provide random data for all consumers within the Linux
 533          kernel.
 534
 535          When enabled the arch_random_* functions declared in linux/random.h
 536          are implemented. The implementation is based on the s390 CPACF
 537          instruction subfunction TRNG which provides a real true random
 538          number generator.
 539
 540          If unsure, say Y.
 541
 542config KERNEL_NOBP
 543        def_bool n
 544        prompt "Enable modified branch prediction for the kernel by default"
 545        help
 546          If this option is selected the kernel will switch to a modified
 547          branch prediction mode if the firmware interface is available.
 548          The modified branch prediction mode improves the behaviour in
 549          regard to speculative execution.
 550
 551          With the option enabled the kernel parameter "nobp=0" or "nospec"
 552          can be used to run the kernel in the normal branch prediction mode.
 553
 554          With the option disabled the modified branch prediction mode is
 555          enabled with the "nobp=1" kernel parameter.
 556
 557          If unsure, say N.
 558
 559config EXPOLINE
 560        def_bool n
 561        prompt "Avoid speculative indirect branches in the kernel"
 562        help
 563          Compile the kernel with the expoline compiler options to guard
 564          against kernel-to-user data leaks by avoiding speculative indirect
 565          branches.
 566          Requires a compiler with -mindirect-branch=thunk support for full
 567          protection. The kernel may run slower.
 568
 569          If unsure, say N.
 570
 571choice
 572        prompt "Expoline default"
 573        depends on EXPOLINE
 574        default EXPOLINE_FULL
 575
 576config EXPOLINE_OFF
 577        bool "spectre_v2=off"
 578
 579config EXPOLINE_MEDIUM
 580        bool "spectre_v2=auto"
 581
 582config EXPOLINE_FULL
 583        bool "spectre_v2=on"
 584
 585endchoice
 586
 587endmenu
 588
 589menu "Memory setup"
 590
 591config ARCH_SPARSEMEM_ENABLE
 592        def_bool y
 593        select SPARSEMEM_VMEMMAP_ENABLE
 594        select SPARSEMEM_VMEMMAP
 595
 596config ARCH_SPARSEMEM_DEFAULT
 597        def_bool y
 598
 599config ARCH_SELECT_MEMORY_MODEL
 600        def_bool y
 601
 602config ARCH_ENABLE_MEMORY_HOTPLUG
 603        def_bool y if SPARSEMEM
 604
 605config ARCH_ENABLE_MEMORY_HOTREMOVE
 606        def_bool y
 607
 608config ARCH_ENABLE_SPLIT_PMD_PTLOCK
 609        def_bool y
 610
 611config FORCE_MAX_ZONEORDER
 612        int
 613        default "9"
 614
 615source "mm/Kconfig"
 616
 617config MAX_PHYSMEM_BITS
 618        int "Maximum size of supported physical memory in bits (42-53)"
 619        range 42 53
 620        default "46"
 621        help
 622          This option specifies the maximum supported size of physical memory
 623          in bits. Supported is any size between 2^42 (4TB) and 2^53 (8PB).
 624          Increasing the number of bits also increases the kernel image size.
 625          By default 46 bits (64TB) are supported.
 626
 627config PACK_STACK
 628        def_bool y
 629        prompt "Pack kernel stack"
 630        help
 631          This option enables the compiler option -mkernel-backchain if it
 632          is available. If the option is available the compiler supports
 633          the new stack layout which dramatically reduces the minimum stack
 634          frame size. With an old compiler a non-leaf function needs a
 635          minimum of 96 bytes on 31 bit and 160 bytes on 64 bit. With
 636          -mkernel-backchain the minimum size drops to 16 byte on 31 bit
 637          and 24 byte on 64 bit.
 638
 639          Say Y if you are unsure.
 640
 641config CHECK_STACK
 642        def_bool y
 643        prompt "Detect kernel stack overflow"
 644        help
 645          This option enables the compiler option -mstack-guard and
 646          -mstack-size if they are available. If the compiler supports them
 647          it will emit additional code to each function prolog to trigger
 648          an illegal operation if the kernel stack is about to overflow.
 649
 650          Say N if you are unsure.
 651
 652config STACK_GUARD
 653        int "Size of the guard area (128-1024)"
 654        range 128 1024
 655        depends on CHECK_STACK
 656        default "256"
 657        help
 658          This allows you to specify the size of the guard area at the lower
 659          end of the kernel stack. If the kernel stack points into the guard
 660          area on function entry an illegal operation is triggered. The size
 661          needs to be a power of 2. Please keep in mind that the size of an
 662          interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit.
 663          The minimum size for the stack guard should be 256 for 31 bit and
 664          512 for 64 bit.
 665
 666config WARN_DYNAMIC_STACK
 667        def_bool n
 668        prompt "Emit compiler warnings for function with dynamic stack usage"
 669        help
 670          This option enables the compiler option -mwarn-dynamicstack. If the
 671          compiler supports this options generates warnings for functions
 672          that dynamically allocate stack space using alloca.
 673
 674          Say N if you are unsure.
 675
 676endmenu
 677
 678menu "I/O subsystem"
 679
 680config QDIO
 681        def_tristate y
 682        prompt "QDIO support"
 683        ---help---
 684          This driver provides the Queued Direct I/O base support for
 685          IBM System z.
 686
 687          To compile this driver as a module, choose M here: the
 688          module will be called qdio.
 689
 690          If unsure, say Y.
 691
 692menuconfig PCI
 693        bool "PCI support"
 694        select PCI_MSI
 695        select IOMMU_SUPPORT
 696        help
 697          Enable PCI support.
 698
 699if PCI
 700
 701config PCI_NR_FUNCTIONS
 702        int "Maximum number of PCI functions (1-4096)"
 703        range 1 4096
 704        default "128"
 705        help
 706          This allows you to specify the maximum number of PCI functions which
 707          this kernel will support.
 708
 709source "drivers/pci/Kconfig"
 710
 711endif   # PCI
 712
 713config PCI_DOMAINS
 714        def_bool PCI
 715
 716config HAS_IOMEM
 717        def_bool PCI
 718
 719config IOMMU_HELPER
 720        def_bool PCI
 721
 722config NEED_SG_DMA_LENGTH
 723        def_bool PCI
 724
 725config NEED_DMA_MAP_STATE
 726        def_bool PCI
 727
 728config CHSC_SCH
 729        def_tristate m
 730        prompt "Support for CHSC subchannels"
 731        help
 732          This driver allows usage of CHSC subchannels. A CHSC subchannel
 733          is usually present on LPAR only.
 734          The driver creates a device /dev/chsc, which may be used to
 735          obtain I/O configuration information about the machine and
 736          to issue asynchronous chsc commands (DANGEROUS).
 737          You will usually only want to use this interface on a special
 738          LPAR designated for system management.
 739
 740          To compile this driver as a module, choose M here: the
 741          module will be called chsc_sch.
 742
 743          If unsure, say N.
 744
 745config SCM_BUS
 746        def_bool y
 747        prompt "SCM bus driver"
 748        help
 749          Bus driver for Storage Class Memory.
 750
 751config EADM_SCH
 752        def_tristate m
 753        prompt "Support for EADM subchannels"
 754        depends on SCM_BUS
 755        help
 756          This driver allows usage of EADM subchannels. EADM subchannels act
 757          as a communication vehicle for SCM increments.
 758
 759          To compile this driver as a module, choose M here: the
 760          module will be called eadm_sch.
 761
 762config VFIO_CCW
 763        def_tristate n
 764        prompt "Support for VFIO-CCW subchannels"
 765        depends on S390_CCW_IOMMU && VFIO_MDEV
 766        help
 767          This driver allows usage of I/O subchannels via VFIO-CCW.
 768
 769          To compile this driver as a module, choose M here: the
 770          module will be called vfio_ccw.
 771
 772endmenu
 773
 774menu "Dump support"
 775
 776config CRASH_DUMP
 777        bool "kernel crash dumps"
 778        depends on SMP
 779        select KEXEC
 780        help
 781          Generate crash dump after being started by kexec.
 782          Crash dump kernels are loaded in the main kernel with kexec-tools
 783          into a specially reserved region and then later executed after
 784          a crash by kdump/kexec.
 785          Refer to <file:Documentation/s390/zfcpdump.txt> for more details on this.
 786          This option also enables s390 zfcpdump.
 787          See also <file:Documentation/s390/zfcpdump.txt>
 788
 789endmenu
 790
 791menu "Executable file formats / Emulations"
 792
 793source "fs/Kconfig.binfmt"
 794
 795config SECCOMP
 796        def_bool y
 797        prompt "Enable seccomp to safely compute untrusted bytecode"
 798        depends on PROC_FS
 799        help
 800          This kernel feature is useful for number crunching applications
 801          that may need to compute untrusted bytecode during their
 802          execution. By using pipes or other transports made available to
 803          the process as file descriptors supporting the read/write
 804          syscalls, it's possible to isolate those applications in
 805          their own address space using seccomp. Once seccomp is
 806          enabled via /proc/<pid>/seccomp, it cannot be disabled
 807          and the task is only allowed to execute a few safe syscalls
 808          defined by each seccomp mode.
 809
 810          If unsure, say Y.
 811
 812endmenu
 813
 814menu "Power Management"
 815
 816config ARCH_HIBERNATION_POSSIBLE
 817        def_bool y
 818
 819source "kernel/power/Kconfig"
 820
 821endmenu
 822
 823source "net/Kconfig"
 824
 825config PCMCIA
 826        def_bool n
 827
 828config CCW
 829        def_bool y
 830
 831source "drivers/Kconfig"
 832
 833source "fs/Kconfig"
 834
 835source "arch/s390/Kconfig.debug"
 836
 837source "security/Kconfig"
 838
 839source "crypto/Kconfig"
 840
 841source "lib/Kconfig"
 842
 843menu "Virtualization"
 844
 845config PFAULT
 846        def_bool y
 847        prompt "Pseudo page fault support"
 848        help
 849          Select this option, if you want to use PFAULT pseudo page fault
 850          handling under VM. If running native or in LPAR, this option
 851          has no effect. If your VM does not support PFAULT, PAGEEX
 852          pseudo page fault handling will be used.
 853          Note that VM 4.2 supports PFAULT but has a bug in its
 854          implementation that causes some problems.
 855          Everybody who wants to run Linux under VM != VM4.2 should select
 856          this option.
 857
 858config CMM
 859        def_tristate n
 860        prompt "Cooperative memory management"
 861        help
 862          Select this option, if you want to enable the kernel interface
 863          to reduce the memory size of the system. This is accomplished
 864          by allocating pages of memory and put them "on hold". This only
 865          makes sense for a system running under VM where the unused pages
 866          will be reused by VM for other guest systems. The interface
 867          allows an external monitor to balance memory of many systems.
 868          Everybody who wants to run Linux under VM should select this
 869          option.
 870
 871config CMM_IUCV
 872        def_bool y
 873        prompt "IUCV special message interface to cooperative memory management"
 874        depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
 875        help
 876          Select this option to enable the special message interface to
 877          the cooperative memory management.
 878
 879config APPLDATA_BASE
 880        def_bool n
 881        prompt "Linux - VM Monitor Stream, base infrastructure"
 882        depends on PROC_FS
 883        help
 884          This provides a kernel interface for creating and updating z/VM APPLDATA
 885          monitor records. The monitor records are updated at certain time
 886          intervals, once the timer is started.
 887          Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
 888          i.e. enables or disables monitoring on the Linux side.
 889          A custom interval value (in seconds) can be written to
 890          /proc/appldata/interval.
 891
 892          Defaults are 60 seconds interval and timer off.
 893          The /proc entries can also be read from, showing the current settings.
 894
 895config APPLDATA_MEM
 896        def_tristate m
 897        prompt "Monitor memory management statistics"
 898        depends on APPLDATA_BASE && VM_EVENT_COUNTERS
 899        help
 900          This provides memory management related data to the Linux - VM Monitor
 901          Stream, like paging/swapping rate, memory utilisation, etc.
 902          Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM
 903          APPLDATA monitor record, i.e. enables or disables monitoring this record
 904          on the z/VM side.
 905
 906          Default is disabled.
 907          The /proc entry can also be read from, showing the current settings.
 908
 909          This can also be compiled as a module, which will be called
 910          appldata_mem.o.
 911
 912config APPLDATA_OS
 913        def_tristate m
 914        prompt "Monitor OS statistics"
 915        depends on APPLDATA_BASE
 916        help
 917          This provides OS related data to the Linux - VM Monitor Stream, like
 918          CPU utilisation, etc.
 919          Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
 920          APPLDATA monitor record, i.e. enables or disables monitoring this record
 921          on the z/VM side.
 922
 923          Default is disabled.
 924          This can also be compiled as a module, which will be called
 925          appldata_os.o.
 926
 927config APPLDATA_NET_SUM
 928        def_tristate m
 929        prompt "Monitor overall network statistics"
 930        depends on APPLDATA_BASE && NET
 931        help
 932          This provides network related data to the Linux - VM Monitor Stream,
 933          currently there is only a total sum of network I/O statistics, no
 934          per-interface data.
 935          Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
 936          APPLDATA monitor record, i.e. enables or disables monitoring this record
 937          on the z/VM side.
 938
 939          Default is disabled.
 940          This can also be compiled as a module, which will be called
 941          appldata_net_sum.o.
 942
 943config S390_HYPFS_FS
 944        def_bool y
 945        prompt "s390 hypervisor file system support"
 946        select SYS_HYPERVISOR
 947        help
 948          This is a virtual file system intended to provide accounting
 949          information in an s390 hypervisor environment.
 950
 951source "arch/s390/kvm/Kconfig"
 952
 953config S390_GUEST
 954        def_bool y
 955        prompt "s390 support for virtio devices"
 956        select TTY
 957        select VIRTUALIZATION
 958        select VIRTIO
 959        select VIRTIO_CONSOLE
 960        help
 961          Enabling this option adds support for virtio based paravirtual device
 962          drivers on s390.
 963
 964          Select this option if you want to run the kernel as a guest under
 965          the KVM hypervisor.
 966
 967endmenu
 968