Skip to content

x86: Pile o' FS/GS changes

Andy Lutomirski lkml stable 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v3 Latest3 of 7 patches 7 repliesIn review

3 of 7 patches are in this archive. The cover letter announces 7.

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7selftests/x86: Test the FSBASE/GSBASE API and context switchingtools/testing/selftests/x86/Makefile tools/testing/selftests/x86/fsgsbase.c+399 -00 replies
5/7x86/cpu: Move X86_BUG_ESPFIX initialization to generic_identifyarch/x86/kernel/cpu/common.c+25 -250 replies
7/7x86/entry: Make gs_change a local labelarch/x86/entry/entry_64.S+5 -50 replies

Reviews trailers per patch

None of the 3 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchBorislav Petkov
SeriesR-b
1/7
5/7
7/7

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v3 thread

Cover letter [PATCH v3 0/7] x86: Pile o' FS/GS changes

Hi all-

This whole mess is intended for x86/urgent. It fixes several bugs.

It's probably a tiny performance regression on some workloads on Intel CPUs. It's probably varies between a less tiny regression and a small speedup on newer AMD CPUs. It's a bigger regression on AMD K8.

The AMD code could be further sped up by adding a new 'clear_gs' pvop with a better native implementation. I don't particularly want to deal with a backported new pvop, so I didn't do that. Maybe I'll do it later on for new kernels, though.

(For people who care about such things, there are probably three bugs in here depending how you count. Somewhere between one and two of them were independently discovered by Rudolf Marek.)

Andy Lutomirski (5):
selftests/x86: Test the FSBASE/GSBASE API and context switching x86/arch_prctl: Fix ARCH_GET_FS and ARCH_GET_GS x86/cpu: Probe the behavior of nulling out a segment at boot time x86/switch_to: Rewrite the FS and GS context switch code x86/cpu: Move X86_BUG_ESPFIX initialization to generic_identify

Borislav Petkov (2):
x86/cpu: Add Erratum 88 detection on AMD
x86/entry: Make gs_change a local label

 arch/x86/entry/entry_64.S              |  12 +-
 arch/x86/include/asm/cpufeatures.h     |   3 +
 arch/x86/kernel/cpu/amd.c              |   1 +
 arch/x86/kernel/cpu/common.c           |  71 ++++--
 arch/x86/kernel/process_64.c           | 167 ++++++++------
 tools/testing/selftests/x86/Makefile   |   1 +
 tools/testing/selftests/x86/fsgsbase.c | 398 +++++++++++++++++++++++++++++++++
 7 files changed, 560 insertions(+), 93 deletions(-)
 create mode 100644 tools/testing/selftests/x86/fsgsbase.c
Signature · 1 line
2.5.5