public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: x86@kernel.org, Borislav Petkov <bp@alien8.de>
Subject: [patch 0/5] x86/microcode/amd: Use cached microcode for early loading
Date: Tue, 10 Oct 2023 17:08:40 +0200 (CEST)	[thread overview]
Message-ID: <20231010145130.987300357@linutronix.de> (raw)

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(-)


             reply	other threads:[~2023-10-10 15:09 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-10 15:08 Thomas Gleixner [this message]
2023-10-10 15:08 ` [patch 1/5] x86/microcode/amd: Use correct per CPU ucode_cpu_info Thomas Gleixner
2023-10-11  9:01   ` [tip: x86/microcode] " tip-bot2 for Thomas Gleixner
2023-10-20 11:37   ` tip-bot2 for Thomas Gleixner
2023-10-24 13:21   ` tip-bot2 for Thomas Gleixner
2023-10-10 15:08 ` [patch 2/5] x86/microcode/amd: Cache builtin microcode too Thomas Gleixner
2023-10-11  9:01   ` [tip: x86/microcode] " tip-bot2 for Thomas Gleixner
2023-10-20 11:37   ` tip-bot2 for Thomas Gleixner
2023-10-24 13:21   ` tip-bot2 for Thomas Gleixner
2023-10-10 15:08 ` [patch 3/5] x86/microcode/amd: Cache builtin/initrd microcode early Thomas Gleixner
2023-10-11  9:01   ` [tip: x86/microcode] " tip-bot2 for Thomas Gleixner
2023-10-10 15:08 ` [patch 4/5] x86/microcode/amd: Use cached microcode for AP load Thomas Gleixner
2023-10-11  9:01   ` [tip: x86/microcode] " tip-bot2 for Thomas Gleixner
2023-10-10 15:08 ` [patch 5/5] x86/microcode: Mop up early loading leftovers Thomas Gleixner
2023-10-11  9:00   ` [tip: x86/microcode] " tip-bot2 for Thomas Gleixner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231010145130.987300357@linutronix.de \
    --to=tglx@linutronix.de \
    --cc=bp@alien8.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox