Linux 3.11 features
Linux 3.11 merge window is about to close, most probably this Sunday, and most of the pull requests have been merged. Here we are listing out the highlights of the expected Linux Kernel 3.11 features.
Disk & File System
The Linux 3.10 successor is bringing with its support for LZ4 compression, Zswap for compressed swap caching, XFS file system improvements, Btrfs performance tuning, F2FS file system updates, EXT4 file system updates and inclusion of Lustre file-system client for the first time.
LZ4 compression can now be used as an alternative to Gzip, BZIP2, LZMA and LZO to compress the Linux kernel. LZ4’s compression and decompression speeds easily beat those of its alternatives like LZO, Snappy, and zlib. Available only for ARM hardware for now, the compression speeds top 45.6MB/s as compared to 25.2 MB/s with LZO on an ARMv7 1.5GHz board. The commits can be found here.
After being in development for a long time, Zswap has been merged into Linux 3.11. Zswap is basically a lightweight compressed cache for swap pages. The pages, which are in process of being swapped out will be taken up by Zswap and compressed into a dynamically allocated RAM-based memory pool. According the Linux kernel documentation, “zswap basically trades CPU cycles for potentially reduced swap I/O. This trade-off can also result in a significant performance improvement if reads from the compressed cache are faster than reads from a swap device.” You can find the commit here.
Linux 3.11 brings with it Btrfs file-system changes including regular work on performance fixes, bug-fixes, and code-cleanups. The merge includes tuning of “crc code as well as our transaction commits.” The improvements also bring with it resolution of issues related to early enospc.
XFS file system improvements encompass bug-fixes, performance improvements related to inode creation and deletion, buffer readahead, work on project quotas and group quotas, and blukstat among others.
F2FS doesn’t bring a whole lot of new things to Linux 3.11 but, it does include a fix for regression found in Linux 3.10. The performance of the file system is slower with 3.10 as compared to 3.9 in some workload cases notes Phoronix. This particular bug was reported by other developers as well and has been taken care of. Beyond that the F2FS updates also bring with it fixes related to little and big endian conversion as well as support for xattr security labels – a feature used by SEAndroid.
EXT4 file system improvements include optimization in ext4_writepages() and extent cache shrink mechanism. The ext4_writepages() can now be used for nodelalloc and ext3 compatibility mode thereby allowing page writes to be submitted as a single request rather than individual 4k writes. The extent cache shrink mechanism has been updated such that it doesn’t have the scalability bottleneck caused by the i_es_lru spinlock. Some other optimizations include changes that result into reduced CPU usage “to avoid issuing empty commits unnecessarily.”
Lustre, which is a high performance parallel distributed file system, has been included for the first time with Linux 3.11. The file system is particularly popular with high-performance cluster computing as well as super-computers. You can find more about Lustre here and here.
Linux 3.11 will bring with it Radeon dynamic power management support, new DRM display driver, Intel Haswell improvements along with Valley View / Bay Trail support, H.264 / MPEG2 video decoding for Nouveau and early GK110 GPU support
Back on June 26, Alex Deucher of AMD went ahead to post a massive patch set that included 165 patches that included Dynamic Power Management (DPM) support for R600 GPUs (Radeon HD 2000) through to Southern Islands (Radeon HD 7000). The DPM supports clockgating, dynamic engine clock scaling, dynamic memory clock scaling, dynamic voltage scaling, and dynamic PCI Express Gen1/Gen2 switching. You can find the patches here.
The new DRM (Direct Rendering Manager) driver merged into Linux 3.11 is for the Renesas R-Car SoC. The ARM cortex-9 based SoC is basically used in high-end car ‘infotainment’ systems wherein the graphics are powered by PowerVR SGX543MP2 graphics core. The commit notes read, “The R-Car Display Unit (DU) DRM driver supports both superposition processors and all eight planes in RGB and YUV formats with alpha blending.” Even though VGA and LVDS encoders are supported, it has to be noted that they are only to do with the display portion and not the PowerVR 3D graphics.
Intel’s Daniel Vetter prepared a pull request back in May for Linux 3.11 the key highlights for which were: Intel Valley View (aka Bay Trail) is no longer preliminary and is now stable for use with Intel Atom Bay Trail hardware; Frame-Buffer Compression (FBC) support for Haswell; SVDO and TV clean-ups; various mode-setting fixes / improvements.
The Nouveau DRM changes within the Linux 3.11 would include fixes benefiting concurrent running of Piglit, which would make buffer object deletion asynchronous. The merger also includes context/register initialization updates. H.264/MPEG-2 video decoding is also now supported via the VP2 engine for some PureVideo HD graphics cards.
The Nouveau driver has support for 2D EXA acceleration and X-Video support for NVIDIA’s “NVF0” aka GK110 GPU used in NVIDIA GeForce TITAN and GeForce GTX 780. There has been a rare xf86-video-nouveau commit following which there was more code push to the Nouveau DRM repository and mainline Mesa. The new code brings with it 3D support for the GK110, still in its infancy, which when used in conjunction with updated DDX and Nouveau DRM would bring with it basic OpenGL support.
Linux 3.11 will include AVX2 Crypto optimizations, IBM PowerPC improvements, ARM improvements and 64-bit support for XEN and KVM virtualization.
Optimizations in Linux 3.11 for AVX2 include more work on the Camellia AES-NI acceleration and as the Crypto is present in Intel Haswell CPUs faster performance can be leveraged from new Crypto code-paths for encrypted disks. Beyond this there are new SHA224 and SHA384 shims that have been added to the widely-present SSSE3 instruction set extension. The new update to AVX2 however drops the defunct Blowfish and Twofish implementations. There are further fine tuning to Crypto including not idling OMAP SoC devices between crypto operations happening in one session, support for FreeScale’s DCP co-processor, unaligned buffer self-tests, and a PCLMULQDQ optimization for CRCT10DIF.
IBM is pushing forward quite a few Power PC architecture updates including support for transparent huge pages for 64-bit processors, Power8 Event-Based Branch providing user-space interrupts for performance monitor events, PStore infrastructure enabling kernel oopses and other errors to be written to non-volatile RAM, improvements to EEH PCI error handling and recovery operations.
Linux 3.11 ARM improvements also include support for KVM and Xen virtualization on 64-bit hardware (AArch64), Hugetlbfs and transparent huge-pages, cache flishing improvements, clps711x, STI driver includes support for STiH415 and STiH416 SoC, Texas Instruments keystone ARM, Rockchips RK3xxx ARM platform. You can find more information about ARM improvements here and here.
Beyond the disk and file system improvements, graphics and CPU improvements Linux 3.11 will also bring in improvements in input devices as well as audio / sound and Wine will be able to handle Windows RT apps.
Input device improvements include touchscreen driver for Cypress 4th generation touch devices, PS/2 support on the OLPC via a specialized controller, Haswell MacBook Air patches among others.
Linux audio stack has been improved and comes with support for more than 32 card instances, Intel Bay Trail, ALC5505 DSP support in the HDA driver, AC’97 refactoring bug-fixes, etc.