Commit 9c6a019c authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull s390 updates from Martin Schwidefsky:
 "The big one is support for fake NUMA, splitting a really large machine
  in more manageable piece improves performance in some cases, e.g. for
  a KVM host.

  The FICON Link Incident handling has been improved, this helps the
  operator to identify degraded or non-operational FICON connections.

  The save and restore of floating point and vector registers has been
  overhauled to allow the future use of vector registers in the kernel.

  A few small enhancement, magic sys-requests for the vt220 console via
  SCLP, some more assembler code has been converted to C, the PCI error
  handling is improved.

  And the usual cleanup and bug fixing"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (59 commits)
  s390/jump_label: Use %*ph to print small buffers
  s390/sclp_vt220: support magic sysrequests
  s390/ctrlchar: improve handling of magic sysrequests
  s390/numa: remove superfluous ARCH_WANT defines
  s390/3270: redraw screen on unsolicited device end
  s390/dcssblk: correct out of bounds array indexes
  s390/mm: simplify page table alloc/free code
  s390/pci: move debug messages to debugfs
  s390/nmi: initialize control register 0 earlier
  s390/zcrypt: use msleep() instead of mdelay()
  s390/hmcdrv: fix interrupt registration
  s390/setup: fix novx parameter
  s390/uaccess: remove uaccess_primary kernel parameter
  s390: remove unneeded sizeof(void *) comparisons
  s390/facilities: remove transactional-execution bits
  s390/numa: re-add DIE sched_domain_topology_level
  s390/dasd: enhance CUIR scope detection
  s390/dasd: fix failing path verification
  s390/vdso: emit a GNU hash
  s390/numa: make core to node mapping data dynamic
  ...
parents 7c019191 e4ec7351
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -5907,7 +5907,6 @@ F: arch/powerpc/kvm/
KERNEL VIRTUAL MACHINE for s390 (KVM/s390)
M:	Christian Borntraeger <borntraeger@de.ibm.com>
M:	Cornelia Huck <cornelia.huck@de.ibm.com>
M:	linux390@de.ibm.com
L:	linux-s390@vger.kernel.org
W:	http://www.ibm.com/developerworks/linux/linux390/
S:	Supported
@@ -8718,7 +8717,6 @@ F: drivers/video/fbdev/savage/
S390
M:	Martin Schwidefsky <schwidefsky@de.ibm.com>
M:	Heiko Carstens <heiko.carstens@de.ibm.com>
M:	linux390@de.ibm.com
L:	linux-s390@vger.kernel.org
W:	http://www.ibm.com/developerworks/linux/linux390/
S:	Supported
@@ -8746,7 +8744,6 @@ F: block/partitions/ibm.c

S390 NETWORK DRIVERS
M:	Ursula Braun <ursula.braun@de.ibm.com>
M:	linux390@de.ibm.com
L:	linux-s390@vger.kernel.org
W:	http://www.ibm.com/developerworks/linux/linux390/
S:	Supported
@@ -8763,7 +8760,6 @@ F: drivers/pci/hotplug/s390_pci_hpc.c

S390 ZCRYPT DRIVER
M:	Ingo Tuchscherer <ingo.tuchscherer@de.ibm.com>
M:	linux390@de.ibm.com
L:	linux-s390@vger.kernel.org
W:	http://www.ibm.com/developerworks/linux/linux390/
S:	Supported
@@ -8771,7 +8767,6 @@ F: drivers/s390/crypto/

S390 ZFCP DRIVER
M:	Steffen Maier <maier@linux.vnet.ibm.com>
M:	linux390@de.ibm.com
L:	linux-s390@vger.kernel.org
W:	http://www.ibm.com/developerworks/linux/linux390/
S:	Supported
@@ -8779,7 +8774,6 @@ F: drivers/s390/scsi/zfcp_*

