Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b3d6524f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull s390 updates from Martin Schwidefsky:

 - The remaining patches for the z13 machine support: kernel build
   option for z13, the cache synonym avoidance, SMT support,
   compare-and-delay for spinloops and the CES5S crypto adapater.

 - The ftrace support for function tracing with the gcc hotpatch option.
   This touches common code Makefiles, Steven is ok with the changes.

 - The hypfs file system gets an extension to access diagnose 0x0c data
   in user space for performance analysis for Linux running under z/VM.

 - The iucv hvc console gets wildcard spport for the user id filtering.

 - The cacheinfo code is converted to use the generic infrastructure.

 - Cleanup and bug fixes.

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (42 commits)
  s390/process: free vx save area when releasing tasks
  s390/hypfs: Eliminate hypfs interval
  s390/hypfs: Add diagnose 0c support
  s390/cacheinfo: don't use smp_processor_id() in preemptible context
  s390/zcrypt: fixed domain scanning problem (again)
  s390/smp: increase maximum value of NR_CPUS to 512
  s390/jump label: use different nop instruction
  s390/jump label: add sanity checks
  s390/mm: correct missing space when reporting user process faults
  s390/dasd: cleanup profiling
  s390/dasd: add locking for global_profile access
  s390/ftrace: hotpatch support for function tracing
  ftrace: let notrace function attribute disable hotpatching if necessary
  ftrace: allow architectures to specify ftrace compile options
  s390: reintroduce diag 44 calls for cpu_relax()
  s390/zcrypt: Add support for new crypto express (CEX5S) adapter.
  s390/zcrypt: Number of supported ap domains is not retrievable.
  s390/spinlock: add compare-and-delay to lock wait loops
  s390/tape: remove redundant if statement
  s390/hvc_iucv: add simple wildcard matches to the iucv allow filter
  ...
parents 07f80d41 6a039eab
Loading
Loading
Loading
Loading
+237 −256

File changed.

Preview size limit exceeded, changes collapsed.

+5 −1
Original line number Diff line number Diff line
@@ -726,10 +726,14 @@ KBUILD_CFLAGS += $(call cc-option, -femit-struct-debug-baseonly) \
endif

ifdef CONFIG_FUNCTION_TRACER
ifndef CC_FLAGS_FTRACE
CC_FLAGS_FTRACE := -pg
endif
export CC_FLAGS_FTRACE
ifdef CONFIG_HAVE_FENTRY
CC_USING_FENTRY	:= $(call cc-option, -mfentry -DCC_USING_FENTRY)
endif
KBUILD_CFLAGS	+= -pg $(CC_USING_FENTRY)
KBUILD_CFLAGS	+= $(CC_FLAGS_FTRACE) $(CC_USING_FENTRY)
KBUILD_AFLAGS	+= $(CC_USING_FENTRY)
ifdef CONFIG_DYNAMIC_FTRACE
	ifdef CONFIG_HAVE_C_RECORDMCOUNT
+34 −8
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ config S390
	select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
	select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
	select ARCH_HAS_GCOV_PROFILE_ALL
	select ARCH_HAS_SG_CHAIN
	select ARCH_HAVE_NMI_SAFE_CMPXCHG
	select ARCH_INLINE_READ_LOCK
	select ARCH_INLINE_READ_LOCK_BH
@@ -116,7 +117,6 @@ config S390
	select HAVE_BPF_JIT if 64BIT && PACK_STACK
	select HAVE_CMPXCHG_DOUBLE
	select HAVE_CMPXCHG_LOCAL
	select HAVE_C_RECORDMCOUNT
	select HAVE_DEBUG_KMEMLEAK
	select HAVE_DYNAMIC_FTRACE if 64BIT
	select HAVE_DYNAMIC_FTRACE_WITH_REGS if 64BIT
@@ -151,7 +151,6 @@ config S390
	select TTY
	select VIRT_CPU_ACCOUNTING
	select VIRT_TO_BUS
	select ARCH_HAS_SG_CHAIN

config SCHED_OMIT_FRAME_POINTER
	def_bool y
@@ -185,6 +184,10 @@ config HAVE_MARCH_ZEC12_FEATURES
	def_bool n
	select HAVE_MARCH_Z196_FEATURES

config HAVE_MARCH_Z13_FEATURES
	def_bool n
	select HAVE_MARCH_ZEC12_FEATURES

choice
	prompt "Processor type"
	default MARCH_G5
@@ -244,6 +247,14 @@ config MARCH_ZEC12
	  2827 series). The kernel will be slightly faster but will not work on
	  older machines.

config MARCH_Z13
	bool "IBM z13"
	select HAVE_MARCH_Z13_FEATURES if 64BIT
	help
	  Select this to enable optimizations for IBM z13 (2964 series).
	  The kernel will be slightly faster but will not work on older
	  machines.

