[MODERATED] ucode packaging
Andrew Cooper <[email protected]>
| Newsgroups | org.kernel.lore.historical-speck |
|---|---|
| Message-ID | <[email protected]> |
Hello, I realise this is perhaps not totally on topic, but I thought I'd solicit feedback here first before expanding to a wider audience, where some details might need to be moderated. tl;dr The MDS microcode for SandyBridge has issues, and causing fatal MCEs on previously-stable systems. While I don't wish to criticise, and am certain that Intel do their best to avoid regressions, it has to be said that newer microcode is a bit like newer software, in that has a non-zero chance of containing bugs, and the severity of bugs tends to be catastrophic far as stability goes. Anyway, customers and management have expressed concerns about the ease of rolling back microcode versions in the field, to stabilise impacted systems. Currently, /lib/firmware/$VENDOR-ucode/ contains exactly one version of any particular piece of microcode for the part. Altering this either requires finding a different microcode binary, or finding a different version of the package, and typically force installing it. Neither are great options for users. It is already common to have the past $N kernels available for rollback in the face of problems, and this seems like a sensible approach to take for microcode as well. Expressing this via separate packages, as the kernel typically is, is most likely too complicated to work sensibly, but luckily ucode blobs are tiny. How about a scheme whereby a single package has files in the form of /lib/firmware/$VENDOR-ucode/FF-MM-SS-VERSION and a symlink of the latest version to FF-MM-SS, for compatibility with existing initrd generation tools? This way, if a user finds themselves in need of reverting to an older version, they can relink FF-MM-SS to an older version, rebuild their initrd and reboot. This has the advantage that it will stay in effect until a newer microcode package is installed, which will hopefully retract (or better yet, superseded) the problematic version. Thoughts? Is there any interest from other distros for a scheme such as this? Thanks in advance, ~Andrew