Lista para version 5.2

Linux 5.2 was released

Summary: This release includes Sound Open Firmware, a project that brings open source firmware to DSP audio devices; open firmware for many Intel products is also included. This release also improves the Pressure Stall Information resource monitoring to make it usable by Android; the mount API has been redesigned with new syscalls; the BFQ I/O scheduler has gained some performance improvements; a new {{{CLONE_PIDFD}}} flag lets clone(2) return pidfs usable by pidfd_send_signal(2); Ext4 has gained support for case-insensitive name lookups; there is also a new device mapper target that simulates a device that has failing sectors and/or read failures; open source drivers for the ARM Mali t4xx and newer 6xx/7xx have been added. As always, there are fixes for the latest CPU bug (MDS) and many other new drivers and improvements.

Inclusion of Sound Open Firmware

While many audio DSP devices have open source drivers, their firmware has remained closed and shipped as binary files. As a result, firmware issues have often been difficult to address. The Sound Open Firmware -SOF- project, backed by Intel and Google, has been created to improve this situation by providing a open source platform to create open source firmware for audio DSPs. Not only SOF will allow users to have open source firmware, it will allow them to personalize their own firmware, or even use the power of the DSP processors in their sound cards in imaginative ways. This release includes the SOF core, plus open source firmware from Intel for many of their mainstream products: Baytrail, !CherryTrail, Broadwell, !ApolloLake, !GeminiLake, !CannonLake and !IceLake

Recommended LWN article: The Sound Open Firmware project launches

Project site: https://www.sofproject.org

Instructions in the ALSA website: https://www.alsa-project.org/main/index.php/Firmware

Improved Presure Stall Information for better resource monitoring

Pressure stall information were added to Linux 4.20

This release lets users to configure sensitive thresholds and use poll() and friends to be notified when a certain pressure thresold is breached within a user-defined time window. With this mechanism, Android can monitor for, and ward off, mounting memory shortages before they cause problems for the user. For example, using memory stall, monitors in userspace like the low memory killer daemon (lmkd) can detect mounting pressure and kill less important processes before device becomes visibly sluggish. In memory stress testing psi memory monitors produce roughly 10x less false positives compared to vmpressure.

Recommended LWN article: Pressure stall monitors

New mount API

The mount(2) system call is in charge of mounting file systems. It does its job well, but as new mount functionality was added over the years, it had to be implemented on top of the existing interface, which was not designed for complex scenarios and has thus accumulated a lot of baggage (see this email

Linux developers decided to redesign the entire mount API in this release, which has resulted in the addition of six new syscalls: fsopen(2), fsconfig(2), fsmount(2), move_mount(2), fspick(2), and open_tree(2). These syscalls allow developers write code such as this:

{{{

fd = fsopen("nfs");

fsconfig(fd, FSCONFIG_SET_STRING, "option", "val", 0);

fsconfig(fd, FSCONFIG_CMD_CREATE, NULL, NULL, 0);

mfd = fsmount(fd, MS_NODEV);

move_mount(mfd, "", AT_FDCWD, "/mnt", MOVE_MOUNT_F_EMPTY_PATH);

}}}

or reconfigure a superblock:

{{{

fd = fspick(AT_FDCWD, "/nfs/foo", FSPICK_NO_AUTOMOUNT);

fsconfig(fd, FSCONFIG_SET_FLAG, "noac", NULL, 0);

fsconfig(fd, FSCONFIG_CMD_RECONFIGURE, NULL, NULL, 0);

}}}

Recommended LWN article: Six (or seven) new system calls for filesystem mounting

Significant performance improvements in the BFQ I/O scheduler

Some performance tweaks to the BFQ I/O scheduler have been done, which have improved the application start-up times under load by up to 80%, drastically increased the performance and decreased the execution time. For more details, see the benchmarks

Recommended LWN article: Improving the performance of the BFQ I/O scheduler

New GPU drivers for ARM Mali devices

This release has two exciting community drivers for ARM Mali accelerators. Since ARM has never been open source friendly on the GPU side of the house, the community has had to create open source drivers for the Mali GPUs. Lima covers the older t4xx and panfrost the newer 6xx/7xx series. Well done to all involved and hopefully this will help ARM

More CPU bug protection, and "mitigations" boot option

This release adds bug infrastructure to deal with the Microarchitectural Data Sampling (MDS) hardware vulnerability, which allows unprivileged speculative access to data which is available in various CPU internal buffers. This new set of misfeatures has the following variants: Microarchitectural Store Buffer Data Sampling (MSBDS, CVE-2018-12126), Microarchitectural Fill Buffer Data Sampling (MFBDS, CVE-2018-12130), Microarchitectural Load Port Data Sampling (MLPDS, CVE-2018-12127), Microarchitectural Data Sampling Uncacheable Memory (MDSUM, CVE-2019-11091). For more details see the documentation

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 (for now x86, PowerPC and s390), to make more easy to enable/disable protections regardless of what system they are running

Let clone(2) return pidfs

This release adds the {{{CLONE_PIDFD}}} flag to clone(2). This lets users to get pids at process creation time that are usable with the pidfd_send_signal(2)

Optional support for case-insensitive names in ext4

This release implements the actual support for case-insensitive file name lookups in ext4, based on the feature bit and the encoding stored in the superblock. A filesystem that has the casefold feature set is able to configure directories with {{{chattr +F}}} ({{{EXT4_CASEFOLD_FL}}}) attribute, enabling lookups to succeed in that directory in a case-insensitive fashion, i.e: match a directory entry even if the name used by userspace is not a byte per byte match with the disk name, but is an equivalent case-insensitive version of the Unicode string.

The feature is configured as an inode attribute applied to directories and inherited by its children. This attribute can only be enabled on empty directories for filesystems that support the encoding feature, thus preventing collision of file names that only differ by case.

Recommended LWN article: Case-insensitive ext4

Add freezer controller for cgroups v2

Cgroup v1 implements the freezer controller, which 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

Unlike with the cgroup v1 version, there is no separate controller, which has to be turned on, the functionality is always available and is represented by cgroup.freeze and cgroup.events cgroup control files. Writing "1" to the cgroup.freeze file will cause freezing of the cgroup and all descendant cgroups and all their belonging processes will be stopped and will not run until the cgroup will be explicitly unfrozen. Freezing may take some time; when this action is completed, the "frozen" value in the cgroup.events control file will be updated to "1". There are other differences required to conform the cgroup v2 interface design principles.

Add device mapper dust target

This release adds a Device Mapper 'dust' target. This target simulates a device that has failing sectors and/or read failures, and adds the ability to enable the emulation of the read failures at an arbitrary time. It is, thus, aimed at storage developers and sysadmins that want to test their storage stack. At a given time, the user can send a message to the target to start failing read requests on specific blocks. When the failure behavior is enabled, reads of blocks configured "bad" will fail with EIO.