KernelNewbies:

Linux 3.19 has been released on Sun, 8 Feb 2015

Summary: This release adds support for Btrfs scrubbing and fast device replacement with RAID 5 and 6, support for the Intel Memory Protection Extensions that help to stop buffer overflows, support for the AMD HSA architecture, support for the debugging ARM Coresight subsystem, support for the Altera Nios II CPU architecture, networking infrastructure for routing and switching offloading, Device Tree Overlays that help to support expansion busses found on consumer development boards like the Beaglebone or Raspberry Pi, support for hole punching and preallocation in NFSv4.2, and the Android binder has been moved from the staging area to stable. There are also new drivers and many other small improvements.

1. Prominent features

1.1. Btrfs: support scrubbing and fast device replacement in RAID 5 and 6

Btrfs added support for fast & live device replacement in Linux 3.8 (see btrfs-replace(8)), much faster and more efficient than adding the new device and removing the old one in separated commands (see btrfs-device(8)). This feature could not fast-replace devices from filesystems using RAID 5 & 6, this release has removed that limitation.

The process of scrubbing a Btrfs filesystem (see btrfs-scrub(8)) was also not available in RAID 5 and 6 filesystems, this limitation has also been removed in this release

Code: commit, commit, commit, commit, commit

1.2. Support for the Intel Memory Protection Extensions

Intel's Memory Protection Extension (MPX) is a set of CPU instructions which brings increased robustness to software by checking pointer references usurped maliciously at runtime by buffer overflows. Intel MPX introduces new registers and new CPU instructions that operate on these registers. Modified compiler, runtime libraries and kernels can make use of these instructions to allow MPX hardware to prevent buffer overflow exploitation. This Linux release adds support in the Linux kernel. Note: CPUs with MPX support are not in the market and will be introduced with the Intel Skylake and Goldmont microarchitectures.

Recommended LWN article: Supporting Intel MPX in Linux

Recommended Intel article: Introduction to Intel Memory Protection Extensions

Code: commit, commit, commit, commit, commit, commit, commit

1.3. HSA driver for AMD GPU devices

HSA, or Heterogeneous System Architecture, is a type of computer processor architecture that integrates central processing units and graphics processors on the same bus, with shared memory and tasks. HSA allows different processor types (CPUs, DSPs, GPUs, etc..) to share system resources more effectively via HW features including shared pageable memory, userspace-accessible work queues, and platform-level atomics.

This release includes HSA support for radeon-family processors, and offers an API that is used by a HSA open-source library developed by AMD. For more details about the HSA library and possibilities that HSA offers to userspace apps, see the previous link.

Code: drivers/gpu/drm/amd/amdkfd

1.4. Android binder moved to stable

The Android binder code has been placed in the "staging" are of the kernel for a long time. The code, however, has been stable for many years now and it has been shipped in millions of phones. There has been reticences over binder, but no matter what comes in the future, Linux is going to have to support this API anyway, so might as well move it to the "real" part of the kernel.

Code: commit

1.5. ARM Coresight support

Coresight is an umbrella of technologies allowing for the debugging of ARM-based SoC. ARM has developed a HW assisted tracing solution by means of different components, each being added to a design at synthesis time to cater to specific tracing needs. Components are generally categorised as source, link and sinks and are (usually) discovered using the AMBA bus. "Sources" generate a compressed stream representing the processor instruction path based on tracing scenarios as configured by users. From there the stream flows through the Coresight system (via ATB bus) using links that are connecting the emanating source to a sink(s). Sinks serve as endpoints to the Coresight implementation, either storing the compressed stream in a memory buffer or creating an interface to the outside world where data can be transferred to a host

The Linux Coresight framework provides a kernel interface for the Coresight debug and trace drivers to register themselves with. It's intended to build a topological view of the Coresight components based on a DT specification and configure the right series of components when a trace source gets enabled.

For more details about the Linux Coresight framework: see Documentation/trace/coresight.txt

For details about ARM Coresight: http://www.arm.com/products/system-ip/debug-trace/

Code: drivers/coresight/

1.6. New architecture: Altera Nios II processors

This release adds support for Altera Nios II processors. Nios II is a 32-bit embedded-processor architecture designed specifically for the Altera family of FPGAs. Nios II incorporates many enhancements over the original Nios architecture, making it more suitable for a wider range of embedded computing applications, from DSP to system-control.

For more information about the Nios II processors see http://www.altera.com/literature/lit-nio2.jsp

For more information on how compiling and booting software for the Nios II platform: http://www.rocketboards.org/foswiki/Documentation/NiosIILinuxUserManual

Code: arch/nios2

1.7. Device Tree overlays

The Device Tree is a data structure for describing hardware that is passed to the operating system at boot time, rather than hard coding every detail of a device into an operating system. It is used most often in architectures like powerpc and ARM. The Device Tree is designed with static systems in mind, and has troubles adapting to custom expansion busses commonly found on consumer development boards like the BeagleBone or Raspberry Pi.

This release introduces Device Tree overlay support. Overlays are a method to dynamically modify part of the kernel's device tree and make changes to properties in a existing tree. This makes easier to support devices such as the BeagleBone or Raspberry Pi.

Recommended LWN article: Device tree overlays

Code: commit

1.8. Networking: support for routing and switching offloading

This release includes infrastructure to support hardware switch chips (in very generic meaning of the word "switch"). This include devices supporting L2/L3 but also various flow offloading chips, including switches embedded into SR-IOV NICs.

Also included is the first driver to benefit from this new switchdev infrastructure, it is a "rocker" driver for emulated switch chip implemented in qemu.

Code: commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

1.9. NFSv4.2 support for hole punching and preallocation

This release adds support for hole punching and preallocation in NFSv4.2 setups

Code: commit, commit, commit, commit

2. Drivers and architectures

All the driver and architecture-specific changes can be found in the Linux_3.19-DriversArch page

3. File systems

4. Memory management

5. Block

6. Core (various)

fault-inject: add ratelimit option commit

7. Cryptography

8. Virtualization

9. Security

10. Tracing & perf

11. Networking

12. List of merges

13. Other news sites

KernelNewbies: Linux_3.19 (last edited 2017-12-30 01:30:14 by localhost)