Commit 13324c42 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 CPU feature updates from Thomas Gleixner:
 "Updates for x86 CPU features:

   - Support for UMWAIT/UMONITOR, which allows to use MWAIT and MONITOR
     instructions in user space to save power e.g. in HPC workloads
     which spin wait on synchronization points.

     The maximum time a MWAIT can halt in userspace is controlled by the
     kernel and can be adjusted by the sysadmin.

   - Speed up the MTRR handling code on CPUs which support cache
     self-snooping correctly.

     On those CPUs the wbinvd() invocations can be omitted which speeds
     up the MTRR setup by a factor of 50.

   - Support for the new x86 vendor Zhaoxin who develops processors
     based on the VIA Centaur technology.

   - Prevent 'cat /proc/cpuinfo' from affecting isolated NOHZ_FULL CPUs
     by sending IPIs to retrieve the CPU frequency and use the cached
     values instead.

   - The addition and late revert of the FSGSBASE support. The revert
     was required as it turned out that the code still has hard to
     diagnose issues. Yet another engineering trainwreck...

   - Small fixes, cleanups, improvements and the usual new Intel CPU
     family/model addons"

* 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (41 commits)
  x86/fsgsbase: Revert FSGSBASE support
  selftests/x86/fsgsbase: Fix some test case bugs
  x86/entry/64: Fix and clean up paranoid_exit
  x86/entry/64: Don't compile ignore_sysret if 32-bit emulation is enabled
  selftests/x86: Test SYSCALL and SYSENTER manually with TF set
  x86/mtrr: Skip cache flushes on CPUs with cache self-snooping
  x86/cpu/intel: Clear cache self-snoop capability in CPUs with known errata
  Documentation/ABI: Document umwait control sysfs interfaces
  x86/umwait: Add sysfs interface to control umwait maximum time
  x86/umwait: Add sysfs interface to control umwait C0.2 state
  x86/umwait: Initialize umwait control values
  x86/cpufeatures: Enumerate user wait instructions
  x86/cpu: Disable frequency requests via aperfmperf IPI for nohz_full CPUs
  x86/acpi/cstate: Add Zhaoxin processors support for cache flush policy in C3
  ACPI, x86: Add Zhaoxin processors support for NONSTOP TSC
  x86/cpu: Create Zhaoxin processors architecture support file
  x86/cpu: Split Tremont based Atoms from the rest
  Documentation/x86/64: Add documentation for GS/FS addressing mode
  x86/elf: Enumerate kernel FSGSBASE capability in AT_HWCAP2
  x86/cpu: Enable FSGSBASE on 64bit by default and add a chicken bit
  ...
parents ab2486a9 049331f2
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -538,3 +538,26 @@ Description: Intel Energy and Performance Bias Hint (EPB)

		This attribute is present for all online CPUs supporting the
		Intel EPB feature.

What:		/sys/devices/system/cpu/umwait_control
		/sys/devices/system/cpu/umwait_control/enable_c02
		/sys/devices/system/cpu/umwait_control/max_time
Date:		May 2019
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:	Umwait control

		enable_c02: Read/write interface to control umwait C0.2 state
			Read returns C0.2 state status:
				0: C0.2 is disabled
				1: C0.2 is enabled

			Write 'y' or '1'  or 'on' to enable C0.2 state.
			Write 'n' or '0'  or 'off' to disable C0.2 state.

			The interface is case insensitive.

		max_time: Read/write interface to control umwait maximum time
			  in TSC-quanta that the CPU can reside in either C0.1
			  or C0.2 state. The time is an unsigned 32-bit number.
			  Note that a value of zero means there is no limit.
			  Low order two bits must be zero.
+2 −4
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ you probably needn't concern yourself with isdn4k-utils.
====================== ===============  ========================================
GNU C                  4.6              gcc --version
GNU make               3.81             make --version
binutils               2.20             ld -v
binutils               2.21             ld -v
flex                   2.5.35           flex --version
bison                  2.0              bison --version
util-linux             2.10o            fdformat --version
@@ -77,9 +77,7 @@ You will need GNU make 3.81 or later to build the kernel.
Binutils
--------

The build system has, as of 4.13, switched to using thin archives (`ar T`)
rather than incremental linking (`ld -r`) for built-in.a intermediate steps.
This requires binutils 2.20 or newer.
Binutils 2.21 or newer is needed to build the kernel.

pkg-config
----------
+6 −0
Original line number Diff line number Diff line
@@ -17523,6 +17523,12 @@ Q: https://patchwork.linuxtv.org/project/linux-media/list/
S:	Maintained
F:	drivers/media/dvb-frontends/zd1301_demod*

ZHAOXIN PROCESSOR SUPPORT
M:	Tony W Wang-oc <TonyWWang-oc@zhaoxin.com>
L:	linux-kernel@vger.kernel.org
S:	Maintained
F:	arch/x86/kernel/cpu/zhaoxin.c

ZPOOL COMPRESSED PAGE STORAGE API
M:	Dan Streetman <ddstreet@ieee.org>
L:	linux-mm@kvack.org
+13 −0
Original line number Diff line number Diff line
@@ -480,3 +480,16 @@ config CPU_SUP_UMC_32
	  CPU might render the kernel unbootable.

	  If unsure, say N.

config CPU_SUP_ZHAOXIN
	default y
	bool "Support Zhaoxin processors" if PROCESSOR_SELECT
	help
	  This enables detection, tunings and quirks for Zhaoxin processors

	  You need this enabled if you want your kernel to run on a
	  Zhaoxin CPU. Disabling this option on other types of CPUs
	  makes the kernel a tiny bit smaller. Disabling it on a Zhaoxin
	  CPU might render the kernel unbootable.

	  If unsure, say N.
+6 −0
Original line number Diff line number Diff line
@@ -1692,11 +1692,17 @@ nmi_restore:
	iretq
END(nmi)

#ifndef CONFIG_IA32_EMULATION
/*
 * This handles SYSCALL from 32-bit code.  There is no way to program
 * MSRs to fully disable 32-bit SYSCALL.
 */
ENTRY(ignore_sysret)
	UNWIND_HINT_EMPTY
	mov	$-ENOSYS, %eax
	sysret
END(ignore_sysret)
#endif

ENTRY(rewind_stack_do_exit)
	UNWIND_HINT_FUNC
Loading