fix tlb flushing for page table pages
[linux-flexiantxendom0.git] / arch / s390 / Kconfig
index a94a3c3..a3c40e8 100644 (file)
@@ -1,18 +1,8 @@
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
-
-config SCHED_MC
-       def_bool y
-       depends on SMP
-
 config MMU
        def_bool y
 
 config ZONE_DMA
        def_bool y
-       depends on 64BIT
 
 config LOCKDEP_SUPPORT
        def_bool y
@@ -30,19 +20,14 @@ config RWSEM_XCHGADD_ALGORITHM
        def_bool y
 
 config ARCH_HAS_ILOG2_U32
-       bool
-       default n
+       def_bool n
 
 config ARCH_HAS_ILOG2_U64
-       bool
-       default n
+       def_bool n
 
 config GENERIC_HWEIGHT
        def_bool y
 
-config GENERIC_TIME
-       def_bool y
-
 config GENERIC_TIME_VSYSCALL
        def_bool y
 
@@ -50,9 +35,10 @@ config GENERIC_CLOCKEVENTS
        def_bool y
 
 config GENERIC_BUG
-       bool
-       depends on BUG
-       default y
+       def_bool y if BUG
+
+config GENERIC_BUG_RELATIVE_POINTERS
+       def_bool y
 
 config NO_IOMEM
        def_bool y
@@ -60,30 +46,82 @@ config NO_IOMEM
 config NO_DMA
        def_bool y
 
+config ARCH_DMA_ADDR_T_64BIT
+       def_bool 64BIT
+
 config GENERIC_LOCKBREAK
-       bool
-       default y
-       depends on SMP && PREEMPT
+       def_bool y if SMP && PREEMPT
 
 config PGSTE
-       bool
-       default y if KVM
+       def_bool y if KVM
 
 config VIRT_CPU_ACCOUNTING
        def_bool y
 
-mainmenu "Linux Kernel Configuration"
+config ARCH_SUPPORTS_DEBUG_PAGEALLOC
+       def_bool y
 
 config S390
        def_bool y
        select USE_GENERIC_SMP_HELPERS if SMP
+       select HAVE_SYSCALL_WRAPPERS
        select HAVE_FUNCTION_TRACER
+       select HAVE_FUNCTION_TRACE_MCOUNT_TEST
+       select HAVE_FTRACE_MCOUNT_RECORD
+       select HAVE_C_RECORDMCOUNT
+       select HAVE_SYSCALL_TRACEPOINTS
+       select HAVE_DYNAMIC_FTRACE
+       select HAVE_FUNCTION_GRAPH_TRACER
+       select HAVE_REGS_AND_STACK_ACCESS_API
        select HAVE_OPROFILE
        select HAVE_KPROBES
        select HAVE_KRETPROBES
        select HAVE_KVM if 64BIT
        select HAVE_ARCH_TRACEHOOK
        select INIT_ALL_POSSIBLE
+       select HAVE_IRQ_WORK
+       select HAVE_PERF_EVENTS
+       select ARCH_HAVE_NMI_SAFE_CMPXCHG
+       select HAVE_KERNEL_GZIP
+       select HAVE_KERNEL_BZIP2
+       select HAVE_KERNEL_LZMA
+       select HAVE_KERNEL_LZO
+       select HAVE_KERNEL_XZ
+       select HAVE_GET_USER_PAGES_FAST
+       select HAVE_ARCH_MUTEX_CPU_RELAX
+       select HAVE_ARCH_JUMP_LABEL if !MARCH_G5
+       select ARCH_SAVE_PAGE_KEYS if HIBERNATION
+       select ARCH_INLINE_SPIN_TRYLOCK
+       select ARCH_INLINE_SPIN_TRYLOCK_BH
+       select ARCH_INLINE_SPIN_LOCK
+       select ARCH_INLINE_SPIN_LOCK_BH
+       select ARCH_INLINE_SPIN_LOCK_IRQ
+       select ARCH_INLINE_SPIN_LOCK_IRQSAVE
+       select ARCH_INLINE_SPIN_UNLOCK
+       select ARCH_INLINE_SPIN_UNLOCK_BH
+       select ARCH_INLINE_SPIN_UNLOCK_IRQ
+       select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
+       select ARCH_INLINE_READ_TRYLOCK
+       select ARCH_INLINE_READ_LOCK
+       select ARCH_INLINE_READ_LOCK_BH
+       select ARCH_INLINE_READ_LOCK_IRQ
+       select ARCH_INLINE_READ_LOCK_IRQSAVE
+       select ARCH_INLINE_READ_UNLOCK
+       select ARCH_INLINE_READ_UNLOCK_BH
+       select ARCH_INLINE_READ_UNLOCK_IRQ
+       select ARCH_INLINE_READ_UNLOCK_IRQRESTORE
+       select ARCH_INLINE_WRITE_TRYLOCK
+       select ARCH_INLINE_WRITE_LOCK
+       select ARCH_INLINE_WRITE_LOCK_BH
+       select ARCH_INLINE_WRITE_LOCK_IRQ
+       select ARCH_INLINE_WRITE_LOCK_IRQSAVE
+       select ARCH_INLINE_WRITE_UNLOCK
+       select ARCH_INLINE_WRITE_UNLOCK_BH
+       select ARCH_INLINE_WRITE_UNLOCK_IRQ
+       select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
+
+config SCHED_OMIT_FRAME_POINTER
+       def_bool y
 
 source "init/Kconfig"
 
