[PATCH RFC 0/7] CPU feature evaluation after microcode late loading

From: Mihai Carabas
Date: Thu Jul 02 2020 - 11:22:18 EST


This RFC patch set aims to provide the ability to re-evaluate all CPU
features and take proper bug mitigation in place after a microcode
late loading.

This was debated last year and this patch set implements a subset of
point #2 from Thomas Gleixner's idea:
https://lore.kernel.org/lkml/alpine.DEB.2.21.1909062237580.1902@xxxxxxxxxxxxxxxxxxxxxxx/

Point #1 was sent as an RFC some time ago
(https://lkml.org/lkml/2020/4/27/214), but after a discussion with CPU
vendors (Intel), the metadata file is not easily buildable at this
moment so we could not advance with it more. Without #1, I know it is
unlikely to embrace the feature re-evaluation.

Patches from 1 to 4 bring in changes for functions/variables in order to be
able to use them at runtime.

Patch 5 re-evaluates CPU features, patch 6 is re-probing bugs and patch 7
deals with speculation blacklist CPUs/microcode versions.

Thank you,
Mihai Carabas

Mihai Carabas (7):
x86: cpu: bugs.c: remove init attribute from functions and variables
x86: cpu: modify boot_command_line to saved_command_line
x86: kernel: cpu: bugs.c: modify static_cpu_has to boot_cpu_has
x86: cpu: bugs.c: update cpu_smt_disable to be callable at runtime
x86: microcode: late loading feature and bug evaluation
x86: cpu: bugs.c: reprobe bugs at runtime
x86: cpu: update blacklist spec features for late loading

arch/x86/include/asm/microcode.h | 3 +
arch/x86/include/asm/microcode_intel.h | 1 +
arch/x86/kernel/cpu/bugs.c | 142 +++++++++++++++++++--------------
arch/x86/kernel/cpu/common.c | 32 +++++++-
arch/x86/kernel/cpu/cpu.h | 4 +-
arch/x86/kernel/cpu/intel.c | 28 +++++++
arch/x86/kernel/cpu/microcode/core.c | 28 +++++++
arch/x86/kernel/cpu/microcode/intel.c | 5 +-
arch/x86/kernel/cpu/tsx.c | 8 +-
arch/x86/kernel/process.c | 8 +-
arch/x86/kvm/vmx/vmx.c | 2 +-
kernel/cpu.c | 18 ++++-
12 files changed, 201 insertions(+), 78 deletions(-)

--
1.8.3.1