Messages in this thread | | | From | Thomas Gleixner <> | Subject | [patch 0/5] x86/microcode/amd: Use cached microcode for early loading | Date | Tue, 10 Oct 2023 17:08:40 +0200 (CEST) |
| |
When Borislav applied the microcode overhaul series:
https://lore.kernel.org/all/20231002115506.217091296@linutronix.de/
he partially reverted patch 15:
https://lore.kernel.org/all/20231006132617.GOZSAK+YCEwVsEuUdr@fat_crate.local/
to keep AMD suspend/resume working.
After looking at this in detail it turned out that AMD does not use the microcode cache for the early loading during AP bringup and tries to find the microcode in builtin/initrd.
That in turn requires to have a CPU hotplug callback for late hotplug which ensures that the microcode is updated. That's actually too late as CPUID bits are evaluated already before that callback is invoked.
The reason why this was done is the horrible 32bit hack which invoked the early loader before paging is enabled.
That's gone now which in turn allows to remove all this by initializing the microcode cache before the APs are brought up and use the microcode cache for early loading on APs during boot, manual hotplug and resume.
This gets finally rid of the hotplug callback and the ugly initrd_gone hackery which was required to make the post init AP loader work.
The series applies on top of:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/microcode
Thanks,
tglx --- amd.c | 34 +++++++++++++++++++++------------- core.c | 44 +++----------------------------------------- internal.h | 4 ---- 3 files changed, 24 insertions(+), 58 deletions(-)
| |