[Bug 761728] New: mknitrd: microcode module in initrd causes boot hang
https://bugzilla.novell.com/show_bug.cgi?id=761728 https://bugzilla.novell.com/show_bug.cgi?id=761728#c0 Summary: mknitrd: microcode module in initrd causes boot hang Classification: openSUSE Product: openSUSE 12.2 Version: Factory Platform: Other OS/Version: Other Status: NEW Severity: Major Priority: P5 - None Component: Kernel AssignedTo: mmarek@suse.com ReportedBy: crrodriguez@opensuse.org QAContact: qa-bugs@suse.de Found By: --- Blocker: --- Hi: I just shoot myself in the foot ! ;) steps: - add the microcode module to the initrd /etc/sysconfig/kernel variable INITRD_MODULES - run mkinitrd (have recovery cd handy) - reboot result: Boot hang, module keeps looping forever and ever. Expected result: - either make it work or disallow that module in the initrd. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c1
James Moe
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c2
--- Comment #2 from James Moe
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c
Michal Marek
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c3
--- Comment #3 from Cristian Rodríguez
I now have a computer that cannot boot in either normal or failsafe mode, always freezing after the microcode update. Is there a workaround of some sort to prevent the microcode update?
James, this a a completely different problem to what I mentioned. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c4
--- Comment #4 from Cristian Rodríguez
Hi:
I just shoot myself in the foot ! ;)
steps:
- add the microcode module to the initrd /etc/sysconfig/kernel variable INITRD_MODULES
- run mkinitrd (have recovery cd handy)
- reboot
result:
Boot hang, module keeps looping forever and ever.
Expected result:
- either make it work or disallow that module in the initrd.
Now, this is probably moot, what we need is mkinitrd supporting kernel 3.9 's early microcode load.. config MICROCODE_INTEL_EARLY bool "Early load microcode" depends on MICROCODE_INTEL && BLK_DEV_INITRD default y help This option provides functionality to read additional microcode data at the beginning of initrd image. The data tells kernel to load microcode to CPU's as early as possible. No functional change if no microcode data is glued to the initrd, therefore it's safe to say Y. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c
Jeff Mahoney
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c5
Borislav Petkov
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c6
Olaf Hering
Hi:
I just shoot myself in the foot ! ;)
steps:
- add the microcode module to the initrd /etc/sysconfig/kernel variable INITRD_MODULES
Isnt the failure already here? I mean, if a known broken module is added to the list of modules to include in initrd, how is mkinitrd supposed to know this in advance? I'm sure this is not a userland issue. Reassigning to Borislav who knows more about this, and how to proceed. If there is something to be done in mkinitrd, let me know. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c7
--- Comment #7 from Borislav Petkov
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c
Borislav Petkov
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c
Olaf Hering
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c8
Cristian Rodríguez
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c
Cristian Rodríguez
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c9
--- Comment #9 from Olaf Hering
- Now you *really* need to add the microcode files to the initrd, preferable implemented in the "early microcode" form : https://www.kernel.org/doc/Documentation/x86/early-microcode.txt , why ?
Only Intel can come up with such a process... Anyway, I have not read the kernel code: Are really two cpio archives required or is it enough to have a kernel/x86/microcode directory in the existing cpio archive? To verify this: mkdir /dev/shm/$$ cd $_ zcat /boot/initrd | cpio -i mkdir -vp kernel/x86/microcode cp -avt $_ /some/firmare/file.bin find . ! -name "*~" | cpio -H newc --create | gzip > /boot/initrd.mc If thats really enough, the package which contains the microcode should provide a setup-cpu_microcode.sh to populate the files to the initrd. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c10
--- Comment #10 from Cristian Rodríguez
(In reply to comment #8)
- Now you *really* need to add the microcode files to the initrd, preferable implemented in the "early microcode" form : https://www.kernel.org/doc/Documentation/x86/early-microcode.txt , why ?
Only Intel can come up with such a process...
Anyway, I have not read the kernel code: Are really two cpio archives required
at least when using dracut to get an initrd with early microcode working, there seems to be two. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c11
--- Comment #11 from Borislav Petkov
(In reply to comment #9)
(In reply to comment #8)
- Now you *really* need to add the microcode files to the initrd, preferable implemented in the "early microcode" form : https://www.kernel.org/doc/Documentation/x86/early-microcode.txt , why ?
Only Intel can come up with such a process...
Right, this is currently the only way you can supply microcode blobs that early in the boot process. If you guys can come up with a better way, I'm all ears.
Anyway, I have not read the kernel code: Are really two cpio archives required
at least when using dracut to get an initrd with early microcode working, there seems to be two.
Actually, you should only need the microcode directory with microcode files in it. Take a look at find_cpio_data(). -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c12
Olaf Hering
(In reply to comment #9)
(In reply to comment #8)
- Now you *really* need to add the microcode files to the initrd, preferable implemented in the "early microcode" form : https://www.kernel.org/doc/Documentation/x86/early-microcode.txt , why ?
Only Intel can come up with such a process...
Anyway, I have not read the kernel code: Are really two cpio archives required
at least when using dracut to get an initrd with early microcode working, there seems to be two.
Did you try the suggestion from comment #9? What package contains the microcode anyway? It needs updating to include the mkinitrd.sh scripts. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c13
Dirk Weber
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c14
--- Comment #14 from Dirk Weber
Related to bnc#847158 I tried the procedure from comment #9 with 13.1. It does not work - means the microcode is not updated early, please see details in bnc#847158.
For clarification: with 13.1 the early microcode update works (I tested with AMD CPUs) when the initrd is created according to https://www.kernel.org/doc/Documentation/x86/early-microcode.txt but it does not work with an initrd created like described in comment #9. It seems combination of 2 cpio archives is indeed necessary. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c15
Olaf Hering
It seems combination of 2 cpio archives is indeed necessary.
I will add code to compensate for this strange requirement. Olaf -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c16
Thomas Renninger
I will add code to compensate for this strange requirement. Please don't. Afaik there isn't any microcode yet, which needs early loading. But there have been the first sever regressions reported:
But early microcode update with a handcrafted initrd (like in comment #11) causes a reboot (everything tested with plain 13.1). So there are still more problems in this area, and just adding the ucodes to the initrd could cause boot problems for users on certain systems. ---------------------- The stuff should be integrated automatically for factory via dracut already. At least for Intel, AMD needs double checking. As this is a new feature introducing sever regressions without any/much benefit, I would not implement this as a maintenance update. Better concentrate that ucode-intel (for Intel) package and kernel-firmware (for AMD) is installed correctly and we should be done. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=761728
https://bugzilla.novell.com/show_bug.cgi?id=761728#c17
Thomas Renninger
microcode module in initrd causes boot hang does not happen with latest kernels any more: closing won't fix (for 12.2). If this still does happen, please reopen and adjust distribution (best try with 13.1).
-- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@novell.com