@@ -96,17 +134,21 @@ comment "Processor type and features"
 source "kernel/time/Kconfig"
 
 config 64BIT
-       bool "64 bit kernel"
+       def_bool y
+       prompt "64 bit kernel"
        help
-         Select this option if you have a 64 bit IBM zSeries machine
+         Select this option if you have an IBM z/Architecture machine
          and want to use the 64 bit addressing mode.
 
 config 32BIT
-       bool
-       default y if !64BIT
+       def_bool y if !64BIT
+
+config KTIME_SCALAR
+       def_bool 32BIT
 
 config SMP
-       bool "Symmetric multi-processing support"
+       def_bool y
+       prompt "Symmetric multi-processing support"
        ---help---
          This enables support for systems with more than one CPU. If you have
          a system with only one CPU, like most personal computers, say N. If
@@ -138,25 +180,44 @@ config NR_CPUS
          approximately sixteen kilobytes to the kernel image.
 
 config HOTPLUG_CPU
-       bool "Support for hot-pluggable CPUs"
+       def_bool y
+       prompt "Support for hot-pluggable CPUs"
        depends on SMP
        select HOTPLUG
-       default n
        help
          Say Y here to be able to turn CPUs off and on. CPUs
          can be controlled through /sys/devices/system/cpu/cpu#.
          Say N if you want to disable CPU hotplug.
 
+config SCHED_MC
+       def_bool y
+       prompt "Multi-core scheduler support"
+       depends on SMP
+       help
+         Multi-core scheduler support improves the CPU scheduler's decision
+         making when dealing with multi-core CPU chips at a cost of slightly
+         increased overhead in some places.
+
+config SCHED_BOOK
+       def_bool y
+       prompt "Book scheduler support"
+       depends on SMP && SCHED_MC
+       help
+         Book scheduler support improves the CPU scheduler's decision making
+         when dealing with machines that have several books.
+
 config MATHEMU
-       bool "IEEE FPU emulation"
+       def_bool y
+       prompt "IEEE FPU emulation"
        depends on MARCH_G5
        help
          This option is required for IEEE compliant floating point arithmetic
-         on older S/390 machines. Say Y unless you know your machine doesn't
+         on older ESA/390 machines. Say Y unless you know your machine doesn't
          need this.
 
 config COMPAT
-       bool "Kernel support for 31 bit emulation"
+       def_bool y
+       prompt "Kernel support for 31 bit emulation"
        depends on 64BIT
        select COMPAT_BINFMT_ELF
        help
@@ -166,38 +227,13 @@ config COMPAT
          executing 31 bit applications.  It is safe to say "Y".
 
 config SYSVIPC_COMPAT
-       bool
-       depends on COMPAT && SYSVIPC
-       default y
+       def_bool y if COMPAT && SYSVIPC
 
-config AUDIT_ARCH
-       bool
-       default y
+config KEYS_COMPAT
+       def_bool y if COMPAT && KEYS
 
