6823
Comment:
|
11867
|
Deletions are marked like this. | Additions are marked like this. |
Line 7: | Line 7: |
/!\ /!\ This page is not complete /!\ /!\ While the page is completed, you can read about Linux 3.15 in the following sites: * LWN Merge window, [http://lwn.net/Articles/592989/ part 1] and [http://lwn.net/Articles/594864/ part 2] |
/!\ /!\ This document is being written at this moment and some parts are still missing /!\ /!\ |
Line 48: | Line 44: |
== Faster erasing and zeroing of parts of a file == This release adds two new [http://man7.org/linux/man-pages/man2/fallocate.2.html fallocate(2)] mode flags: * 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: [http://lwn.net/Articles/589260/ Finding the proper scope of a file collapse operation] Code: [http://git.kernel.org/linus/00f5e61998dd17f5375d9dfc01331f104b83f841 commit 1], [http://git.kernel.org/linus/409332b65d3ed8cfa7a8030f1e9d52f372219642 2], [http://git.kernel.org/linus/9eb79482a97152930b113b51dff530aba9e28c8e 3], [http://git.kernel.org/linus/b8a8684502a0fc852afa0056c6bb2a9273f6fcc0 4], [http://git.kernel.org/linus/e1d8fb88a64c1f8094b9f6c3b6d2d9e6719c970d 5], [http://git.kernel.org/linus/376ba313147b4172f3e8cf620b9fb591f3e8cdfa 6] == 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: [http://lwn.net/Articles/569134/ Exchanging two files] Code: [http://git.kernel.org/linus/520c8b16505236fc82daa352e6c5e73cd9870cff commit], [http://git.kernel.org/linus/da1ce0670c14d8380e423a3239e562a1dc15fa9e commit], [http://git.kernel.org/linus/bd42998a6bcb9b1708dac9ca9876e3d304c16f3d commit] |
|
Line 56: | Line 76: |
== Intel AVX-512 vector instructions support == [http://en.wikipedia.org/wiki/AVX-512 AVX-512] are 512-bit extensions to the 256-bit Advanced Vector Extensions SIMD instructions for x86 instruction set architecture proposed by Intel, and scheduled to be supported in 2015 with Intel's [http://en.wikipedia.org/wiki/Knights_Landing_(microarchitecture) Knights Landing] processor. For more details about these extensions, read the [http://download-software.intel.com/sites/default/files/managed/71/2e/319433-017.pdf documentation] Code: [https://git.kernel.org/linus/918d80a136430aeb23659aa75f8b415090500667 commit] |
|
Line 61: | Line 90: |
= Power management = * Speed up resume by resuming runtime-suspended devices later during system suspend [http://git.kernel.org/linus/7cd0602d7836c0056fe9bdab014d5ac5ec5cb291 commit][http://git.kernel.org/linus/92858c476ec4e99cf0425f05dee109b6a55eb6f8 commit] * Speed up resume by using asynchronous threads for resume_early [http://git.kernel.org/linus/9e5e7910df824ba02aedd2b5d2ca556426ea6d0b commit], resume_noirq [http://git.kernel.org/linus/76569faa62c46382e080c3e190c66e19515aae1c commit], suspend_late [http://git.kernel.org/linus/de377b3972729f00ee236ae4a97393e282ffe391 commit], suspend_noirq [http://git.kernel.org/linus/28b6fd6e37792b16a56d324841bdb20ab78e4522 commit], acpi_thermal_check [http://git.kernel.org/linus/a59ffb2062df3a5c346dbed931fa1e587fd0f0f3 commit] |
|
Line 62: | Line 95: |
* UBI: Read-only block driver on top of UBI volumes [http://git.kernel.org/linus/9d54c8a33eec78289b1b3f6e10874719c27ce0a7 commit] |
|
Line 63: | Line 98: |
* affs * add mount option to avoid filename truncates [http://git.kernel.org/linus/8ca577223f75230a746a06f4566c53943f78d5d0 commit] |
|
Line 65: | Line 103: |
* KVM * Allow per-vm capability enablement [http://git.kernel.org/linus/d938dc55225a7212e7f31c5a8571da304cc3de16 commit] * PPC: Book3S HV: Add transactional memory support [http://git.kernel.org/linus/e4e38121507a27d2ccc4b28d9e7fc4818a12c44c commit] * x86: Add nested virtualization support for MPX [http://git.kernel.org/linus/36be0b9deb23161e9eba962c215aece551113a15 commit] * Hyper-V * Implement the file copy service for Linux guests on Hyper-V ([http://technet.microsoft.com/en-us/library/dn464282.aspx related documentation]) [http://git.kernel.org/linus/01325476d6e46185031be4a9bc6443832dbc807c commit] * network: Enable receive side IP checksum offload, send side checksum offload and large send offload [http://git.kernel.org/linus/4a0e70ae5e3858052f6d91564bf3484f1eb91dc7 commit], [http://git.kernel.org/linus/e3d605ed441cf4d113f9a1cf9e1b3f7cabe0d781 commit], [http://git.kernel.org/linus/08cd04bf6d5b14ea90845b596d371bfa33eaba06 commit], [http://git.kernel.org/linus/77bf5487946254798ed7f265877939c703189f1e commit] * network: Enable scatter gather I/O [http://git.kernel.org/linus/54a7357f7ac408be4ef4ca82900bd24cb6789f36 commit] |
|
Line 66: | Line 114: |
* audit: Allow login in non-init namespaces [http://git.kernel.org/linus/543bc6a1a987672b79d6ebe8e2ab10471d8f1047 commit] * audit: add compat syscall audit support [http://git.kernel.org/linus/4b58841149dcaa500ceba1d5378ae70622fe4899 commit] * audit: audit proc/<pid>/cmdline aka proctitle [http://git.kernel.org/linus/3f1c82502c299da08b7b7f08b435212e51166ed9 commit] |
Linux 3.15 [https://lkml.org/lkml/2014/6/8/70 has been released] on Sun, 8 Jun
This document is being written at this moment and some parts are still missing
1. Prominent features
1.1. Faster resume from power suspend in systems with hard disks
Resuming a system from suspend used to take a long time in systems with traditional hard disks, because the system blocks the resume process until the hard disk 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 [https://01.org/suspendresume/blogs/tebrandt/2013/hard-disk-resume-optimization-simpler-approach blog entry]
Code: [http://git.kernel.org/linus/200421a80f6e0a9e39d698944cc35cba103eb6ce commit 1], [http://git.kernel.org/linus/3c31b52f96f7b559d950b16113c0f68c72a1985e 2]
1.2. 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: [http://lwn.net/Articles/495543/ Better active/inactive list balancing]
[http://git.kernel.org/linus/e7b563bb2a6f4d974208da46200784b9c5b5a47e commit 1], [http://git.kernel.org/linus/449dd6984d0e47643c04c807f609dd56d48d5bcc 2], [http://git.kernel.org/linus/d26914d11751b23ca2e8747725f2cae10c2f2c1b 3], [http://git.kernel.org/linus/6dbaf22ce1f1dfba33313198eb5bd989ae76dd87 4], [http://git.kernel.org/linus/a528910e12ec7ee203095eb1711468a66b9b60b0 5]
1.3. EFI 64 bit kernels can be booted from 32 bit firmware
Most modern x86 CPUs are 64bit, 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: [http://git.kernel.org/linus/0154416a71c2a84c3746c8dd8ed25287e36934d3 commit 1], [http://git.kernel.org/linus/4f9dbcfc40299ddaa780fe8c1cd74998c1be3af5 2], [http://git.kernel.org/linus/54b52d87268034859191d671505bb1cfce6bd74d 3], [http://git.kernel.org/linus/099240ac111aac454962e6399c0cc51d1511504a 4], [http://git.kernel.org/linus/b8ff87a6158886771677e6dc8139bac6e3cba717 5], [http://git.kernel.org/linus/e10848a26a962e404ac00c897dfe54f14290806d 6], [http://git.kernel.org/linus/18c46461d9e42d398536055f31f58cdcd2c6347e 7], [http://git.kernel.org/linus/9a11040ff962304c1838aa9a9f33be78784eae47 8], [http://git.kernel.org/linus/3f4a7836e33134d4ac34fa7c99788f0c6a79fa1c 9], [http://git.kernel.org/linus/c116e8d60adabfd545a269fccab85e77febc1643 10], [http://git.kernel.org/linus/7d453eee36ae4cf30fc2f2faae54f634c4f863b7 11]
1.4. New file locking scheme: file private 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. These locks will conflict with classic POSIX read/write locks, but have semantics that are more like BSD locks with respect to inheritance and behavior on close.
For more documentation and details about the new locking API, read this recommended LWN link: [http://lwn.net/Articles/586904/ File-private POSIX locks]
Code: [http://git.kernel.org/linus/5d50ffd7c31dab47c6b828841ca1ec70a1b40169 commit]
1.5. Faster erasing and zeroing of parts of a file
This release adds two new [http://man7.org/linux/man-pages/man2/fallocate.2.html fallocate(2)] mode flags:
- 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: [http://lwn.net/Articles/589260/ Finding the proper scope of a file collapse operation]
Code: [http://git.kernel.org/linus/00f5e61998dd17f5375d9dfc01331f104b83f841 commit 1], [http://git.kernel.org/linus/409332b65d3ed8cfa7a8030f1e9d52f372219642 2], [http://git.kernel.org/linus/9eb79482a97152930b113b51dff530aba9e28c8e 3], [http://git.kernel.org/linus/b8a8684502a0fc852afa0056c6bb2a9273f6fcc0 4], [http://git.kernel.org/linus/e1d8fb88a64c1f8094b9f6c3b6d2d9e6719c970d 5], [http://git.kernel.org/linus/376ba313147b4172f3e8cf620b9fb591f3e8cdfa 6]
1.6. 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: [http://lwn.net/Articles/569134/ Exchanging two files]
Code: [http://git.kernel.org/linus/520c8b16505236fc82daa352e6c5e73cd9870cff commit], [http://git.kernel.org/linus/da1ce0670c14d8380e423a3239e562a1dc15fa9e commit], [http://git.kernel.org/linus/bd42998a6bcb9b1708dac9ca9876e3d304c16f3d commit]
1.7. zram: LZ4 compression support, improved performance
Zram is a memory compression mechanism added in [http://kernelnewbies.org/Linux_3.14#head-72b295b09fea85de2e80f0b7850048264fed887e Linux 3.14] that is used in Android, Cyanogenmod, Chrome OS, Lubuntu and other projects. In this release zram brings support for the LZ4 compression algorithm, which is better than the current available LZO in some cases.
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: [http://git.kernel.org/linus/e7e1ef439d18f9a21521116ea9f2b976d7230e54 commit 1], [http://git.kernel.org/linus/beca3ec71fe5490ee9237dc42400f50402baf83e 2], [http://git.kernel.org/linus/e46b8a030d76d3c94156c545c3f4c3676d813435 3], [http://git.kernel.org/linus/6e76668e415adf799839f0ab205142ad7002d260 4]
1.8. Intel AVX-512 vector instructions support
[http://en.wikipedia.org/wiki/AVX-512 AVX-512] are 512-bit extensions to the 256-bit Advanced Vector Extensions SIMD instructions for x86 instruction set architecture proposed by Intel, and scheduled to be supported in 2015 with Intel's [http://en.wikipedia.org/wiki/Knights_Landing_(microarchitecture) Knights Landing] processor.
For more details about these extensions, read the [http://download-software.intel.com/sites/default/files/managed/71/2e/319433-017.pdf documentation]
Code: [https://git.kernel.org/linus/918d80a136430aeb23659aa75f8b415090500667 commit]
2. Drivers and architectures
All the driver and architecture-specific changes can be found in the [http://kernelnewbies.org/Linux_3.15-DriversArch Linux_3.15-DriversArch page]
3. Core
4. Memory management
5. Power management
Speed up resume by resuming runtime-suspended devices later during system suspend [http://git.kernel.org/linus/7cd0602d7836c0056fe9bdab014d5ac5ec5cb291 commit][http://git.kernel.org/linus/92858c476ec4e99cf0425f05dee109b6a55eb6f8 commit]
Speed up resume by using asynchronous threads for resume_early [http://git.kernel.org/linus/9e5e7910df824ba02aedd2b5d2ca556426ea6d0b commit], resume_noirq [http://git.kernel.org/linus/76569faa62c46382e080c3e190c66e19515aae1c commit], suspend_late [http://git.kernel.org/linus/de377b3972729f00ee236ae4a97393e282ffe391 commit], suspend_noirq [http://git.kernel.org/linus/28b6fd6e37792b16a56d324841bdb20ab78e4522 commit], acpi_thermal_check [http://git.kernel.org/linus/a59ffb2062df3a5c346dbed931fa1e587fd0f0f3 commit]
6. Block layer
UBI: Read-only block driver on top of UBI volumes [http://git.kernel.org/linus/9d54c8a33eec78289b1b3f6e10874719c27ce0a7 commit]
7. File systems
- affs
add mount option to avoid filename truncates [http://git.kernel.org/linus/8ca577223f75230a746a06f4566c53943f78d5d0 commit]
8. Networking
9. Virtualization
- KVM
Allow per-vm capability enablement [http://git.kernel.org/linus/d938dc55225a7212e7f31c5a8571da304cc3de16 commit]
PPC: Book3S HV: Add transactional memory support [http://git.kernel.org/linus/e4e38121507a27d2ccc4b28d9e7fc4818a12c44c commit]
x86: Add nested virtualization support for MPX [http://git.kernel.org/linus/36be0b9deb23161e9eba962c215aece551113a15 commit]
- Hyper-V
Implement the file copy service for Linux guests on Hyper-V ([http://technet.microsoft.com/en-us/library/dn464282.aspx related documentation]) [http://git.kernel.org/linus/01325476d6e46185031be4a9bc6443832dbc807c commit]
network: Enable receive side IP checksum offload, send side checksum offload and large send offload [http://git.kernel.org/linus/4a0e70ae5e3858052f6d91564bf3484f1eb91dc7 commit], [http://git.kernel.org/linus/e3d605ed441cf4d113f9a1cf9e1b3f7cabe0d781 commit], [http://git.kernel.org/linus/08cd04bf6d5b14ea90845b596d371bfa33eaba06 commit], [http://git.kernel.org/linus/77bf5487946254798ed7f265877939c703189f1e commit]
network: Enable scatter gather I/O [http://git.kernel.org/linus/54a7357f7ac408be4ef4ca82900bd24cb6789f36 commit]
10. Security
audit: Allow login in non-init namespaces [http://git.kernel.org/linus/543bc6a1a987672b79d6ebe8e2ab10471d8f1047 commit]
audit: add compat syscall audit support [http://git.kernel.org/linus/4b58841149dcaa500ceba1d5378ae70622fe4899 commit]
audit: audit proc/<pid>/cmdline aka proctitle [http://git.kernel.org/linus/3f1c82502c299da08b7b7f08b435212e51166ed9 commit]
11. Crypto
12. Tracing/perf
13. Other news sites that track the changes of this release
LWN Merge window, [http://lwn.net/Articles/592989/ part 1] and [http://lwn.net/Articles/594864/ part 2]
Phoronix [http://www.phoronix.com/scan.php?page=news_item&px=MTcwOTY The Top Features Of The Linux 3.15 Kernel]