Linux 5.9 Is Released With New Drivers, Improved AMD GPU Support, And Support The x86-64 FSGSBASE CPU Instructions
It was a bumpy release-cycle for Linux 5.9 with one release candidate refusing to show anything graphical on Intel GPUs. The final 5.9 release doesn't have that problem. It has have quite a lot of new features such as support for upcoming AMD graphics cards, support for the FSGSBASE x86-64 instructions, a Corsair RGB hub and a lot more.
We have examined the latest Linux kernel on a Intel system and an AMD system and we can, for now, confirm that it boots, it's possible to start X and Wayland (unlike rc7 and it appears to work just fine. One hour's of
uptime is not enough to say anything beyond that in terms of stability.
Chief kernel architect Linus Torvalds had this to say about the release on the LKML:
"Ok, so I'll be honest - I had hoped for quite a bit fewer changes this last week, but at the same time there doesn't really seem to be anything particularly scary in here. It's just more commits and more lines changed than I would have wished for.
The bulk of this is the networking fixes that I already mentioned as being pending in the rc8 release notes last weekend. In fact, about half the patch (and probably more of the number of commits) is from the networking stuff (both drivers and elsewhere).
Outside of that, the most visible thing is a reinstatement of the fbdev amba-clcd driver - that's a noticeable patch, but it's basically just mainly a revert.
The rest is really really tiny (mostly some other minor driver updates, but some filesystem and architecture fixes too). There's just a bit more of those kinds of tiny details than there should be fo this kind of last delayed week. But since nothing in there gives me any particular reason to delay another week, here we are.
That obviously means that the merge window for 5.10 is open, and I'll start doing those pulls tomorrow. I already have a couple of pulls pending, but I hope people take the time to just do one last test of the final 5.9 release.
So go get it.
Linux 5.9 is, like many versions before it, still code-named
NAME = Kleptomaniac Octopus in the
Makefile. Either Linus forgot that he used to give kernel releases a name or he lost interest.
The list of notable improvements since Linux 5.8 is actually a quite long one.
zstd Support For Compressing The Kernel and Initramfs
Linux has had support for zstd compression in various sub-systems for quite some time. Older kernels can use zstd for things like zram drives and zswap swap cache just fine. Linux 5.9 adds support for compressing the kernel itself using zstd and it's also possible to compress initramfs with zstd.
scripts/Makefile.lib reveals that zstd compression level
-19 is used. There is one small pitfall to be aware of: The kernel doesn't bother to check if you have the
zstd binary and it doesn't provide one so you will have a problem if you choose to compress the kernel with that without actually having it (
make will throw an error).
Old And New AMD GPU Support
A AMD HD 7850 GPU from 2013.
Linux 5.9 is the first Linux kernel with full support for older AMD graphics cards in the
amdgpu kernel module. Those who still use ten year old AMD GPUs like the Radeon HD 7850 can now enjoy Vulkan support and hardware accelerated video encoding and decoding. You could either use the old
radeon kernel module and have hardware accelerated video decoding OR use
amdgpu and have Vulkan support with previous kernels, now you can have both.
Early 5.9 release-candidates showed an ugly RIP in the kernel ring buffer upon boot. AMD's Alex Deucher took care of that during the release-cycle, it is not an issue with the final 5.9 release.
AMD has also added support for several new, yet to reach stores, AMD graphics cards to Linux 5.9. The cards in question are code-named VanGogh, Dimgrey Cavefish and Sienna Cichlid. These new graphics cards will branded Radeon RX 6000 series cards when they reach stores.
Intel's Also In The GPU Game Now
Intel has added support for a GPU code-named "Rocket Lake" to Linux 5.9.
Intel's also added support pin control, GPIO, I2C, MFD and trace hub driver spuport for an upcoming SoC called "Emmitsburg". Intel tends to add support for new SoC long before any products reach store shelves so that SoC may not arrive in actual products until the seconds half of 2021.
Intel laptops with certain CPUs still need either
intel_idle.max_cstate=1 or both with Linux 5.9 or they will randomly hang.
intel_idle.max_cstate=1 is mostly needed on low-powered machines using SoC's like Goldmount. It didn't take more than 10 minutes of testing on an affected machine to get a hang confirming that it is still an issue with Linux 5.9.
Intel has been trying to get support for the four FSGSBASE family assembler instructions
wrgsbase into the Linux kernel for more than a year. Kernel developer Thomas Gleixner had this to say about Intel's initial attempt:
"The confidence in those changes has become close to zero especially as the test cases which have been shipped with that series were obviously never run before sending the final series out to LKML.
./fsgsbase_64 >/dev/null Segmentation fault
As the merge window is close, the only sane decision is to revert FSGSBASE support. The revert is necessary as this branch has been merged into perf/core already and rebasing all of that a few days before the merge window is not the most brilliant idea.
I could definitely slap myself for not noticing the test case fail when merging that series, but TBH my expectations weren't that low back then. Won't happen again."
Patches adding FSGSBASE family instructions have now, more than one year and many revisions later, become a part of the Linux kernel. All modern x86-84 processors support these instructions. They are not new, they have been around since AMD Bulldozer was launched in 2011. How much, if any, performance impact this gives the Linux kernel is an open question. They can be used to load general-purpose registers with either FS or GS segment base addresses. That should, in theory, make context switches faster.
Red, Green and Blue (RGB)
Linux 5.9 adds support for the Corsair iCUE Commander Pro "smart" fan and RGB controller. Most RGB keyboards and controllers still require a out-of-kernel patch from OpenRGB but you're in luck if you happen to have that one.
On the topic of OpenRGB, don't use the SMBus OpenRGB patches with 5.9-series kernels if you have a AMD AM4 motherboard. You will get issues such as random hangs and random reboots. Using those patches is a bit risky on older motherboards as well, and that is specially true if you use other out-of-tree modules like the
Other New Hardware Support
- Linux 5.9 adds support for the NVMe Over Fabrics protocol. That allows NVMe drivers to manage NVMe controllers on NVMe drivers directly. That support is available as
- There's a few smaller improvements for Thinkpad owners in Linux 5.9. Hotkey support for the Thinkpad X1 Carbon 8 won't arrive until Linux 5.10.
- There a new USB driver a small board called Infrared Toy and IR Droid (
IR_TOY). It's not all that exciting, it's a small board with a IR receiver and a USB port.
- USB 4 support is improved in Linux 5.9.
- Silex Insight BA431 and Silex Insight BA431 random number generators are now supported
- There's two new WIFI drivers from something called "Microchip": Atmel WILC1000 SDIO and Atmel WILC1000 SPI are now supported.
A Long-Term Release
Every firth Linux kernel becomes a Long-Term-Support release for no particular reason. The current "LTS" kernel releases are 4.4, 4.9, 4.14, 4.19, 5.4 and now 5.9.
Linux 5.9 can be acquired from kernel.org.