GNU/Linux Kernel 4.12 is finally here!

Finally the long awaited Kernel 4.12 is online!


New Features and Stuff:


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.

Other Hardware:

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.


Apparently some compile issues exist, such as people not being able to run their virtual box due to compile issues (for OS's that need to compile programs not install pre-compiled ones)

What fixes exactly? Did they fix the issue where it wipes your data on rebuild? Because that would be interesting.
Because that's still on the wiki, but that hasn't been updated for a year soooo....

1 Like

Btrfs contributor Zygo Blaxell wrote to clarify the situation:

with headlines like "btrfs RAID5/RAID6 support is finally fixed" when that's very much not the case. Only one bug has been removed for the key use case that makes RAID5 interesting, and it's just the first of many that still remain in the path of a user trying to recover from a normal disk failure.

Admittedly this is Michael's (Phoronix's) problem more than Qu's, but it's important to always be clear and complete when stating bug status because people quote statements out of context. When the article quoted the text

"it's not a timed bomb buried deeply into the RAID5/6 code, but a race condition in scrub recovery code"

the commenters on Phoronix are clearly interpreting this to mean "famous RAID5/6 scrub error" had been fixed and the issue reported by Goffredo was the time bomb issue. It's more accurate to say something like

"Goffredo's issue is not the time bomb buried deeply in the RAID5/6 code, but a separate issue caused by a race condition in scrub recovery code"

Reading the Phoronix article, one might imagine RAID5 is now working as well as RAID1 on btrfs. To be clear, it's not--although the gap is now significantly narrower.

But this is from 2016... so I don't know if stuff is fixed or no. I personally haven't worked with btrfs yet.


Why didn't Torvalds go to with version 5.0 instead of 4.10?

AFAIK, major number jumps like with 4.0 to 5.0 are meant for times when the kernel gets a massive feature.

The kernel 3 series went up to 3.19 I believe.

I hope that's what you were asking about, sorry if it wasn't, lol.

1 Like

AFAIK, major number jumps like with 4.0 to 5.0 are meant for times when the kernel gets a massive feature.

No. Major number jumps happen when Linus feels like it. For example, he did a poll on Google+ when going from 3 to 4.

1 Like

Cool now I can get that POWER workstation.

I have switched to XFS recently and simply love it.

Still not fixed.

So Noveau driver finally gets Pascal support?

I just think Linus has never read this

Why call it the GNU/Linux Kernel? GNU has absolutely nothing to do with the kernel or the release of 4.12...

1 Like

Most important section lol. Also while UEFI might have been a pain I like that microsoft is playing nice with it relatively speaking.

Thank fuck..

Now I am curious how does kyber work? Anyone got solid links?

There was a bug with the Aorus the Ryzen Motherboards on ubuntu based distros when using many non-ubuntu kernels that gigabyte refused to fix. It was fixed by a few people on launchpad. Does anyone know if the fix ended up in the 4.12?

This is literally the only time when just "Linux" is correct.

Yeah, exactly. I myself use the GNU/Linux terminology when it is appropriate, but in this case it's certainly not.