KernelNewbies:

Linux 4.2 has been released on 30 Aug 2015

Summary: This release adds a new amdgpu driver for modern AMD Radeon hardware, a virtio GPU driver to use the host GPU capabilities inside guests, the new atomic modesetting graphics API has been declared stable, support for stacking of security modules, a faster and more scalable spinlock implementation, cgroup writeback support, and reintroduction of the H8/300 architecture.There are also new drivers and many other small improvements.

1. Prominent features

1.1. New driver amdgpu for modern AMD Radeon hardware

This release includes the amdgpu driver, a new driver for VI+ AMD asics. It currently supports Tonga, Iceland, and Carrizo and also contains an option to build support for CI parts for testing. All major functionality is supported (displays, gfx, compute, dma, video decode/encode, etc.). Power management is working on Carrizo, but is still being worked on for Tonga and Iceland.

The purpose of this driver is to unify AMD's Linux offerings: the functionality that it's kept as private code in the Catalyst driver will be either ported to this driver or will run as a user-space private blob that uses the new driver.

Code: (merge)

1.2. Add virtio gpu driver

Virtio drivers are "fake" drivers that are used to make communication between virtualization guests and host faster, because emulating real hardware is complicated and ineficcient.

This release adds a virtual GPU driver for virtio. It can be used with QEMU based VMMs (like KVM or Xen). For now it supports kernel-modesetting: The xorg modesetting driver can handle the device just fine, the framebuffer for fbcon is there too. Qemu patches for the host side are under review currently. This initial revision has only 2d support, 3d (virgl) support requires some more work on the qemu side and will be added later.

Code: commit

1.3. Atomic modesetting API enabled by default

This release finally completes the atomic modesetting API and enables it by default. For details about the atomic modesetting API and why it is neccesary, read these recommended LWN articles: Atomic mode setting design overview, part 1, and part 2

Code: commit

1.4. Stacking of security modules

There are several security modules in the Linux kernel, but only one can be used. For a very long time, developers have wanted to be able to be able to use more than one at the same time ("stacking"). This release adds support for stacking of linux security modules

For more details, read Progress in security module stacking

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

1.5. Queued spinlocks become the default spinlock implementation

This release adds support in the x86 architecture for queue-based spinlocks that can replace the default ticket spinlock without increasing the size of the spinlock data structure.

The queue spinlock has slightly better performance than the ticket spinlock in uncontended case, and its performance can be much better with moderate to heavy contention. It is especially suitable for NUMA machines with at least 2 sockets. Though even at the 2-socket level, there can be significant speedup depending on the workload. It can also improve the performance of an I/O and interrupt intensive stress test with a lot of spinlock contention on a 2-socket system by up to 20%.

For more details, read this LWN article: MCS locks and qspinlocks

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

1.6. cgroup writeback support

The Linux kernel can throttle processes than are trying to write too many pages to the disk ("writeback"). But this control is global and doesn't allow per-cgroup limits. This release adds support for writeback control of processes inside a cgroup.

For more details, read this recommended LWN article: Writeback and control groups

Documentation: Updates to Documentation/cgroups/blkio-controller.txt

Code: (merge)

1.7. Reintroduction of the H8/300 architecture

Linux added support for the H8/300 architecture in Linux 2.5.68. But it got removed in Linux 3.13 due to lack of maintainance.

In this release, the H8/300 architecture has got support again, and it's being reincorporated to the tree

Code: arch/h8300

2. Drivers and architectures

3. Core (various)

* Allow the watchdog to run by default only on the housekeeping cores when nohz_full is in effect; this seems to be a good compromise short of turning it off completely (since the nohz_full cores can't tolerate a watchdog). To provide customizability, a /proc/sys/kernel/watchdog_cpumask file is added so that the set of cores running the watchdog can be tuned to different values after bootup commit, commit, commit

4. File systems

5. Memory management

6. Block layer

7. Cryptography

8. Security

9. Tracing and perf tool

10. Virtualization

11. Networking

12. List of pull requests

13. Other news sites

KernelNewbies: Linux_4.2 (last edited 2017-12-30 01:30:22 by localhost)