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.1...@nanos.tec.linutronix.de/ 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