Linux_3.16 - Linux Kernel Newbies (original) (raw)

Linux 3.16 released has been released on Sun, 3 Aug 2014.

Summary: This release improves performance with the support dynamically switch the clock frequency on Nvidia cards, it adds support for mapping user space memory into the GPU on Intel devices, XFS has a free inode btree for faster inode allocation, ARM 64 kernels can be used as EFI stubs, TCP Fast Open is supported in IPv6, some radeon devices have better performance thanks to improved power management support , Intel Cherryview graphics are supported, and control groups have gained an optional Unified Hierarchy mode, new drivers and many other small improvements have also been added.

Contents

  1. Prominent features
    1. Nvidia graphics performance improvements, initial support for GK20A devices and GK110B
    2. Intel graphic driver allows mapping of user pages into video memory
    3. Unified Control Group hierarchy
    4. XFS free inode btree, for faster inode allocation
    5. Allow booting ARM 64 kernels as EFI stubs
    6. TCP Fast Open server mode on IPv6 support
    7. Intel Cherryview graphics support
    8. Radeon performance improvements through improved APU power management have been enabled in some APUs
  2. Drivers and architectures
  3. Core
  4. Memory management
  5. Block layer
  6. Power management
  7. File systems
  8. Networking
  9. Virtualization
  10. Tracing/perf
  11. Security
  12. Crypto
  13. Other news sites that track the changes of this release

1. Prominent features

1.1. Nvidia graphics performance improvements, initial support for GK20A devices and GK110B

Nouveau, the opensource driver for Nvidia graphic GPUs, has gained support for allowing to change the frequency of the GPU from the BIOS predefined values. This feature (which for now needs to be enabled manually) improves performance noticeably. The Nvidia GPUs that got reclocking support in this release are those with nv40, nvaa, and nve0 clock types.

This release also adds initial (but incomplete) support for NVidia GK20A graphic chips, found in Tegra K1 SoC; and GK110B devices

Code: commit, commit, commit

1.2. Intel graphic driver allows mapping of user pages into video memory

By exporting the ability to map user address into the video memory, normal application data can be used as a texture source or even as a render target (depending upon the capabilities of the chipset). This has a number of uses, with zero-copy downloads to the GPU and efficient readback making the intermixed streaming of CPU and GPU operations fairly efficient. This ability has many widespread implications from faster rendering of client-side software rasterisers (chromium), mitigation of stalls due to read back (firefox) and to faster pipelining of texture data (such as pixel buffer objects in GL or data blobs in CL).

Code: commit

1.3. Unified Control Group hierarchy

Control groups allow to create groups of arbitrary processes and apply CPU, disk or memory constraints to the processes in these control groups. The current implementation allows to create several hierarchies and apply different constraints to each hierarchy. For several reasons, detailed in the article below, this approach is not considered appropriate, and work has been done to migrate towards an implementation where only one hierarchy will be available. This release includes for first time this unified control group hierarchy (optional for now)

For more information, read this recommended LWN article: The unified control group hierarchy in 3.16

Code commit, commit

1.4. XFS free inode btree, for faster inode allocation

In this release, XFS has added a btree that tracks free inodes. It is equivalent to the existing inode allocation btree with the exception that the free inode btree tracks inode chunks with at least one free inode. The purpose is to improve lookups for free inode clusters for inode allocation.

This feature adds does not change existing on-disk structures, but adds a new one that must remain consistent with the inode allocation btree; for this reason older kernels will only be able to mount read-only filesystems with the free inode btree feature.

Code: merge commit

1.5. Allow booting ARM 64 kernels as EFI stubs

This release allows to boot a Linux kernel for ARM64 platforms as an an EFI application in systems with UEFI firmware, without needing a bootloader.

Code: commit, commit

1.6. TCP Fast Open server mode on IPv6 support

TCP Fast Open is a TCP feature designed to make TCP connections faster. First support was added on Linux 3.6 for clients, in 3.7 support was added for servers and in 3.13 Fast Open was enabled by default. This release adds Fast Open support for IPv6 for servers.

Code: commit

1.7. Intel Cherryview graphics support

This release includes support for Broadwell GPUs http://en.wikipedia.org/wiki/Intel_HD_and_Iris_Graphics#Broadwell] to be found in Cherryview SoCs.

commit

1.8. Radeon performance improvements through improved APU power management have been enabled in some APUs

bapm, or "bidirectional application power management" is a power management feature that allows the GPU and CPU to share TDP, so it allows for extra performance out of the GPU and CPU when the headroom is available. In this release, bpam has been enabled by default, but only in a few devices and cases. Future work will improve support for bapm.

Code: commit, commit, commit

2. Drivers and architectures

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

3. Core

4. Memory management

5. Block layer

6. Power management

7. File systems

8. Networking

9. Virtualization

10. Tracing/perf

11. Security

12. Crypto

13. Other news sites that track the changes of this release