Linus Torvalds released Linux kernel 4.12 on Sunday, July 2 and remarked how it was “one of the bigger releases historically.” Indeed, just shy of 12,000 commits, only 4.9 was significantly larger, and that was because Greg Kroah-Hartman declared it an LTS release.
Despite Torvalds’ unassuming comment about how there’s “nothing particularly odd going on” in this release, there are definitely many things going on. Apart from the numerous commits, this kernel has also received an abnormally large number of patches. About 50 percent of these patches are from the work being carried out on supporting the AMD’s high-end Vega series of cards, which are to go on sale later this year.
Getting support for hardware that isn’t even available in shops yet is exciting, but even more so is the work being carried out on supporting USB-C natively. In case you are not aware of these nifty interfaces, USB-C ports are an ultrabook designer’s dream. The protocol itself allows users to plug in a cable however they choose — no more fumbling to get it right side up! But, more importantly, USB-C allows for a wider range of functionalities than prior versions of USB. You can, for example, deliver power over a USB-C to charge a mobile device from your laptop, yes, but you can also have your laptop receive power. This means you could charge your laptop back and never have to bother with a non-standard charging port again.
Not only that, but a USB-C protocol can also act as an HDMI port and stream video to an external monitor. And, of course, USB-C still supports mass storage devices, mice, keyboards, cameras, microphones, printers, and so forth. With a couple of these devices on your machine, you are covered for almost everything.
The support of USB-C in the kernel is not easy. Apart from knowing what format of data must be sent over the wire, you have the added complication of determining which way charging is happening: Is the power flowing out through the USB-C to a device? Or is it flowing the other way round, charging your laptop? All these things must be “negotiated” by the devices at either end of the cable and, on the kernel end, we now have a USB Type-C Port Manager driver, or TCPM for short. As Phoronix explains, “[t]his driver serves as a state machine while other USB Type-C drivers are responsible for the rest of the functionality.”
Other things to look forward to in 4.12
A new BFQ I/O scheduler. The Budget Fair Queuing, or BFQ, is a new I/O scheduler that makes applications on desktops more responsive. By reducing latency on servers, it also helps reduce jittering and jumps when streaming audio or video, and speeds up the retrieval of web pages. Overall, the new BFQ is going to make life more pleasant for end users. The new Kyber I/O scheduler, on the other hand, speeds up access to block devices, like disk drives.
Support for ARM 64 devices keeps growing. Both the HWacom’s AmazeTV set top box and the Orange Pi PC 2 board are now supported among others. The old Motorola DROID4 smartphone is also supported.
And, speaking of alternative architectures, the Power9chips have received a boost and can now address 512TB of virtual address space. Should be enough for gaming, methinks.