Linux 5.8 Is Released And It The Largest Release Of All Time
Linux 5.8 brings a lot of changes on the networking side with major re-work of the Mellanox network drivers, Atheros wireless drivers and Bluetooth drivers. There's also big changes to the AMD graphics drivers and several other areas. This kernel release is overall the biggest ever in terms of changes. Some of those changes warrant caution, you may want to wait for a few minor point releases before you upgrade to Linux 5.8.
written by 林慧 (Wai Lin) 2020-08-03 - last edited 2020-08-05. © CC BY
The Linux 5.8 Makefile. This kernel release is, like so many kernels before it, still named "Kleptomaniac Octopus". It would appear that Linus Torvalds has forgotten that the Makefile has a NAME =
value.
A unusually large amount of patches were submitted during the Linux 5.8 merge window and even more were merged during the release cycle. Linux 5.8 may be the biggest kernel yet in terms of new or changed drivers, re-worked sub-systems and overall changes.
Linus Torvalds had this to say about the release on the Linux kernel mailing list:
"So I considered making an rc8 all the way to the last minute, but decided it's not just worth waiting another week when there aren't any big looming worries around.
Because despite the merge window having been very large, there really hasn't been anything scary going on in the release candidates.
(..)
Aside from silly header file noise, the last week was mostly dominated by the networking pull, which accounts for about half of the changes (mellanox drivers and selftests stand out, but there's other smaller things in there too). Some RCU fixes stand out.
Outside of the networking stuff, it's mostly various small driver fixes (gpu, rdma, sound and pinctrl being much of it), and some minor architecture noise (arm, x86, powerpc). But it's all fairly small."
August 2nd, 2020
AMD Graphics Driver Improvements[edit]
RIP: Booting Linux 5.8 on a AMD Athlon 5350 APU with the amdgpu
AMD graphics driver did not go so (s)well..
The amdgpu
graphics driver for AMD graphics chips has seen some rather large changes and improvements during the Linux 5.8 release cycle.
The amdgpu
now supports a Trusted Memory Zone where objects can be securely stored in GPU memory. There's also new support for FP16 pixels.
Developers can enjoy new support for submitting a ACQUIRE_MEM
packet at the start of each gfx IB if a user mode client requests it. That is useful for debugging.
There's also support for reading a graphics card's FRU chip via I2C in Linux 5.8. The FRU chip is a special chip only found AMD graphics cards made for servers, regular consumer cards do not have it. The FRU chip, if present, contains all kinds of incriminating information about a graphics card including its serial number, product number and manufacturer.
There is also peer to peer PCI express support in this release. That is very useful for servers with more than one AMD GPU as it allows information to be transferred directly between graphics cards.
There's also good news for those using ROCm to do OpenCL or other GPU compute. the amdkfd
driver has gained GWS resource management123, the ability to track GPU memory use per process and support for reporting PCI domain.
That's the good news. Here is the very bad news: Just booting Linux 5.8 on a Athlon 5350 APU with the amdgpu
graphics driver results in a series of kernel warnings and RIP (instruction pointer) messages including:
[ 125.664194] WARNING: CPU: 2 PID: 2385 at drivers/gpu/drm/drm_modeset_lock.c:185 drm_warn_on_modeset_not_all_locked.part.0+0x67/0x70
[ 125.664301] RIP: 0010:drm_warn_on_modeset_not_all_locked.part.0+0x67/0x70
[ 125.664754] WARNING: CPU: 2 PID: 2385 at drivers/gpu/drm/drm_crtc_helper.c:148 drm_helper_crtc_in_use+0x8e/0x98
[ 125.664837] RIP: 0010:drm_helper_crtc_in_use+0x8e/0x98
[ 125.665159] WARNING: CPU: 2 PID: 2385 at drivers/gpu/drm/drm_crtc_helper.c:108 drm_helper_encoder_in_use+0xa8/0xb0
[ 125.665240] RIP: 0010:drm_helper_encoder_in_use+0xa8/0xb0
Earlier 5-series kernels, up to and including 5.7.11, do not have that problem. This is a problem new to Linux 5.8.
You may want to hold off on upgrading to Linux 5.8 until there is a few minor point releases out if you are using an AMD graphics chip. Perhaps this particular issue will be sorted out by 5.8.5, perhaps not. It may not affect your particular card even if you have one from AMD, but it could. You will quickly find out if you have a AMD card and you upgrade.
Energy Readings from AMD Processors, But Only One (For Now)[edit]
Enabling CONFIG_SENSORS_AMD_ENERGY
would give you some kind of energy readings in Joules on Zen and Zen2 processors early in the Linux 5.8 release cycle. That is no longer the case.
We falsely reported that Linux 5.8 Brings Per-Core Energy Sensor Support For AMD CPUs early July.
There is a new amd_energy driver in Linux 5.8. It worked with any newer AMD processor for some time. It turned out that the energy readings from the RAPL MSR on several AMD processors were inaccurate. That prompted AMD developer Naveen Krishna Chatradhi to add code limiting this driver to one specific processor: AMD family 17 sub-family 31.
static const struct x86_cpu_id cpu_ids[] __initconst = {
X86_MATCH_VENDOR_FAM_MODEL(AMD, 0x17, 0x31, NULL),
{}
};
MODULE_DEVICE_TABLE(x86cpu, cpu_ids);
This subtle change means that those with a first or second generation Ryzen processor who did get energy readings from the amd_energy
driver earlier in the release cycle no longer get anything beyond a No such device
message when attempting to load the amd_energy
module in the final release. We do not know what specific CPU(s) are in AMD family 17 sub-family 31. First and second generation Ryzen processors are not.
No Bad Words Allowed[edit]
Linux merged "Inclusive-Terminology" rules into the Linux kernel tree early in the 5.8 release cycle. No "bad" terms like whitelist and blacklist were added to the kernel tree from that point onward. The initiative, backed kernel developers employed by Microsoft, Facebook, Google, Intel, Samsung, Oracle and Tesla, applies to both code and documentation.
It Is A Mobile World[edit]
Kernel 5.8 has support for a very long list of new system-on-a-chip ARM devices from Renesas, Realtek, Rockchip, AMLogic, Allwinner, Aspeed, Marvell Kirkwood, Mediatek, NXP, Octavo, Samsung, Qualcomm and TI. The vast majority of these are ARM devices. There's also new support for a lot of graphics chips on ARM SOCs. That includes the GPUs on the Snapdragon 855 and the Snapdragon 865. Many of these drivers have existed in private vendor trees for years. It is great that many of them, and notably Qualcomm, are making an effort to mainline their graphics drivers.
There is also a really long list of new drivers for camera sensors, camera lenses and camera flash devices in this release. All of those are for Android devices. Anyone who has looked at the pathetic cameras laptops and notebooks come with the last year knows that they are worse than the cameras found on any $40 phone from shady sites like EBay and AliExpress so it is only natural that there are no new laptop-specific camera drivers in Linux 5.8.
Network Drivers And Changes[edit]
A very large part of the changes in Linux 5.8 are network related. That includes the Bluetooth tree where new drivers for Realtek RTL8761B, Intel Typhoon Peak and Qualcomm QCA6390 were added.
There's also changes to many wireless drivers. The ath10k has finally gotten support for VHT160 and VHT80+80 modes12. That should results in notably higher wireless speeds for anyone using a Qualcomm Atheros IEEE 802.11ac wireless card and a "Wifi 5" (802.11ac) access point.
The iwlwifi
driver used by as good as all the Intel wireless network chips has gotten ACPI Device Specific Method (DSM) support (patch), support for a few new chips in the AX family (patch), support for more range requests (patch, patch) and A-MSDU in low latency mode (patch). Testing the iwlwifi
driver in Linux 5.8 on both a dual band Intel AC 7265 chip and a dual band AC 3160 chip revealed no issues or unusual behavior with the iwlwifi
driver.
The list of changes to the Mellanox device drivers mlx5
and mlx5e
stand out as being particularly long. Mellanox network cards are typically used in mission-critical deployments where 10, 40 and 100 Gigabit speeds are required. The few of you who are administrating networks using high-bandwidth Mellanox cards may want to wait a while and see if any problems are reported before deploying Linux 5.8 on production systems. This also applies to those of you who are seizing the opportunity to buy the new old Mellanox ConnectX-2 10-Gigabit cards for as little as $10-12 from the usual shady used marketplaces. They are a great way to get into 10-Gigabit networking cheaply but you will need SFP+ (not regular) network cables and the switches (apart from a few from MicroTik) are not cheap.
The kernel's bridge driver has new support for the Media Redundancy Protocol (MRP). The Media Redundancy Protocol operates on the MAC layer in a way that is similar to the good old Spanning Tree Protocol (STP). Newer enterprise switches will typically support MRP. Linux bridges (=switches) can now interact with those Media Redundancy Protocol aware switches and provide much faster fail-over recovery.
There are many additional changes to the kernel's networking support beyond those listed here.
Our Recommendation[edit]
This is a big kernel release with many changes that could potentially be problematic, especially in the graphics and networking areas. You may want hold off on upgrading to Linux 5.8 until a minor version or five with fixes are released. That is especially true if you are administrating Linux-boxes in mission-critical corporate environments. It may also be true if you have an AMD graphics chip. Just booting Linux 5.8 on a machine with an AMD APU results in harsh kernel warnings and call traces.
Linux 5.8 is, as always, available from kernel.org.
There is a really detailed list of commits made during the release cycle at kernelnewbies.org/Linux_5.8 in case you want to do a very close-up inspection of all the mayor and minor changes in Linux 5.8.
Enable comment auto-refresher
Jamiefoxx
Permalink |