Hacker News new | ask | show | jobs
by Aldqueath 912 days ago
On linux you can enable an option in the kernel to update microcode at runtime (late microcode loading), but this is not recommended as you have processes that started before the late microcode update and thus might have already ran into cpu bugs
1 comments

> might have already ran into cpu bugs

Not only that. There were microcode updates which disabled CPU features (most notably TSX). During process startup such features might have been detected as available and decided to use optimized subroutines. Disabling features while the process is still running might either severely degrade performance or outright crash it.

Was TSX ever used? I didn't even see an ounce of dev documentation about it.
HLE, which is a subset of TSX, is (was?) supported by glibc [1]. Not sure if it is enabled by default. If it is, pretty much every multithreaded linux process would be affected.

[1] https://www.gnu.org/software/libc/manual/html_node/Elision-T...

And, more presently relevant, the actual sequence of CPU state manipulations needed to apply the update reliably in gnarly. Hopefully the thing currently implemented in Linux is fully reliable.