-config S390_SWITCH_AMODE
-       bool "Switch kernel/user addressing modes"
-       help
-         This option allows to switch the addressing modes of kernel and user
-         space. The kernel parameter switch_amode=on will enable this feature,
-         default is disabled. Enabling this (via kernel parameter) on machines
-         earlier than IBM System z9-109 EC/BC will reduce system performance.
-
-         Note that this option will also be selected by selecting the execute
-         protection option below. Enabling the execute protection via the
-         noexec kernel parameter will also switch the addressing modes,
-         independent of the switch_amode kernel parameter.
-
-
-config S390_EXEC_PROTECT
-       bool "Data execute protection"
-       select S390_SWITCH_AMODE
-       help
-         This option allows to enable a buffer overflow protection for user
-         space programs and it also selects the addressing mode option above.
-         The kernel parameter noexec=on will enable this feature and also
-         switch the addressing modes, default is disabled. Enabling this (via
-         kernel parameter) on machines earlier than IBM System z9-109 EC/BC
-         will reduce system performance.
+config AUDIT_ARCH
+       def_bool y
 
 comment "Code generation options"
 
@@ -206,46 +242,52 @@ choice
        default MARCH_G5
 
 config MARCH_G5
-       bool "S/390 model G5 and G6"
+       bool "System/390 model G5 and G6"
        depends on !64BIT
        help
          Select this to build a 31 bit kernel that works
-         on all S/390 and zSeries machines.
+         on all ESA/390 and z/Architecture machines.
 
 config MARCH_Z900
-       bool "IBM eServer zSeries model z800 and z900"
+       bool "IBM zSeries model z800 and z900"
        help
-         Select this to optimize for zSeries machines. This
-         will enable some optimizations that are not available
-         on older 31 bit only CPUs.
+         Select this to enable optimizations for model z800/z900 (2064 and
+         2066 series). This will enable some optimizations that are not
+         available on older ESA/390 (31 Bit) only CPUs.
 
 config MARCH_Z990
-       bool "IBM eServer zSeries model z890 and z990"
+       bool "IBM zSeries model z890 and z990"
        help
-         Select this enable optimizations for model z890/z990.
-         This will be slightly faster but does not work on
-         older machines such as the z900.
+         Select this to enable optimizations for model z890/z990 (2084 and
+         2086 series). The kernel will be slightly faster but will not work
+         on older machines.
 
 config MARCH_Z9_109
        bool "IBM System z9"
        help
-         Select this to enable optimizations for IBM System z9-109, IBM
-         System z9 Enterprise Class (z9 EC), and IBM System z9 Business
-         Class (z9 BC). The kernel will be slightly faster but will not
-         work on older machines such as the z990, z890, z900, and z800.
+         Select this to enable optimizations for IBM System z9 (2094 and
+         2096 series). The kernel will be slightly faster but will not work
+         on older machines.
 
 config MARCH_Z10
        bool "IBM System z10"
        help
-         Select this to enable optimizations for IBM System z10. The
-         kernel will be slightly faster but will not work on older
-         machines such as the z990, z890, z900, z800, z9-109, z9-ec
-         and z9-bc.
+         Select this to enable optimizations for IBM System z10 (2097 and
+         2098 series). The kernel will be slightly faster but will not work
+         on older machines.
+
+config MARCH_Z196
+       bool "IBM zEnterprise 114 and 196"
+       help
+         Select this to enable optimizations for IBM zEnterprise 114 and 196
+         (2818 and 2817 series). The kernel will be slightly faster but will
+         not work on older machines.
 
 endchoice
 
 config PACK_STACK
-       bool "Pack kernel stack"
+       def_bool y
+       prompt "Pack kernel stack"
        help
          This option enables the compiler option -mkernel-backchain if it
          is available. If the option is available the compiler supports
@@ -258,7 +300,8 @@ config PACK_STACK
          Say Y if you are unsure.
 
 config SMALL_STACK
-       bool "Use 8kb for kernel stack instead of 16kb"
+       def_bool n
+       prompt "Use 8kb for kernel stack instead of 16kb"
        depends on PACK_STACK && 64BIT && !LOCKDEP
        help
          If you say Y here and the compiler supports the -mkernel-backchain
@@ -270,7 +313,8 @@ config SMALL_STACK
          Say N if you are unsure.
 
 config CHECK_STACK
-       bool "Detect kernel stack overflow"
+       def_bool y
+       prompt "Detect kernel stack overflow"
        help
          This option enables the compiler option -mstack-guard and
          -mstack-size if they are available. If the compiler supports them
@@ -293,25 +337,16 @@ config STACK_GUARD
          The minimum size for the stack guard should be 256 for 31 bit and
          512 for 64 bit.
 
-config WARN_STACK
-       bool "Emit compiler warnings for function with broken stack usage"
+config WARN_DYNAMIC_STACK
+       def_bool n
+       prompt "Emit compiler warnings for function with dynamic stack usage"
        help
