KernelNewbies:

Linux 4.20 was released on Sun, 23 Dec 2018.

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.

1. Prominent features

1.1. 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

1.2. 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.

1.3. 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.

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

This release adds support for new architecture: C-SKY architecture, a 32 bit chinese CPU ISA

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

1.5. 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:

1.6. 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.

1.7. Another round of fixes for CPU security bugs

Recommended LWN articles:

2. Core (various)

3. File systems

4. Memory management

5. Block layer

6. Tracing, perf and BPF

7. Virtualization

8. Cryptography

9. Security

10. Networking

11. Architectures

12. Drivers

12.1. Graphics

12.2. Storage

12.3. Drivers in the Staging area

12.4. Networking

12.5. Audio

12.6. Tablets, touch screens, keyboards, mouses

12.7. TV tuners, webcams, video capturers

12.8. Universal Serial Bus

12.9. Serial Peripheral Interface (SPI)

12.10. Watchdog

12.11. Serial

12.12. ACPI, EFI, cpufreq, thermal, Power Management

12.13. Real Time Clock (RTC)

12.14. Voltage, current regulators, power capping, power supply

12.15. Pin Controllers (pinctrl)

12.16. Multi Media Card (MMC)

12.17. Memory Technology Devices (MTD)

12.18. Industrial I/O (iio)

12.19. Inter-Integrated Circuit (I2C)

12.20. Hardware monitoring (hwmon)

12.21. General Purpose I/O (gpio)

12.22. Leds

12.23. DMA engines

12.24. Cryptography hardware acceleration

12.25. PCI

12.26. Non-Transparent Bridge (NTB)

12.27. Clock

12.28. Firmware

12.29. IOMMU

12.30. PHY

12.31. IRQ chip

12.32. Various

13. List of merges

14. Other news sites

KernelNewbies: Linux_4.20 (last edited 2019-03-02 18:59:56 by diegocalleja)