Lista para version 4.20

Linux 4.20 was released

Summary: This release includes support for a new way to measure the system load; it adds support for future AMD Radeon Picasso and Raven2 and enables non-experimental support for Radeon Vega20; it adds support for the C-SKY CPU architecture and the x86 Hygon Dhyana CPUs; a TLB microoptimization brings a small performance win in some workloads; TCP has switched to a "Early Departure Time" model; a mechanism to turn memfd regions into dma-buf allows qemu to improve virtualized graphics performance; it also includes the latest round of fixes for CPU security bugs; and it also adds many new drivers and other improvements.

Pressure stall information for better overview of system load

When systems are overcommitted and resources become contended, it's hard to tell exactly the impact this has on workload productivity, or how close the system is to lockups and OOM kills. In particular, when machines work multiple jobs concurrently, the impact of overcommit in terms of latency and throughput on the individual job can be enormous. In order to maximize hardware utilization without sacrificing individual job health or risk complete machine lockups, this release adds pressure stall information, a way to quantify resource pressure in the system.

Under {{{/proc/pressure/}}} (and also inside each cgroup), several files expose the percentage of time the system is stalled on CPU, memory, or IO, respectively. These percentages of walltime can be thought of as pressure percentages, and they give a general sense of system health and productivity loss incurred by resource overcommit. They can also indicate when the system is approaching lockup scenarios and OOMs.

Documentation: Documentation/accounting/psi.txt

Recommended LWN article: Tracking pressure-stall information

AMD Radeon Picasso + Raven2 support, and Vega20 enablement

This release adds support for Raven2 APU and Picasso APUs. Also, support for Vega20 is no longer considered experimental.

More efficient virtualized graphics

This release includes udmabuf, a device that can turn memfd regions into dma-buf. It allows qemu to create dmabufs for the vga framebuffer or virtio-gpu resources. Then they can be passed around to display those guest things on the host. To spice client for classic full framebuffer display, and hopefully some day to wayland server for seamless guest window display.

New chinese CPUs: C-SKY architecture and Hygon Dhyana x86 CPUs

This release adds support for new architecture: C-SKY architecture

There is also support for Hygon Dhyana Family 18h, a new x86 processor coming from the AMD–Chinese joint venture

TCP: switch to Early Departure Time model

Internet grew following a AFAP ("As Fast As Possible") idea. Due to the constraints of modern hardware, this model is not optimal any more. This release switches the TCP stack to Early Departure Time model

See:

* Evolving from AFAP: Teaching NICs about time

* Evolving from AFAP: Teaching NICs about time

* netdev day 2: moving away from "as fast as possible" in networking code

Make lazy TLB even lazier

As TLB flushes are extremely expensive, a technique called lazy TLB is employed by Linux which avoids unnecessary TLB flushes by processes which do not access the userspace page tables as the kernel portion of the address space is always visible. This release tries to use lazy TLB used even lazier: On most workloads, the number of context switches far exceeds the number of TLB flushes sent. Optimizing the context switches, by always using lazy TLB mode, speeds up those workloads. This reduces total CPU use in the system by about 1-2% for a memcache workload on two socket systems, and by about 1% for a heavily multi-process netperf between two systems.

Another round of fixes for CPU security bugs

* x86: Remedy the overhead of STIBP/IBPB with per task indirect branch speculation control

* x86: Harden spectre v2 userspace-userspace protection

* x86: The "minimal retpoline" support is no longer useful and has been removed

* arm64: Support for the new ARMv8.5 PSTATE.SSBS bit which can be used to mitigate Spectre-v4 dynamically without trapping to EL3 firmware

Recommended LWN articles:

* Strengthening user-space Spectre v2 protection

* Taming STIBP