-         This option enables the compiler options -mwarn-framesize and
-         -mwarn-dynamicstack. If the compiler supports these options it
-         will generate warnings for function which either use alloca or
-         create a stack frame bigger than CONFIG_WARN_STACK_SIZE.
+         This option enables the compiler option -mwarn-dynamicstack. If the
+         compiler supports this options generates warnings for functions
+         that dynamically allocate stack space using alloca.
 
          Say N if you are unsure.
 
-config WARN_STACK_SIZE
-       int "Maximum frame size considered safe (128-2048)"
-       range 128 2048
-       depends on WARN_STACK
-       default "2048"
-       help
-         This allows you to specify the maximum frame size a function may
-         have without the compiler complaining about it.
-
 config ARCH_POPULATES_NODE_MAP
        def_bool y
 
@@ -329,28 +364,24 @@ config ARCH_SPARSEMEM_DEFAULT
        def_bool y
 
 config ARCH_SELECT_MEMORY_MODEL
-       def_bool y
+       def_bool y
 
 config ARCH_ENABLE_MEMORY_HOTPLUG
-       def_bool y
-       depends on SPARSEMEM
+       def_bool y if SPARSEMEM
 
 config ARCH_ENABLE_MEMORY_HOTREMOVE
        def_bool y
 
+config ARCH_HIBERNATION_POSSIBLE
+       def_bool y if 64BIT
+
 source "mm/Kconfig"
 
 comment "I/O subsystem configuration"
 
-config MACHCHK_WARNING
-       bool "Process warning machine checks"
-       help
-         Select this option if you want the machine check handler on IBM S/390 or
-         zSeries to process warning machine checks (e.g. on power failures).
-         If unsure, say "Y".
-
 config QDIO
-       tristate "QDIO support"
+       def_tristate y
+       prompt "QDIO support"
        ---help---
          This driver provides the Queued Direct I/O base support for
          IBM System z.
@@ -361,7 +392,8 @@ config QDIO
          If unsure, say Y.
 
 config CHSC_SCH
-       tristate "Support for CHSC subchannels"
+       def_tristate m
+       prompt "Support for CHSC subchannels"
        help
          This driver allows usage of CHSC subchannels. A CHSC subchannel
          is usually present on LPAR only.
@@ -379,7 +411,8 @@ config CHSC_SCH
 comment "Misc"
 
 config IPL
-       bool "Builtin IPL record support"
+       def_bool y
+       prompt "Builtin IPL record support"
        help
          If you want to use the produced kernel to IPL directly from a
          device, you have to merge a bootsector specific to the device
@@ -410,15 +443,9 @@ config FORCE_MAX_ZONEORDER
        int
        default "9"
 
-config PROCESS_DEBUG
-       bool "Show crashed user process info"
-       help
-         Say Y to print all process fault locations to the console.  This is
-         a debugging option; you probably do not want to set it unless you
-         are an S390 port maintainer.
-
 config PFAULT
-       bool "Pseudo page fault support"
+       def_bool y
+       prompt "Pseudo page fault support"
        help
          Select this option, if you want to use PFAULT pseudo page fault
          handling under VM. If running native or in LPAR, this option
@@ -430,7 +457,8 @@ config PFAULT
          this option.
 
 config SHARED_KERNEL
-       bool "VM shared kernel support"
+       def_bool y
+       prompt "VM shared kernel support"
        help
          Select this option, if you want to share the text segment of the
          Linux kernel between different VM guests. This reduces memory
@@ -441,7 +469,8 @@ config SHARED_KERNEL
          doing and want to exploit this feature.
 
 config CMM
-       tristate "Cooperative memory management"
+       def_tristate n
+       prompt "Cooperative memory management"
        help
          Select this option, if you want to enable the kernel interface
          to reduce the memory size of the system. This is accomplished
@@ -452,29 +481,17 @@ config CMM
          Everybody who wants to run Linux under VM should select this
          option.
 
-config CMM_PROC
-       bool "/proc interface to cooperative memory management"
-       depends on CMM
-       help
-         Select this option to enable the /proc interface to the
-         cooperative memory management.
-
 config CMM_IUCV
-       bool "IUCV special message interface to cooperative memory management"
+       def_bool y
+       prompt "IUCV special message interface to cooperative memory management"
        depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
        help
          Select this option to enable the special message interface to
          the cooperative memory management.
 
