3531
Comment:
|
11134
|
Deletions are marked like this. | Additions are marked like this. |
Line 5: | Line 5: |
Linux 3.19 has NOT been released. | /!\ /!\ /!\ WARNING /!\ /!\ /!\ this document is not complete. While it is completed, you can read about the Linux 3.19 features in: * LWN merge window, [http://lwn.net/Articles/625146/ part 1], [http://lwn.net/Articles/626150/ part 2], [http://lwn.net/Articles/627202/ part 3]. |
Line 19: | Line 21: |
== Support for the Intel Memory Protection Extensions == | |
Line 20: | Line 23: |
Intel's [http://en.wikipedia.org/wiki/Intel_MPX Memory Protection Extension] (MPX) is a set of CPU instructions which brings increased robustness to software by checking pointer references usurped maliciously at runtime by buffer overflows. Intel MPX introduces new registers and new CPU instructions that operate on these registers. Modified compiler, runtime libraries and kernels can make use of these instructions to allow MPX hardware to prevent buffer overflow exploitation. This Linux release adds support in the Linux kernel. Note: CPUs with MPX support are not in the market and will be introduced with the Intel Skylake and Goldmont microarchitectures. Recommended LWN article: [http://lwn.net/Articles/582712/ Supporting Intel MPX in Linux] Recommended Intel article: [https://software.intel.com/en-us/articles/introduction-to-intel-memory-protection-extensions Introduction to Intel Memory Protection Extensions] Code: [http://git.kernel.org/linus/95290cf13e561b52dceadb9a8b8ee8ff2464b142 commit], [http://git.kernel.org/linus/4aae7e436fa51faf4bf5d11b175aea82cfe8224a commit], [http://git.kernel.org/linus/57319d80e1d328e34cb24868a4f4405661485e30 commit], [http://git.kernel.org/linus/fcc7ffd67991b63029ca54925644753d534ddc5f commit], [http://git.kernel.org/linus/fe3d197f84319d3bce379a9c0dc17b1f48ad358c commit], [http://git.kernel.org/linus/1de4fa14ee25a8edf287855513b61c3945c8878a commit], [http://git.kernel.org/linus/5776563648f6437ede91c91cbad85862ca682b0b commit] == Networking: support for routing and switching offloading == This release includes infrastructure to support hardware switch chips (in very generic meaning of the word "switch"). This include devices supporting L2/L3 but also various flow offloading chips, including switches embedded into SR-IOV NICs. Also included is the first driver to benefit from this new switchdev infrastructure, it is a "rocker" driver for [https://github.com/sfeldma/qemu-rocker/ emulated switch chip implemented in qemu]. Code: [http://git.kernel.org/linus/020ec6ba2a0c4c1e147c506a0970b58a90d1146b commit], [http://git.kernel.org/linus/b7485f6b035a87685ce35e0e52deee6467811eb0 commit], [http://git.kernel.org/linus/93859b13fa7ecef9d4d8bab4a7acc9f212c8fce2 commit], [http://git.kernel.org/linus/f6f6424ba773da6221ecaaa70973eb4dacfa03b2 commit], [http://git.kernel.org/linus/02637fce3e0103ba086b9c33b6d529e69460e4b6 commit], [http://git.kernel.org/linus/007f790c8276271de26416f90d55561bcc96588a commit], [http://git.kernel.org/linus/82f2841291cfaf4d225aa1766424280254d3e3b2 commit], [http://git.kernel.org/linus/aecbe01e7410ad2de022796472f531ae6941f15e commit], [http://git.kernel.org/linus/38dcf357aed299186ecb090cc2f5290cc17d637d commit], [http://git.kernel.org/linus/cf6b8e1eedffd9ef9a22c0c9453d752b07daf89a commit], [http://git.kernel.org/linus/065c212a9e25172069f368b36228379521dadb65 commit], [http://git.kernel.org/linus/efacacdaf7cb5a0592ed772e3731636b2742e34a commit], [http://git.kernel.org/linus/345cd494a324c149ef7293f4bedf2d7131a6de7c commit], [http://git.kernel.org/linus/2c3c031c8f8930861815fa1685d7c5e8ccec047c commit], [http://git.kernel.org/linus/4b8ac9660af07be6f6602b523929793eed314997 commit], [http://git.kernel.org/linus/9f6bbf7cfcb4dd734ce6c3fe7e512274311de380 commit], [http://git.kernel.org/linus/6c7079450071f889b4c2b55f8d030b1a5e859401 commit], [http://git.kernel.org/linus/ce76ca689dfe0bafba21b0dc002c7f92eb629fd8 commit], [http://git.kernel.org/linus/5111f80cbc759bed12941678bd029fca76512815 commit], [http://git.kernel.org/linus/e75605822e3190a1bd7935599e93f13ab1ba7c9d commit], [http://git.kernel.org/linus/51ace887a0c08cc431f99d46ab63c6b316052640 commit] |
|
Line 27: | Line 45: |
* Remove artificial max_hw_sectors cap [http://git.kernel.org/linus/34b48db66e08ca1c1bc07cf305d672ac940268dc commit] |
|
Line 28: | Line 48: |
* RCU locking: Remove CONFIG_RCU_CPU_STALL_VERBOSE, future kernel builds will always act as if CONFIG_RCU_CPU_STALL_VERBOSE=y [http://git.kernel.org/linus/0eafa46823971b4c368f4cdf19f1d081c4ee52b7 commit] * RCU locking: PREEMPT_RCU and TREE_PREEMPT_RCU serve the same function after TINY_PREEMPT_RCU has been removed, this release removes redundant TREE_PREEMPT_RCU config option [http://git.kernel.org/linus/28f6569ab7d036cd4ee94c26bb76dc1b3f3fc056 commit] * RCU: Rename CONFIG_RCU_BOOST_PRIO to CONFIG_RCU_KTHREAD_PRIO and use this value for both the per-CPU kthreads (rcuc/N) and the rcu boosting threads (rcub/n). Also add rcutree.kthread_prio boot option that sets the SCHED_FIFO priority of the RCU per-CPU and rcu boosting kthreads [http://git.kernel.org/linus/21871d7eff2c96ae67e18e00adf59d56940e2fcc commit] |
|
Line 38: | Line 62: |
* net: allow setting ecn via routing table [http://git.kernel.org/linus/f7b3bec6f5167efaf56b756abfafb924cb1d3050 commit] * IPv6: Add a sysctl (use_optimistic and optimistic_dad) that causes an interface's optimistic addresses to be considered equivalent to other non-deprecated addresses for source address selection purposes. Preferred addresses will still take precedence over optimistic addresses, subject to other ranking in the source address selection algorithm. This is useful where different interfaces are connected to different networks from different ISPs (e.g., a cell network and a home wifi network) [http://git.kernel.org/linus/7fd2561e4ebdd070ebba6d3326c4c5b13942323f commit] * Generic receive offload: add a per device gro flush timer. This new mechanism is off by default, and shall be enabled by setting /sys/class/net/ethX/gro_flush_timeout to a value in nanosecond [http://git.kernel.org/linus/3b47d30396bae4f0bd1ff0dbcd7c4f5077e7df4e commit] * Add SO_INCOMING_CPU socket option, which allows userspace to ask for the CPU upon what a packet was received/steered [http://git.kernel.org/linus/2c8c56e15df3d4c2af3d656e44feb18789f75837 commit] * Allow eBPF programs to be attached to sockets [http://git.kernel.org/linus/89aa075832b0da4402acebd698d0411dcc82d03e commit] * Netfilter * nft_meta: add cgroup support [http://git.kernel.org/linus/ce674173e9f4ef7fd0dc04ea0773cdedfbf8e366 commit] * TIPC protocol: New netlink API, for detail see the [https://git.kernel.org/linus/49ed2617a06abacaccd46fa88ae14c333baa15f0 merge commit]. Code: [http://git.kernel.org/linus/0655f6a8635b1b66f2434d5556b1044c14b1ccaf commit], [http://git.kernel.org/linus/35b9dd7607f049466a66427e58818b29aeae9ea7 commit], [http://git.kernel.org/linus/315c00bc9f2bd17f7ad7ed8119ca49b1125af507 commit], [http://git.kernel.org/linus/7be57fc6918470ecacd16b89c0d4f73d8fc265c4 commit], [http://git.kernel.org/linus/f96ce7a20d6972a834202f3cdd6a53fd0ee26a8e commit], [http://git.kernel.org/linus/ae36342b50a91cff188e417201452dc075a8f444 commit], [http://git.kernel.org/linus/46f15c6794fb744bb7741d26143a85b9012c10d4 commit], [http://git.kernel.org/linus/1e55417d8fc6f6d93b1cc6995b911d48ded2adfb commit], [http://git.kernel.org/linus/1593123a6a4914ccac4699d7f93cdf8057a7d822 commit], [http://git.kernel.org/linus/fd3cf2ad519f73c2f7a46460ebedf32ad246520c commit], [http://git.kernel.org/linus/27c21416727af73df45051acb05331c0f10e50f6 commit], [http://git.kernel.org/linus/3e4b6ab58d614934e7ca99bdf448089695d34ffa commit], [http://git.kernel.org/linus/1a1a143daf84db95dd7212086042004a3abb7bc2 commit], [http://git.kernel.org/linus/34b78a127c4fd57cf3d5c64031693d10a8e0fae1 commit] |
WARNING this document is not complete. While it is completed, you can read about the Linux 3.19 features in:
LWN merge window, [http://lwn.net/Articles/625146/ part 1], [http://lwn.net/Articles/626150/ part 2], [http://lwn.net/Articles/627202/ part 3].
Summary: (not completed)
1. Prominent features
1.1. Btrfs: support scrubbing and fast device replacement in RAID 5&6
Btrfs added support for [http://kernelnewbies.org/Linux_3.8#head-1fd494f6aeba0abd271e483ff9732afeb3544368 fast&live device replacement] (see [https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs-replace btrfs-replace(8)]), much faster and efficient than adding the new device and removing the old one in separated commands (see [https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs-device btrfs-device(8)]). This feature could not fast-replace devices from filesystems using RAID 5 & 6, this release has removed that limitation.
The process of scrubbing a btrfs filesystem (see [https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs-scrub btrfs-scrub(8)]) was also not available in RAID 5&6 filesystems, this limitation has also been removed in this release
Code: [http://git.kernel.org/linus/5a6ac9eacb49143cbad3bbfda72263101cb1f3df commit], [http://git.kernel.org/linus/5d3edd8f44aac94de7b16f4c54290e24f5e8c532 commit], [http://git.kernel.org/linus/2c8cdd6ee4e7f637b0486c6798117e7859dee586 commit], [http://git.kernel.org/linus/7603597690147a16b5cc77047d7570fa22a22673 commit], [http://git.kernel.org/linus/af8e2d1df9848b39dd86b1e696bf8781d2020a88 commit]
1.2. Support for the Intel Memory Protection Extensions
Intel's [http://en.wikipedia.org/wiki/Intel_MPX Memory Protection Extension] (MPX) is a set of CPU instructions which brings increased robustness to software by checking pointer references usurped maliciously at runtime by buffer overflows. Intel MPX introduces new registers and new CPU instructions that operate on these registers. Modified compiler, runtime libraries and kernels can make use of these instructions to allow MPX hardware to prevent buffer overflow exploitation. This Linux release adds support in the Linux kernel. Note: CPUs with MPX support are not in the market and will be introduced with the Intel Skylake and Goldmont microarchitectures.
Recommended LWN article: [http://lwn.net/Articles/582712/ Supporting Intel MPX in Linux]
Recommended Intel article: [https://software.intel.com/en-us/articles/introduction-to-intel-memory-protection-extensions Introduction to Intel Memory Protection Extensions]
Code: [http://git.kernel.org/linus/95290cf13e561b52dceadb9a8b8ee8ff2464b142 commit], [http://git.kernel.org/linus/4aae7e436fa51faf4bf5d11b175aea82cfe8224a commit], [http://git.kernel.org/linus/57319d80e1d328e34cb24868a4f4405661485e30 commit], [http://git.kernel.org/linus/fcc7ffd67991b63029ca54925644753d534ddc5f commit], [http://git.kernel.org/linus/fe3d197f84319d3bce379a9c0dc17b1f48ad358c commit], [http://git.kernel.org/linus/1de4fa14ee25a8edf287855513b61c3945c8878a commit], [http://git.kernel.org/linus/5776563648f6437ede91c91cbad85862ca682b0b commit]
1.3. Networking: support for routing and switching offloading
This release includes infrastructure to support hardware switch chips (in very generic meaning of the word "switch"). This include devices supporting L2/L3 but also various flow offloading chips, including switches embedded into SR-IOV NICs.
Also included is the first driver to benefit from this new switchdev infrastructure, it is a "rocker" driver for [https://github.com/sfeldma/qemu-rocker/ emulated switch chip implemented in qemu].
Code: [http://git.kernel.org/linus/020ec6ba2a0c4c1e147c506a0970b58a90d1146b commit], [http://git.kernel.org/linus/b7485f6b035a87685ce35e0e52deee6467811eb0 commit], [http://git.kernel.org/linus/93859b13fa7ecef9d4d8bab4a7acc9f212c8fce2 commit], [http://git.kernel.org/linus/f6f6424ba773da6221ecaaa70973eb4dacfa03b2 commit], [http://git.kernel.org/linus/02637fce3e0103ba086b9c33b6d529e69460e4b6 commit], [http://git.kernel.org/linus/007f790c8276271de26416f90d55561bcc96588a commit], [http://git.kernel.org/linus/82f2841291cfaf4d225aa1766424280254d3e3b2 commit], [http://git.kernel.org/linus/aecbe01e7410ad2de022796472f531ae6941f15e commit], [http://git.kernel.org/linus/38dcf357aed299186ecb090cc2f5290cc17d637d commit], [http://git.kernel.org/linus/cf6b8e1eedffd9ef9a22c0c9453d752b07daf89a commit], [http://git.kernel.org/linus/065c212a9e25172069f368b36228379521dadb65 commit], [http://git.kernel.org/linus/efacacdaf7cb5a0592ed772e3731636b2742e34a commit], [http://git.kernel.org/linus/345cd494a324c149ef7293f4bedf2d7131a6de7c commit], [http://git.kernel.org/linus/2c3c031c8f8930861815fa1685d7c5e8ccec047c commit], [http://git.kernel.org/linus/4b8ac9660af07be6f6602b523929793eed314997 commit], [http://git.kernel.org/linus/9f6bbf7cfcb4dd734ce6c3fe7e512274311de380 commit], [http://git.kernel.org/linus/6c7079450071f889b4c2b55f8d030b1a5e859401 commit], [http://git.kernel.org/linus/ce76ca689dfe0bafba21b0dc002c7f92eb629fd8 commit], [http://git.kernel.org/linus/5111f80cbc759bed12941678bd029fca76512815 commit], [http://git.kernel.org/linus/e75605822e3190a1bd7935599e93f13ab1ba7c9d commit], [http://git.kernel.org/linus/51ace887a0c08cc431f99d46ab63c6b316052640 commit]
2. Drivers and architectures
All the driver and architecture-specific changes can be found in the [http://kernelnewbies.org/Linux_3.19-DriversArch Linux_3.19-DriversArch page]
3. File systems
4. Memory management
5. Block
Remove artificial max_hw_sectors cap [http://git.kernel.org/linus/34b48db66e08ca1c1bc07cf305d672ac940268dc commit]
6. Core (various)
RCU locking: Remove CONFIG_RCU_CPU_STALL_VERBOSE, future kernel builds will always act as if CONFIG_RCU_CPU_STALL_VERBOSE=y [http://git.kernel.org/linus/0eafa46823971b4c368f4cdf19f1d081c4ee52b7 commit]
RCU locking: PREEMPT_RCU and TREE_PREEMPT_RCU serve the same function after TINY_PREEMPT_RCU has been removed, this release removes redundant TREE_PREEMPT_RCU config option [http://git.kernel.org/linus/28f6569ab7d036cd4ee94c26bb76dc1b3f3fc056 commit]
RCU: Rename CONFIG_RCU_BOOST_PRIO to CONFIG_RCU_KTHREAD_PRIO and use this value for both the per-CPU kthreads (rcuc/N) and the rcu boosting threads (rcub/n). Also add rcutree.kthread_prio boot option that sets the SCHED_FIFO priority of the RCU per-CPU and rcu boosting kthreads [http://git.kernel.org/linus/21871d7eff2c96ae67e18e00adf59d56940e2fcc commit]
7. Cryptography
Add user space interface for AEAD [http://git.kernel.org/linus/af8e80731a94ff9de9508b01d9e5d931d538dc6b commit]
crc32: Add ARM64 CRC32 hw accelerated module [http://git.kernel.org/linus/f6f203faa3ebd8fa229e34424850a0919ded6c10 commit]
sahara: add support for SHA1/256 [http://git.kernel.org/linus/5a2bb93f599247e049f5ae06a573f1152987c572 commit]
caam: add support for AES working in Galois Counter Mode [http://git.kernel.org/linus/3ef8d945d0dafd272e77c01099bc4975c5297a5a (commit)], add support for AES in Galois/Counter Mode as an IPsec Encapsulating Security Payload mechanism [http://git.kernel.org/linus/bac68f2c9a43e60a70e27c0c75aaca7128b6271d (commit)], add support for AES working in Counter mode [http://git.kernel.org/linus/2b22f6c547f90e1a41e3f39ad8d569e3efc74d42 (commit)], add support for AES Counter Mode compliant with RFC3686 to be used along with authenc algorithms (md5, sha1, sha224, sha256, sha384, sha512) as one-shot aead algorithms [http://git.kernel.org/linus/daebc465858867f48ee86a88f56020c3fe0d96f6 (commit)], add support for one-shot givencrypt algorithms [http://git.kernel.org/linus/7222d1a3410388c8e21a5028ba2beb498938b57f (commit)], add support for Advanced Encryption Standard in Counter Mode as provided in IPsec implementation standard RFC3686 [http://git.kernel.org/linus/a5f57cffce8af8d2c11204b4e289543021c73766 (commit)], add support for AES-GMAC as an IPSec ESP mechanism to provide data origin authentication, but not confidentiality [http://git.kernel.org/linus/5d0429a30f06845af78a696de59e3e8d21252846 (commit)]
8. Security
9. Virtualization
10. Tracing & perf
11. Networking
net: allow setting ecn via routing table [http://git.kernel.org/linus/f7b3bec6f5167efaf56b756abfafb924cb1d3050 commit]
IPv6: Add a sysctl (use_optimistic and optimistic_dad) that causes an interface's optimistic addresses to be considered equivalent to other non-deprecated addresses for source address selection purposes. Preferred addresses will still take precedence over optimistic addresses, subject to other ranking in the source address selection algorithm. This is useful where different interfaces are connected to different networks from different ISPs (e.g., a cell network and a home wifi network) [http://git.kernel.org/linus/7fd2561e4ebdd070ebba6d3326c4c5b13942323f commit]
Generic receive offload: add a per device gro flush timer. This new mechanism is off by default, and shall be enabled by setting /sys/class/net/ethX/gro_flush_timeout to a value in nanosecond [http://git.kernel.org/linus/3b47d30396bae4f0bd1ff0dbcd7c4f5077e7df4e commit]
Add SO_INCOMING_CPU socket option, which allows userspace to ask for the CPU upon what a packet was received/steered [http://git.kernel.org/linus/2c8c56e15df3d4c2af3d656e44feb18789f75837 commit]
Allow eBPF programs to be attached to sockets [http://git.kernel.org/linus/89aa075832b0da4402acebd698d0411dcc82d03e commit]
- Netfilter
nft_meta: add cgroup support [http://git.kernel.org/linus/ce674173e9f4ef7fd0dc04ea0773cdedfbf8e366 commit]
TIPC protocol: New netlink API, for detail see the [https://git.kernel.org/linus/49ed2617a06abacaccd46fa88ae14c333baa15f0 merge commit]. Code: [http://git.kernel.org/linus/0655f6a8635b1b66f2434d5556b1044c14b1ccaf commit], [http://git.kernel.org/linus/35b9dd7607f049466a66427e58818b29aeae9ea7 commit], [http://git.kernel.org/linus/315c00bc9f2bd17f7ad7ed8119ca49b1125af507 commit], [http://git.kernel.org/linus/7be57fc6918470ecacd16b89c0d4f73d8fc265c4 commit], [http://git.kernel.org/linus/f96ce7a20d6972a834202f3cdd6a53fd0ee26a8e commit], [http://git.kernel.org/linus/ae36342b50a91cff188e417201452dc075a8f444 commit], [http://git.kernel.org/linus/46f15c6794fb744bb7741d26143a85b9012c10d4 commit], [http://git.kernel.org/linus/1e55417d8fc6f6d93b1cc6995b911d48ded2adfb commit], [http://git.kernel.org/linus/1593123a6a4914ccac4699d7f93cdf8057a7d822 commit], [http://git.kernel.org/linus/fd3cf2ad519f73c2f7a46460ebedf32ad246520c commit], [http://git.kernel.org/linus/27c21416727af73df45051acb05331c0f10e50f6 commit], [http://git.kernel.org/linus/3e4b6ab58d614934e7ca99bdf448089695d34ffa commit], [http://git.kernel.org/linus/1a1a143daf84db95dd7212086042004a3abb7bc2 commit], [http://git.kernel.org/linus/34b78a127c4fd57cf3d5c64031693d10a8e0fae1 commit]