Linux, the best-known and most-used open source operating system, got a major upgrade on Sunday. Linus Torvalds announced the latest version of the Linux kernel, version 4.14, and the many new features and tweaks packed inside it.
One involves reverting code that improved the accuracy of the displayed CPU frequency on modern, dynamically-clocked processors in /proc/cpuinfo. It worked as intended in most cases, but there were lingering issues with overhead on machines with tens or hundreds of CPU cores. There’s a plan to bring the feature back, but not anytime soon.
Another change is AMD Secure Memory Encryption, an optional feature that can be used to protect the contents of DRAM from physical attacks on the system, and a new “unwinder” which prints the list of functions (i.e.. stack trace, callgraph, call stack) that have been executed before reaching a determinate point of the code. Linux already had an unwinder, but it wasn’t as efficient as ORC unwinder, which doesn’t need to insert code anywhere and so doesn’t affect text size or runtime performance.
Other changes in version 4.14 of the Linux kernel include bigger memory limits, since the original x86-64 was limited by 4-level paging to 256 TiB of virtual address space and 64 TiB of physical address space. (Upcoming hardware will introduce support for 5-level paging, which will bump the limits to 128 PiB of virtual address space and 4 PiB of physical address space.) And also in tow are zstd compression in Btrfs and Squashfs, zero-copy from user memory to sockets, Heterogeneous Memory Management for future GPUs, and better cpufreq coordination with SMP and longer-lived TLB Entries with PCID.
There are a lot more changes where those come from, of course. For folks interested, the full changelog is available at the source link.