The Many New Features Of The Linux 4.12 Kernel
With the Linux 4.12 merge window now over, here is a look at some of the most exciting features that were added to the Linux kernel for this next installment.
In monitoring the mailing list and Git activity the past two weeks, the material that got me excited for Linux 4.12 include the following features:
The Direct Rendering Manager (DRM) material was exciting as always. DRM dominated the changes for Linux 4.12 due to the major additions around Radeon RX Vega support and all the Vega 10 register header files.
Initial Radeon RX Vega support obviously tops our list. But for Linux 4.12 this is very initial support for these soon-to-launch GPUs. But don't get too excited as the DC display code didn't make it for 4.12 so there is not any monitor/display support for Vega. When these GPUs launch soon you'll need to build your own out-of-tree kernel or use AMDGPU-PRO. More Vega Linux details when these GPUs launch.
Also exciting in the DRM space is Intel atomic mode-setting by default. The Intel atomic code has matured in-tree for a number of cycles now and it's good enough where they have decided to turn it on out-of-the-box.
Exciting for open-source NVIDIA graphics with Linux 4.12 is initial GTX 1000 "Pascal" accelerated support. The consumer Pascal cards now have hardware acceleration support when paired with NVIDIA's recently released firmware images for the GTX 1050/1060/1070/1080 series. But -- like the current Maxwell support -- there isn't yet any re-clocking support so it's very slow.
There are also a range of other DRM updates for Linux 4.12.
Disk / File-Systems:
Two new I/O schedulers make things exciting in the block layer. The BFQ (Budget Fair Queueing) finally landed in mainline as well as the Facebook-developed Kyber I/O scheduler. I've already done some SSD Linux 4.12 I/O scheduler tests while more benchmarks (including on HDDs) will be done soon.
XFS support for GETFSMAP, a new ioctl for returning space mapping information. EXT4 also picked up GETFSMAP support as well as some performance tuning/fixes.
Btrfs meanwhile has some long-awaited RAID 5/6 fixes.
The F2FS flash file-system has seen various optimizations and fixes.
Also noteworthy are more MD RAID optimizations.
More work on POWER9 and the POWER architecture now supports up to 512TB of virtual address space with this updated Linux kernel.
Intel meanwhile is still working on 5-level paging support to allow up to 128 PiB of virtual address space and up to 4 PiB of physical address space. For Intel hardware there are also P-State and Schedutil updates this cycle. The Intel P-State driver is finally in good shape on recent kernel releases.
For Intel's upcoming Geminilake SoCs there have also been power management updates.
Also new is a 9pfs front-end driver for Xen. Over in KVM space are many different changes.
Being dropped from Linux 4.12 is the removal of the AVR32 architecture.
Over in the ARM space are numerous ARM64 updates.
Continued work on supporting NVIDIA's Tegra 186 / Parker / TX2, the new SoC found on the Jetson TX2. Other new ARM platform/SoC coverage includes the i/MX28 Duckbill platform being supported, the old Motorola DROID4 smartphone is now supported by the mainline kernel, Orange Pi PC2 support, and Rockchip RK3399/RK3288 SoC support, among other new additions.
For Raspberry Pi fans, there is now a Broadcom BCM2835 thermal driver.
Finally there's a USB Type-C port manager.
The Intel RealSense SR300 camera is now supported by mainline.
Like with most kernel cycles, various Intel laptop improvements and quirk additions.
Also on the Intel front is Bluetooth support for the Edison module.
Another common theme each cycle are more Linux sound driver fixes.
New input device support includes the Razer Sabertooth and Mad Catz Brawlstick being supported.
KASLR is now on by default for x86 systems in the name of security, Kernel Address Space Layout Randomization.
There's also early work on the Linux kernel lock-down mode that eventually will further lock-down the system when running in UEFI SecureBoot mode.
Various IOMMU updates and optimizations.
The TEE subsystem and drivers have been added as the ARM-focused Trusted Execution Environment.
A lot of staging updates that amount to 350k lines of new code.
For those making use of the in-kernel live-patching infrastructure, there have been some module loading speed improvements for certain out-of-tree modules.
Overall, Linux 4.12 is a very big kernel update and adds more than one million new lines to the kernel. Stay tuned for more Linux 4.12 coverage and benchmarks in the days/weeks ahead on Phoronix.
If you enjoyed this article consider joining Phoronix Premium to view this site ad-free, multi-page articles on a single page, and other benefits. PayPal or Stripe tips are also graciously accepted. Thanks for your support.