-config PAGE_STATES
-       bool "Unused page notification"
-       help
-         This enables the notification of unused pages to the
-         hypervisor. The ESSA instruction is used to do the states
-         changes between a page that has content and the unused state.
-
 config APPLDATA_BASE
-       bool "Linux - VM Monitor Stream, base infrastructure"
+       def_bool n
+       prompt "Linux - VM Monitor Stream, base infrastructure"
        depends on PROC_FS
        help
          This provides a kernel interface for creating and updating z/VM APPLDATA
@@ -489,7 +506,8 @@ config APPLDATA_BASE
          The /proc entries can also be read from, showing the current settings.
 
 config APPLDATA_MEM
-       tristate "Monitor memory management statistics"
+       def_tristate m
+       prompt "Monitor memory management statistics"
        depends on APPLDATA_BASE && VM_EVENT_COUNTERS
        help
          This provides memory management related data to the Linux - VM Monitor
@@ -505,7 +523,8 @@ config APPLDATA_MEM
          appldata_mem.o.
 
 config APPLDATA_OS
-       tristate "Monitor OS statistics"
+       def_tristate m
+       prompt "Monitor OS statistics"
        depends on APPLDATA_BASE
        help
          This provides OS related data to the Linux - VM Monitor Stream, like
@@ -519,8 +538,9 @@ config APPLDATA_OS
          appldata_os.o.
 
 config APPLDATA_NET_SUM
-       tristate "Monitor overall network statistics"
-       depends on APPLDATA_BASE
+       def_tristate m
+       prompt "Monitor overall network statistics"
+       depends on APPLDATA_BASE && NET
        help
          This provides network related data to the Linux - VM Monitor Stream,
          currently there is only a total sum of network I/O statistics, no
@@ -536,31 +556,45 @@ config APPLDATA_NET_SUM
 source kernel/Kconfig.hz
 
 config S390_HYPFS_FS
-       bool "s390 hypervisor file system support"
+       def_bool y
+       prompt "s390 hypervisor file system support"
        select SYS_HYPERVISOR
-       default y
        help
          This is a virtual file system intended to provide accounting
          information in an s390 hypervisor environment.
 
 config KEXEC
-       bool "kexec system call"
+       def_bool n
+       prompt "kexec system call"
        help
          kexec is a system call that implements the ability to shutdown your
          current kernel, and to start another kernel.  It is like a reboot
          but is independent of hardware/microcode support.
 
+config CRASH_DUMP
+       bool "kernel crash dumps"
+       depends on 64BIT
+       select KEXEC
+       help
+         Generate crash dump after being started by kexec.
+         Crash dump kernels are loaded in the main kernel with kexec-tools
+         into a specially reserved region and then later executed after
+         a crash by kdump/kexec.
+         For more details see Documentation/kdump/kdump.txt
+
 config ZFCPDUMP
-       tristate "zfcpdump support"
+       def_bool n
+       prompt "zfcpdump support"
        select SMP
-       default n
        help
          Select this option if you want to build an zfcpdump enabled kernel.
          Refer to <file:Documentation/s390/zfcpdump.txt> for more details on this.
 
 config S390_GUEST
-bool "s390 guest support for KVM (EXPERIMENTAL)"
+       def_bool y
+       prompt "s390 guest support for KVM (EXPERIMENTAL)"
        depends on 64BIT && EXPERIMENTAL
+       select VIRTUALIZATION
        select VIRTIO
        select VIRTIO_RING
        select VIRTIO_CONSOLE
@@ -569,6 +603,30 @@ bool "s390 guest support for KVM (EXPERIMENTAL)"
          the KVM hypervisor. This will add detection for KVM as well  as a
          virtio transport. If KVM is detected, the virtio console will be
          the default console.
+
+config SECCOMP
+       def_bool y
+       prompt "Enable seccomp to safely compute untrusted bytecode"
+       depends on PROC_FS
+       help
+         This kernel feature is useful for number crunching applications
+         that may need to compute untrusted bytecode during their
+         execution. By using pipes or other transports made available to
+         the process as file descriptors supporting the read/write
+         syscalls, it's possible to isolate those applications in
+         their own address space using seccomp. Once seccomp is
+         enabled via /proc/<pid>/seccomp, it cannot be disabled
+         and the task is only allowed to execute a few safe syscalls
+         defined by each seccomp mode.
+
+         If unsure, say Y.
+
+endmenu
+
+menu "Power Management"
+
+source "kernel/power/Kconfig"
+
 endmenu
 
 source "net/Kconfig"