S390 IUCV NETWORK LAYER
M:	Ursula Braun <ursula.braun@de.ibm.com>
M:	linux390@de.ibm.com
L:	linux-s390@vger.kernel.org
W:	http://www.ibm.com/developerworks/linux/linux390/
S:	Supported
+1 −0
Original line number Diff line number Diff line
@@ -6,3 +6,4 @@ obj-$(CONFIG_S390_HYPFS_FS) += hypfs/
obj-$(CONFIG_APPLDATA_BASE)	+= appldata/
obj-y				+= net/
obj-$(CONFIG_PCI)		+= pci/
obj-$(CONFIG_NUMA)		+= numa/
+75 −0
Original line number Diff line number Diff line
@@ -99,18 +99,22 @@ config S390
	select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
	select ARCH_SAVE_PAGE_KEYS if HIBERNATION
	select ARCH_SUPPORTS_ATOMIC_RMW
	select ARCH_SUPPORTS_NUMA_BALANCING
	select ARCH_USE_CMPXCHG_LOCKREF
	select ARCH_WANTS_PROT_NUMA_PROT_NONE
	select ARCH_WANT_IPC_PARSE_VERSION
	select BUILDTIME_EXTABLE_SORT
	select CLONE_BACKWARDS2
	select DYNAMIC_FTRACE if FUNCTION_TRACER
	select GENERIC_CLOCKEVENTS
	select GENERIC_CPU_AUTOPROBE
	select GENERIC_CPU_DEVICES if !SMP
	select GENERIC_FIND_FIRST_BIT
	select GENERIC_SMP_IDLE_THREAD
	select GENERIC_TIME_VSYSCALL
	select HAVE_ALIGNED_STRUCT_PAGE if SLUB
	select HAVE_ARCH_AUDITSYSCALL
	select HAVE_ARCH_EARLY_PFN_TO_NID
	select HAVE_ARCH_JUMP_LABEL
	select HAVE_ARCH_SECCOMP_FILTER
	select HAVE_ARCH_TRACEHOOK
@@ -153,6 +157,7 @@ config S390
	select VIRT_CPU_ACCOUNTING
	select VIRT_TO_BUS


config SCHED_OMIT_FRAME_POINTER
	def_bool y

@@ -385,6 +390,76 @@ config HOTPLUG_CPU
config SCHED_SMT
	def_bool n

# Some NUMA nodes have memory ranges that span
# other nodes.	Even though a pfn is valid and
# between a node's start and end pfns, it may not
# reside on that node.	See memmap_init_zone()
# for details. <- They meant memory holes!
config NODES_SPAN_OTHER_NODES
	def_bool NUMA

config NUMA
	bool "NUMA support"
	depends on SMP && 64BIT && SCHED_TOPOLOGY
	default n
	help
	  Enable NUMA support

	  This option adds NUMA support to the kernel.

	  An operation mode can be selected by appending
	  numa=<method> to the kernel command line.

	  The default behaviour is identical to appending numa=plain to
	  the command line. This will create just one node with all
	  available memory and all CPUs in it.

config NODES_SHIFT
	int "Maximum NUMA nodes (as a power of 2)"
	range 1 10
	depends on NUMA
	default "4"
	help
	  Specify the maximum number of NUMA nodes available on the target
	  system. Increases memory reserved to accommodate various tables.

menu "Select NUMA modes"
	depends on NUMA

config NUMA_EMU
	bool "NUMA emulation"
	default y
	help
	  Numa emulation mode will split the available system memory into
	  equal chunks which then are distributed over the configured number
	  of nodes in a round-robin manner.

	  The number of fake nodes is limited by the number of available memory
	  chunks (i.e. memory size / fake size) and the number of supported
	  nodes in the kernel.

	  The CPUs are assigned to the nodes in a way that partially respects
	  the original machine topology (if supported by the machine).
	  Fair distribution of the CPUs is not guaranteed.

config EMU_SIZE
	hex "NUMA emulation memory chunk size"
	default 0x10000000
	range 0x400000 0x100000000
	depends on NUMA_EMU
	help
	  Select the default size by which the memory is chopped and then
	  assigned to emulated NUMA nodes.

	  This can be overridden by specifying

	  emu_size=<n>

	  on the kernel command line where also suffixes K, M, G, and T are
	  supported.

endmenu

config SCHED_MC
	def_bool n

+2 −0
Original line number Diff line number Diff line
@@ -33,6 +33,8 @@ mflags-$(CONFIG_MARCH_Z196) := -march=z196
mflags-$(CONFIG_MARCH_ZEC12)  := -march=zEC12
mflags-$(CONFIG_MARCH_Z13)   := -march=z13

export CC_FLAGS_MARCH := $(mflags-y)

aflags-y += $(mflags-y)
cflags-y += $(mflags-y)

+2 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ CONFIG_TASK_IO_ACCOUNTING=y
CONFIG_RCU_FAST_NO_HZ=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_NUMA_BALANCING=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CPUSETS=y
@@ -50,6 +51,7 @@ CONFIG_LIVEPATCH=y
CONFIG_MARCH_Z196=y
CONFIG_TUNE_ZEC12=y
CONFIG_NR_CPUS=256
CONFIG_NUMA=y
CONFIG_PREEMPT=y
CONFIG_HZ_100=y
CONFIG_MEMORY_HOTPLUG=y
Loading