Linux 3.15 has been released
Summary: This release resumes much faster in systems with hard disks, it adds support for cross-renaming two files atomically, it adds new fallocate(2)
Faster resume from power suspend in systems with hard disk drives
Resuming a system from suspend used to take a long time in systems with traditional hard disk drives, because the system blocks the resume process until the hard disk drive finish powering up. In this release, commands are sent to the hard disk asynchronously, so the entire resuming process isn't paused by the hard disk. The end result is that systems with hard disks will resume several seconds faster with this Linux release.
For more details, see this blog entry
Code: commit 1
Improved working set size detection
When there is not enough room for all memory in RAM, the Linux kernel is in charge of deciding which memory must be kept in RAM, and which must be sent to swap or discarded. In order to make good decisions, it is necessary to track which memory is most used and deserves to be kept in RAM, and which memory is not used often and can be evicted. The way the Linux kernel does this is by keeping an "inactive" and "active" list, when some data needs to be moved to RAM its memory is marked as active. As more and more memory gets used, the active list gets filled and the less used memory is moved to the inactive list.
The problem with this algorithm is to know how big must be each list. Linux used to have a policy of not allowing the active list to grow larger than the inactive, but this approach caused problems. In this release, Linux does more advanced tracking of how memory gets used and can balance better the size of the lists, which makes Linux perform better in certain workloads, adapt better to workload size changes, and creates a foundation to build improved policies in the future.
For more details, read this recommended link: Better active/inactive list balancing
EFI 64-bit kernels can be booted from 32-bit firmware
Most modern x86 CPUs are 64-bit, but many modern systems ship with a 32-bit EFI implementation. This didn't allow to boot a Linux 64-bit EFI kernel from these 32-bit EFI systems. This limitation has been removed, a 64-bit kernel can be booted on 32-bit firmware that runs on 64-bit CPUs (note that it is not possible to boot a mixed-mode enabled kernel via the EFI boot stub - a bootloader that supports the EFI handover protocol must be used)
Code: commit 1
New file locking scheme: open file description locks
Due to some unfortunate history, POSIX locks have very strange and unhelpful semantics: they are dropped whenever the process closes any file descriptor associated with the inode, and locks taken between threads within the same process won't conflict with one another, which renders them useless for synchronization between threads.
This release adds a new type of lock that attempts to address these issues: open file description locks (initially called "file-private locks"). These locks will conflict with classic POSIX read/write locks, but have semantics that are more like BSD locks with respect to inheritance and lock release when closing a file descriptor.
For more documentation and details about the new locking API, read this recommended LWN link: File-private POSIX locks
Code: commit
Faster erasing and zeroing of parts of a file
This release adds two new fallocate(2)
* FALLOC_FL_COLLAPSE_RANGE: Allows to remove a range of a file without leaving holes, improving the performance of these operations that previously needed to be done with workarounds.
* FALLOC_FL_ZERO_RANGE: Allows to set a range of a file to zero, much faster than it would take to do it manually (this functionality was previously available in XFS through the XFS_IOC_ZERO_RANGE ioctl)
In this release, only XFS and ext4 have added support for these new flags, other filesystems will follow in the future.
For more details, read this LWN article: Finding the proper scope of a file collapse operation
Code: commit 1
File cross-renaming support
This release adds cross-rename, a variant of rename which exchanges the two files. This allows interesting use cases which were not possible before, for example atomically replacing a directory tree with a symlink. It also allows overlayfs and friends to operate on whiteouts atomically.
For more details, read this LWN article: Exchanging two files
Code: commit
zram: LZ4 compression support, improved performance
Zram is a memory compression mechanism added in Linux 3.14
This release also adds performance improvements to concurrent compression of multiple compression streams, and the ability to switch the compression algorithm in /sys/block/zram0/comp_algorithm
Code: commit 1
Intel AVX-512 vector instructions support
For more details about these extensions, read the documentation
Code: commit
FUSE: improved write performance
FUSE can now use cached writeback support to fuse, which improves write throughput.
Code: commit