Two days ago, Linus Torvalds, the principal developer of the Linux kernel announced the release of Linux 5.2 in his usual humorous way, describing it as a ‘Bobtail Squid’. The release has new additions like the inclusion of the Sound Open Firmware (SOF) project, improved pressure stall information, new mount API, significant performance improvements in the BFQ I/O scheduler, new GPU drivers, optional support for case-insensitive names in ext4 and more. The earlier version, Linux 5.1 was released exactly two months ago.
Torvalds says, “there really doesn’t seem to be any reason for another rc, since it’s been very quiet. Yes, I had a few pull requests since rc7, but they were all small, and I had many more that are for the upcoming merge window. So despite a fairly late core revert, I don’t see any real reason for another week of rc, and so we have a v5.2 with the normal release timing.”
Linux 5.2 also kicks off the Linux 5.3 merge window.
What’s new in Linux 5.2?
Inclusion of Sound Open Firmware (SOF) project
Linux 5.2 includes Sound Open Firmware (SOF) project, which has been created to reduce firmware issues by providing an open source platform to create open source firmware for audio DSPs. The SOF project is backed by Intel and Google. This will enable users to have open source firmware, personalize it, and also use the power of the DSP processors in their sound cards in imaginative ways.
Improved Pressure Stall information
With this release, users can configure sensitive thresholds and use poll() and friends to be notified, whenever a certain pressure threshold is breached within the user-defined time window. This allows Android to monitor and prevent mounting memory shortages, before they cause problems for the user.
New mount API
With Linux 5.2, Linux developers have redesigned the entire mount API, thus resulting in addition of six new syscalls: fsopen(2), fsconfig(2), fsmount(2), move_mount(2), fspick(2), and open_tree(2).
The previous mount(2) interface was not easy for applications and users to understand the returned errors, was not suitable for the specification of multiple sources such as overlayfs need and it was not possible to mount a file system into another mount namespace.
Significant performance improvements in the BFQ I/O scheduler
BFQ is a proportional-share I/O scheduler available for block devices since the 4.12 kernel release. It associates each process or group of processes with a weight, and grants a fraction of the available I/O bandwidth to that proportional weight.
In Linux 5.2, there have been performance tweaks to the BFQ I/O scheduler such that the application start-up time has increased under load by up to 80%. This drastically increases the performance and decreases the execution time of the BFQ I/O scheduler.
New GPU drivers for ARM Mali devices
In the past, the Linux community had to create open source drivers for the Mali GPUs, as ARM has never been open source friendly with the GPU drivers.
Linux 5.2 has two new community drivers for ARM Mali accelerators, such that lima covers the older t4xx and panfrost the newer 6xx/7xx series. This is expected to help the ARM Mali accelerators.
More CPU bug protection, and “mitigations” boot option
Linux 5.2 release has more bug infrastructure added to deal with the Microarchitectural Data Sampling (MDS) hardware vulnerability, thus allowing access to data available in various CPU internal buffers.
Also, in order to help users to deal with the ever increasing amount of CPU bugs across different architectures, the kernel boot option mitigations= has been added. It’s a set of curated, arch-independent options to enable/disable protections regardless irrespective of the system they are running in.
clone(2) to return pidfds
Due to the design of Unix, sending signals to processes or gathering /proc information is not always safe due to the possibility of PID reuse.
With clone(2) returning to pidfds, it will allow users to get pids at process creation time, which are usable with the pidfd_send_signal(2) syscall. pidfds helps Linux to avoid this problem, and the new clone(2) flag will make it even easier to get pidfs, thus providing an easy way to signal and process PID metadata safely.
Optional support for case-insensitive names in ext4
This release implements support for case-insensitive file name lookups in ext4, based on the feature bit and the encoding stored in the superblock. This will enable users to configure directories with chattr +F (EXT4_CASEFOLD_FL) attribute.
This attribute is only enabled on empty directories for filesystems that support the encoding feature, thus preventing collision of file names that differ by case.
Freezer controller for cgroups v2 added
A freezer controller provides an ability to stop the workload in a cgroup and temporarily free up some resources (cpu, io, network bandwidth and, potentially, memory) for some other tasks. Cgroup v2 lacked this functionality, until this release. This functionality is always available and is represented by cgroup.freeze and cgroup.events cgroup control files.
Device mapper dust target added
Linux 5.2 adds a device mapper ‘dust’ target to simulate a device that has failing sectors and/or read failures. It also adds the ability to enable the emulation of the read failures at an arbitrary time. The ‘dust’ target aims to help storage developers and sysadmins that want to test their storage stack.
Users are quite happy with the Linux 5.2 release.
Great, upgrade now
— 张三斤 (@ejizhan) July 8, 2019
😮 Oooh nice. 😁
Was waiting on those fpu opts, I'll probably dl and compile tonight.
— NEOAethyr (@konigssohne) July 7, 2019
— ゆずソフト萌え (@YuzuSoftMoe) July 9, 2019
Linux 5.2 has many other performance improvements introduced in the file systems, memory management, block layer and more.
Visit the kernelnewbies page, for more details.