Hi,
On 09/26/2014 08:37 PM, Hans de Goede wrote:
Hi All,
Just spend some time debugging this and thought I should share this, see:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=762195
for details, I've filed a bug to track fixing this in Fedora:
https://bugzilla.redhat.com/show_bug.cgi?id=1147062
There are 2 ways this problem shows itself:
1) If using an initrd which has been generated with the troublesome microcode
update into it, things may already crash during the initrd, e.g. in my case
some luks volumes would not unlock because of this
2) When booting an older kernel (and thus an older initrd) things start crashing
(mostly systemd* processes, grinding everything to a halt) as soon as udev
from the rootfs loads the microcode update
2. often will still get you to an emergency shell, at which point one can
create a /etc/modprobe.conf.d/no_microcode.conf file with:
blacklist microcode
In there to work around the problem, then regenerate the initrds for newer
kernels, and you should be good to go until bug 1147062 gets fixed properly.
So it seems people were already aware of this and an update is already available:
On 09/26/2014 08:34 PM, Carlos O'Donell wrote:> Developers.
Testers wanted immediately for:
https://admin.fedoraproject.org/updates/glibc-2.18-16.fc20
and
https://admin.fedoraproject.org/updates/glibc-2.20-4.fc21
For Fedora 21 and Fedora 20 we will be disabling Intel TSX
support in POSIX threads effective immediately. This disabling
of TSX support in POSIX threads is in order to prevent users
from crashing their systems when they upgrade microcode_ctl.
The upgrade to the new microcode_ctl applies the microcode
update for the Intel errata HSW136 and makes all TSX instructions
invalid opcodes. This means that any process on your system
already using POSIX threads, and already using TSX, will fault
with invalid opcode errors when it tries to execute TSX
instructions.
The best solution is for the microcode update to be done before
userspace starts as part of a single-threaded init process or
something similar.
Until we support updating microcode in early bootup we won't
enable TSX in POSIX threads. The glibc maintainers have decided
not add code to detect which devices the errata applies to, nor
will code be added to re-read the cpuid values at every TSX usage.
We are going with the simples approach which is to disable TSX
for POSIX threads.
Cheers,
Carlos.
Regards,
Hans