endchoice

config MARCH_G5_TUNE
@@ -267,6 +278,9 @@ config MARCH_Z196_TUNE
config MARCH_ZEC12_TUNE
	def_bool TUNE_ZEC12 || MARCH_ZEC12 && TUNE_DEFAULT

config MARCH_Z13_TUNE
	def_bool TUNE_Z13 || MARCH_Z13 && TUNE_DEFAULT

choice
	prompt "Tune code generation"
	default TUNE_DEFAULT
@@ -305,6 +319,9 @@ config TUNE_Z196
config TUNE_ZEC12
	bool "IBM zBC12 and zEC12"

config TUNE_Z13
	bool "IBM z13"

endchoice

config 64BIT
@@ -356,14 +373,14 @@ config SMP
	  Even if you don't know what to do here, say Y.

config NR_CPUS
	int "Maximum number of CPUs (2-256)"
	range 2 256
	int "Maximum number of CPUs (2-512)"
	range 2 512
	depends on SMP
	default "32" if !64BIT
	default "64" if 64BIT
	help
	  This allows you to specify the maximum number of CPUs which this
	  kernel will support. The maximum supported value is 256 and the
	  kernel will support. The maximum supported value is 512 and the
	  minimum value which makes sense is 2.

	  This is purely to save memory - each supported CPU adds
@@ -378,17 +395,26 @@ config HOTPLUG_CPU
	  can be controlled through /sys/devices/system/cpu/cpu#.
	  Say N if you want to disable CPU hotplug.

config SCHED_SMT
	def_bool n

config SCHED_MC
	def_bool n

config SCHED_BOOK
	def_bool n

config SCHED_TOPOLOGY
	def_bool y
	prompt "Book scheduler support"
	prompt "Topology scheduler support"
	depends on SMP
	select SCHED_SMT
	select SCHED_MC
	select SCHED_BOOK
	help
	  Book scheduler support improves the CPU scheduler's decision making
	  when dealing with machines that have several books.
	  Topology scheduler support improves the CPU scheduler's decision
	  making when dealing with machines that have multi-threading,
	  multiple cores or multiple books.

source kernel/Kconfig.preempt

+12 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ mflags-$(CONFIG_MARCH_Z9_109) := -march=z9-109
mflags-$(CONFIG_MARCH_Z10)    := -march=z10
mflags-$(CONFIG_MARCH_Z196)   := -march=z196
mflags-$(CONFIG_MARCH_ZEC12)  := -march=zEC12
mflags-$(CONFIG_MARCH_Z13)   := -march=z13

aflags-y += $(mflags-y)
cflags-y += $(mflags-y)
@@ -53,6 +54,7 @@ cflags-$(CONFIG_MARCH_Z9_109_TUNE) += -mtune=z9-109
cflags-$(CONFIG_MARCH_Z10_TUNE)		+= -mtune=z10
cflags-$(CONFIG_MARCH_Z196_TUNE)	+= -mtune=z196
cflags-$(CONFIG_MARCH_ZEC12_TUNE)	+= -mtune=zEC12
cflags-$(CONFIG_MARCH_Z13_TUNE)	+= -mtune=z13

#KBUILD_IMAGE is necessary for make rpm
KBUILD_IMAGE	:=arch/s390/boot/image
@@ -85,6 +87,16 @@ ifeq ($(call cc-option-yn,-mwarn-dynamicstack),y)
cflags-$(CONFIG_WARN_DYNAMIC_STACK) += -mwarn-dynamicstack
endif

ifdef CONFIG_FUNCTION_TRACER
# make use of hotpatch feature if the compiler supports it
cc_hotpatch	:= -mhotpatch=0,3
ifeq ($(call cc-option-yn,$(cc_hotpatch)),y)
CC_FLAGS_FTRACE := $(cc_hotpatch)
KBUILD_AFLAGS	+= -DCC_USING_HOTPATCH
KBUILD_CFLAGS	+= -DCC_USING_HOTPATCH
endif
endif

KBUILD_CFLAGS	+= -mbackchain -msoft-float $(cflags-y)
KBUILD_CFLAGS	+= -pipe -fno-strength-reduce -Wno-sign-compare
KBUILD_AFLAGS	+= $(aflags-y)
+1 −2
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@

#include <asm/uaccess.h>
#include <asm/page.h>
#include <asm/sclp.h>
#include <asm/ipl.h>
#include "sizes.h"

@@ -63,8 +64,6 @@ static unsigned long free_mem_end_ptr;
#include "../../../../lib/decompress_unxz.c"
#endif

extern _sclp_print_early(const char *);

static int puts(const char *s)
{
	_sclp_print_early(s);
Loading