question on microcode loading
RuiRui Yang
ruyang at redhat.com
Tue Feb 7 19:21:13 PST 2023
Ccing x86 and more people.
On Wed, 8 Feb 2023 at 06:09, Steffen Nurpmeso <steffen at sdaoden.eu> wrote:
>
> Hello!
>
> First a thank you for kexec, i use it for a homegrown boot
> solution, where stage1 EFI_STUB kernel is used with busybox and
> cryptsetup to unlock an encrypted device, and then boots into
> stage2 via kexec -- a wonderful and easy solution that makes me
> happy (for years)!
>
> A bit lengthy now.
> There is only one question regarding CPU microcode loading: it
> seems the microcode is not "updated early" with kexec upon "boot".
> This is a homegrown kernel, with built-in firmware
>
> CONFIG_EXTRA_FIRMWARE="intel-ucode/06-8e-0a ..."
>
> but also with the firmware (prefix)in(g) the initrd
>
> {
> # Microcode update must be uncompressed and first
> [ -f ../../boot/early-ucode.cpio ] && ./$BB cat ../../boot/early-ucode.cpio
> # Followed by (possibly compressed) normal initrd
> ./$BB find . | ./$BB cpio -H newc -o | ./$BB gzip -9 -n
> } > ../.initrd
>
> (ie early-ucode.cpio exists) like here:
>
> #?0|kent:/boot# cpio -t <.kent.initrd.0
> kernel
> kernel/x86
> kernel/x86/microcode
> kernel/x86/microcode/.enuineIntel.align.0123456789abc
> kernel/x86/microcode/GenuineIntel.bin
> 11020 blocks
> #?0|kent:/boot# dd if=.kent.initrd.0 skip=5642240 bs=1|gunzip|cpio -t
> .
> init
> linux-init-s1.sh
> sys
> run
> proc
> mnt
> dev
> dev/console
> bin
> bin/sh
> etc
> etc/mdev.sh
> etc/mdev.conf
> linux-init-lib.sh
> linux-init-s2.sh
> cryptsetup.static
> busybox.static
> 4491733+0 records in
> 4491733+0 records out
> 4491733 bytes (4.5 MB, 4.3 MiB) copied, 5.67558 s, 791 kB/s
> 18439 blocks
>
> If stage2 then boots it goes like
>
> Feb 6 17:38:15 (none) kernel: Linux version 6.1.9-ideapad (ports at kent) (gcc (CRUX-x86_64-multilib) 12.2.0, GNU ld (GNU Binutils) 2.39) #1 SMP PREEMPT_DYNAMIC Sat Feb 4 20:40:06 CET 2023
> Feb 6 17:38:15 (none) kernel: Command line: rtw88_pci.disable_aspm=1 rc.hostname=kent
> Feb 6 17:38:15 (none) kernel: KERNEL supported cpus:
> Feb 6 17:38:15 (none) kernel: Intel GenuineIntel
> ...
> Feb 6 17:38:15 (none) kernel: Freeing SMP alternatives memory: 48K
> Feb 6 17:38:15 (none) kernel: smpboot: CPU0: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz (family: 0x6, model: 0x8e, stepping: 0xa)
> ..
> Feb 6 17:38:15 (none) kernel: .... node #0, CPUs: #1 #2 #3 #4
> Feb 6 17:38:15 (none) kernel: MDS CPU bug present and SMT on, data leak possible. See[..]
> Feb 6 17:38:15 (none) kernel: MMIO Stale Data CPU bug present and SMT on, data leak possible. See[..]
> Feb 6 17:38:15 (none) kernel: #5 #6 #7
> Feb 6 17:38:15 (none) kernel: smp: Brought up 1 node, 8 CPUs
> Feb 6 17:38:15 (none) kernel: smpboot: Max logical packages: 1
> Feb 6 17:38:15 (none) kernel: smpboot: Total of 8 processors activated (28811.00 BogoMIPS)
> ...
> Feb 6 17:38:15 (none) kernel: Unpacking initramfs...
> ...
> Feb 6 17:38:15 (none) kernel: Freeing initrd memory: 9900K
> ...
> Feb 6 17:38:16 (none) kernel: microcode: sig=0x806ea, pf=0x80, revision=0xf0
> Feb 6 17:38:16 (none) kernel: microcode: Microcode Update Driver: v2.2.
>
> Ie microcode comes late (SMT is later disabled) It (seems) ok
> after suspend/resume (due to
> Feb 7 01:30:12 (none) /root/bin/zzz.sh:
> echo mem > /sys/power/state
> Feb 7 20:11:26 (none) /root/bin/zzz.sh:
> echo off > /sys/devices/system/cpu/smt/control
> ):
>
> Feb 7 01:30:12 (none) kernel: PM: suspend entry (deep)
> ...
> Feb 7 20:11:23 (none) kernel: ACPI: PM: Preparing to enter system sleep state S3
> Feb 7 20:11:23 (none) kernel: ACPI: EC: event blocked
> Feb 7 20:11:23 (none) kernel: ACPI: EC: EC stopped
> Feb 7 20:11:23 (none) kernel: ACPI: PM: Saving platform NVS memory
> Feb 7 20:11:23 (none) kernel: Disabling non-boot CPUs ...
> Feb 7 20:11:23 (none) kernel: smpboot: CPU 1 is now offline
> Feb 7 20:11:23 (none) kernel: smpboot: CPU 2 is now offline
> Feb 7 20:11:23 (none) kernel: smpboot: CPU 3 is now offline
> Feb 7 20:11:23 (none) kernel: [Firmware Bug]: TSC ADJUST differs: CPU0 0 --> -720144233. Restoring
> Feb 7 20:11:23 (none) kernel: microcode: microcode updated early to revision 0xf0, date = 2021-11-12
> Feb 7 20:11:23 (none) kernel: ACPI: PM: Low-level resume complete
>
> I wonder whether anything can be done about that.
>
> Thank you.
>
> --steffen
> |
> |Der Kragenbaer, The moon bear,
> |der holt sich munter he cheerfully and one by one
> |einen nach dem anderen runter wa.ks himself off
> |(By Robert Gernhardt)
>
> _______________________________________________
> kexec mailing list
> kexec at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
>
More information about the kexec
mailing list