#pragma section-numbers on #pragma keywords Linux, kernel, operating system, changes, changelog, file system, Linus Torvalds, open source, device drivers #pragma description List of changes and new features merged in the Linux kernel during the 4.19 development cycle Summary: This release adds: the CAKE network queue management to fight bufferbloat, its algorithm is designed to fight intended to squeeze the most bandwidth and latency out of even the slowest ISP links and routers; support for guaranteeing minimum I/O latency targets for cgroups; experimental support for the future Wi-Fi 6 (802.11ax-drafts); memory usage for overlayfs users has been improved; a experimental EROFS file system optimized for read-only use; a new asynchronous I/O polling interface; support for avoiding unintentional writes to an attacker-controlled FIFO or regular files in world writable sticky directories; support for a Intel feature that locks part of the CPU cache for an application; and many new drivers and other improvements. <> = Coolest features = == Better networking experience with the CAKE queue management algorithm == This release includes a new queuing discipline for the network packet scheduler: Common Applications Kept Enhanced (CAKE). It is designed to replace and improve upon the complex hierarchy of simple queuing disciplines presently required to effectively tackle the [[https://www.bufferbloat.net/projects/|bufferbloat]] problem at the network edge. CAKE targets the home router use case and is intended to squeeze the most bandwidth and latency out of even the slowest ISP links and routers, while presenting an API simple enough that even an ISP can configure it. Recommended LWN article: [[https://lwn.net/Articles/758353/|Let them run CAKE]] Project page: https://www.bufferbloat.net/projects/codel/wiki/Cake/ Technical information: https://www.bufferbloat.net/projects/codel/wiki/CakeTechnical/ Paper: https://arxiv.org/abs/1804.07617 Code: [[https://git.kernel.org/linus/046f6fd5daefac7f5abdafb436b30f63bc7c602b|commit 1]], [[https://git.kernel.org/linus/b60a60405fb95a688eb2ef4ef20f5fcaa7b64f68|2]], [[https://git.kernel.org/linus/83f8fd69af4f62136765b60fd0efa1c9167917c5|3]], [[https://git.kernel.org/linus/ea82511518f4f2e5fe83d2fe1884ef5fc6be6204|4]], [[https://git.kernel.org/linus/7298de9cd7255a783ba93533acbf1c2b0a9c582d|5]], [[https://git.kernel.org/linus/8b7138814f29933898ecd31dfc83e35a30ee69f5|6]], [[https://git.kernel.org/linus/a729b7f0bd5bf4919306556aed614438f5174537|7]], [[https://git.kernel.org/linus/0c850344d3882886f842bf0b50a9ff23001adb7e|8]] == Block I/O latency controller == This release adds a new controller that attempts to guarantee minimum I/O latency targets for cgroups. As long as everybody is meeting their latency target the controller doesn't do anything, but once a group starts missing its target it will attempt to maintain average IO latencies below the configured latency target, throttling anybody with a higher latency target than the victimized group. Latency targets need to be enabled in the new {{{io.latency}}} cgroup file, but experimentation is needed to determine the latency targets for a given hardware configuration. For more details see the [[https://git.kernel.org/linus/b351f0c76c3eb94c9ccfb68d0b23899a35e47f27|documentation]]. Recommended LWN article: [[https://lwn.net/Articles/758963/|The block I/O latency controller]] Code: [[https://git.kernel.org/linus/08e18eab0c579ad84399c1899c11899734854eb2|commit 1]], [[https://git.kernel.org/linus/c7c98fd37653955d3a17dd4f1fa67aba070096a9|2]], [[https://git.kernel.org/linus/903d23f0a354f226fa78f1c1c34b60aaf992e812|3]], [[https://git.kernel.org/linus/0d1e0c7cd5909d6c6aa0957179318e13fcca971a|4]], [[https://git.kernel.org/linus/0d3bd88d54f513723602b361dccfc71639f50779|5]], [[https://git.kernel.org/linus/d09d8df3a29403693d9d20cc34ed101f2c558e2b|6]], [[https://git.kernel.org/linus/d09d8df3a29403693d9d20cc34ed101f2c558e2b|7]], [[https://git.kernel.org/linus/2cf855837b89d92996cf264713f3bed2bf9b0b4f|8]], [[https://git.kernel.org/linus/2ecbf456352d0699f51b4c6d70ea5bf29766579c|9]], [[https://git.kernel.org/linus/c1c80384c8f47021a01a0cc42894a06bed2b801b|10]], [[https://git.kernel.org/linus/67b42d0bf7a8fd1ec0cf1acdc9550e688d7c8578|11]], [[https://git.kernel.org/linus/d70675121546c35feaceebf7ed9caed8716640f3|12]], [[https://git.kernel.org/linus/b351f0c76c3eb94c9ccfb68d0b23899a35e47f27|13]] == Preliminary Wi-Fi 6 (802.11ax) support == This release adds preliminary support in the wireless stack for the existing drafts of the future [[https://en.wikipedia.org/wiki/IEEE_802.11ax|802.11ax]] standard, also [[https://www.wi-fi.org/news-events/newsroom/wi-fi-alliance-introduces-wi-fi-6|known as Wi-Fi 6]]. Code: [[https://git.kernel.org/linus/95a28eeaf1491bcb8bf521bad4784683333705ee|commit 1]], [[https://git.kernel.org/linus/41cbb0f5a29592874355e4159489eb08337cd50e|2]], [[https://git.kernel.org/linus/c4cbaf7973a794839af080f13748335976cf3f3f|3]], [[https://git.kernel.org/linus/518ea3c54eb7e454b718a50aa35bc5ea7856aa20|4]] == New asynchronous I/O polling interface == After being merged and reverted in 4.18, this feature adds a simple one-shot poll through the io_submit(2) interface to poll for the readiness of file descriptors using the aio subsystem. It allows aio poll to work without any additional context switches, unlike epoll. To poll for a file descriptor the application should submit an iocb of type {{{IOCB_CMD_POLL}}}. It adds a {{{io_pgetevents(2)}}} system call, which is the {{{io_getevents(2)}}} equivalent of {{{ppoll(2)}}}/{{{pselect(2)}}} and allows to properly mix signals and aio completions (especially with {{{IOCB_CMD_POLL}}}). The API is based on patches that existed in RHAS2.1 and RHEL3, which means it already is supported by libaio. Recommended LWN article: [[https://lwn.net/Articles/743714/|A new kernel polling interface]] Code: [[https://git.kernel.org/linus/bfe4037e722ec672c9dafd5730d9132afeeb76e9|commit 1]], [[https://git.kernel.org/linus/e8693bcfa0b4a56268946f0756153d942cb66cf7|2]], [[https://git.kernel.org/linus/9018ccc453af063d16b3b6b5dfa2ad0635390371|3]], [[https://git.kernel.org/linus/7dda712818373d4d8ecc5dca2293664fcd3b0158|4]] == Overlayfs memory usage improvements == When users of overlayfs (eg. containers) change metadata on a file, overlayfs makes a copy of the entire file's cache for the upper layer. This means that some actions, eg. doing chown() on whole image directory tree, will increase memory usage considerably. This release allows to delay copy up of data: when file is on lower layer and only metadata is modified (except size), the kernel will only only copy up the metadata and continue to use the data from the lower file until file is opened for writing. Following the previous example, doing chown() on whole image directory tree won't trigger a copy of the file's data, containers will continue sharing the page cache. For instructions on how to turn on this feature, see the [[https://git.kernel.org/linus/d5791044d2e5749ef4de84161cec5532e2111540|documentation]]. This release also properly implements regular file operations for overlayfs, removing several hacks and allowing proper interaction of read-only open files with copy-up, possibility to implement fs modifying ioctls properly, and others. Overlayfs can now act as a POSIX compliant filesystem with some features turned on, for more details see the [[https://git.kernel.org/linus/0c31d675aad949e5dfecf7a32813514423e6c766|documentation]] Code copy up medata only: [[https://git.kernel.org/linus/44d5bf109a73f4162d97ab714770fdf76a8dc685|commit 1]], [[https://git.kernel.org/linus/bd64e57586d3722d2fc06093c3d7e3c4adb9e060|2]], [[https://git.kernel.org/linus/9cec54c83a8baba3099bb8b445a735b93ab9511f|3]], [[https://git.kernel.org/linus/d6eac039133b31f9db1c63d2e51b88df61d075cc|4]], [[https://git.kernel.org/linus/d5791044d2e5749ef4de84161cec5532e2111540|5]], [[https://git.kernel.org/linus/0c2888749363645d62cc48852d0af98d5ceef332|6]], [[https://git.kernel.org/linus/2002df85367ca69961d39020f56d3d727897be01|7]], [[https://git.kernel.org/linus/9d3dfea3d35a3235f0f1e2ce719bb4f0b696caa2|8]], [[https://git.kernel.org/linus/027065b726434d2a95a5cc516129be765e27ecf8|9]], [[https://git.kernel.org/linus/647d253fcd53fae185408b33ec5587a57cb3cc88|10]], [[https://git.kernel.org/linus/4f93b426ab3930952eca6c5c456c2223a3adcbf5|11]], [[https://git.kernel.org/linus/67d756c27ac4f4576dee313579724bd8711bc75e|12]], [[https://git.kernel.org/linus/2664bd0897c2889258472a1ee922ef9d4c5fa58f|13]], [[https://git.kernel.org/linus/4823d49c26eaf269cd2c2723bed8249aaed80795|14]], [[https://git.kernel.org/linus/b8a8824ca011050b590a6353067e722a24a591fb|15]], [[https://git.kernel.org/linus/2c3d73589adc6d3450890a6f793e5e8a1ae894e0|16]], [[https://git.kernel.org/linus/0618a816edab6cb46d6d456f2fdff6bb325a4c77|17]], [[https://git.kernel.org/linus/8c444d2a971fdccda670e874f12443627f028fbc|18]], [[https://git.kernel.org/linus/a00c2d59e914b8ec46f1637e2e283aa35583c455|19]], [[https://git.kernel.org/linus/0a2d0d3f2f291e3080721888a986ea52e43e1086|20]], [[https://git.kernel.org/linus/60124877b9ec4fa5a34ddeeedba473820888d4b2|21]], [[https://git.kernel.org/linus/7bb083837d1b5244a809ff1483408992c0e05ca6|22]], [[https://git.kernel.org/linus/4120fe64dce4f73d1a595253568d9f27674f2071|23]], [[https://git.kernel.org/linus/0b17c28af1b8814505fd4eafd96e6e7e05bba01d|24]], [[https://git.kernel.org/linus/935a074f48675374a655456ae75fe6be9e8c2388|25]], [[https://git.kernel.org/linus/997336f2c3053b74ec8c9d2d368ddd960f2fc8b6|26]], [[https://git.kernel.org/linus/989974c804574d250ac92d44e220081959ac8ac1|27]], [[https://git.kernel.org/linus/d1e6f6a94d6cefed2b6f7a222853ebcd2805b43b|28]] Code stack file operations: [[https://git.kernel.org/linus/d9854c87f0ed1a5f32fec24bb5b5fb426ad79c26|1]], [[https://git.kernel.org/linus/5812160eb50925d19c54be979c72d335fee17dbd|2]], [[https://git.kernel.org/linus/2ef66b8a03c02c4cef71bf1e8661317c7b9aa071|3]], [[https://git.kernel.org/linus/16914e6fc7e1748a8bd667753a92af5e685c445b|4]], [[https://git.kernel.org/linus/2a92e07edc5edef44bb7a0b8ede3154476dbb50a|5]], [[https://git.kernel.org/linus/46e5d0a3907ba489fda4f7b043439a3599184f91|6]], [[https://git.kernel.org/linus/4f3572954a9d4cbf992072713af284d990b65d87|7]], [[https://git.kernel.org/linus/e8c985bace1351c5f2d7a6f0d8ff3e677b58abb5|8]], [[https://git.kernel.org/linus/d1d04ef8572bc8c22265057bd3d5a79f223f8f52|8]], [[https://git.kernel.org/linus/f7c72396d0de8847495f0ccb5853c711a7f91271|9]], [[https://git.kernel.org/linus/dab5ca8fd9ddd3c0768e14bc1524bd3e7b8aa430|10]], [[https://git.kernel.org/linus/aab8848cee5eca1003fc146b35b0c3293830a660|11]], [[https://git.kernel.org/linus/9e142c4102db44c3c7a2656de8a1e2ddda2fae71|12]], [[https://git.kernel.org/linus/de30dfd629e2e07e2e9d672b2931bcd60f9a34c0|13]], [[https://git.kernel.org/linus/2f502839e85ab265f03f25f30d6463154aee5473|13]], [[https://git.kernel.org/linus/8ede205541ff05bd096749a9f00bde6d754b4e22|14]], [[https://git.kernel.org/linus/6742cee04353231015ddbe7e8b404ac9c1eb4473|15]], [[https://git.kernel.org/linus/d561f218564855f69791216882a2622af37e5776|16]], [[https://git.kernel.org/linus/88059de155d4db817a3a78ba899cb3b7f4de0fb0|17]], [[https://git.kernel.org/linus/0c31d675aad949e5dfecf7a32813514423e6c766|18]], [[https://git.kernel.org/linus/670c23248e15254e30990cbbe63056c0490190bc|19]] == New experimental EROFS file system == The new EROFS file system has been added in this release. It is a experimental project, under the staging directory, and still expects to make changes to the on-disk layout. EROFS stands for Enhanced Read-Only File System, and it is a lightweight read-only file system with a modern design (eg. page-sized blocks, inline xattrs/data, etc.) for scenarios which need high-performance read-only requirements, eg. firmwares in mobile phone or Livecds. It also provides VLE compression support, focusing on random read improvements, keeping relatively lower compression ratios, which is useful for high-performance devices with limited memory and ROM space. Code: [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/staging/erofs|source]] == Better protection in sticky directories (eg. /tmp) == This release tries to avoid unintentional writes to an attacker-controlled FIFO or regular files by disallowing open of FIFOs or regular files not owned by the user in world writable sticky directories, unless the owner is the same as that of the directory or the file is opened without the {{{O_CREAT}}} flag. The purpose is to make data spoofing attacks harder. This protection can be turned on and off separately for FIFOs ({{{protected_fifos}}}) and regular files ({{{protected_regular}}}) via sysctl, just like the already existing symlinks/hardlinks protection Code: [[https://git.kernel.org/linus/30aba6656f61ed44cba445a3c0d38b296fa9e8f5|commit]] == Intel Cache Pseudo-locking == This release adds support for an Intel-specific CPU feature. It allows a user to specify the amount of CPU cache space that an application can fill, it isolates that region of the CPU cache and 'locks' it. From that point on will only serve cache hits. The cache pseudo-locked memory is made accessible to user space where an application can map it into its virtual address space and thus have a region of memory with reduced average read latency. The locking is not perfect and gets totally screwed by WBINDV and similar mechanisms, but it provides a reasonable enhancement for certain types of latency sensitive applications. Documentation: [[https://git.kernel.org/linus/e17e733070d4ab312a35848ab248e85b78dcb3f4|Documentation/x86/intel_rdt_ui.txt]] Code: [[https://git.kernel.org/linus/32206ab36553be8714d9253ce33f4085681d369c|commit 1]], [[https://git.kernel.org/linus/cba1aab84fb815675038f9f932c1dd0a5519c63d|2]], [[https://git.kernel.org/linus/eb956a636f90bd0297309a7eae6db388ae5bfc43|3]], [[https://git.kernel.org/linus/472ef09b40c5802a2e014ae2503ad8619486f9e6|4]], [[https://git.kernel.org/linus/d48d7a57f7181b36be748ad8fb806e8de3104e89|5]], [[https://git.kernel.org/linus/0b9aa6562650f42da23c29814adc2318c135cef4|6]], [[https://git.kernel.org/linus/024d15be3855044faa8bddf829e3613961fd27ba|7]], [[https://git.kernel.org/linus/95f0b77efa5749f19e7acfedcb8521da4b13ed0e|8]], [[https://git.kernel.org/linus/414dd2b4732949ddc972c2592a13c799434249c6|9]], [[https://git.kernel.org/linus/49f7b4efa1101bbc143a960eff3a9c8f9d6f7358|10]], [[https://git.kernel.org/linus/9af4c0a6dc1a1abf5336f2c3f951444db6b71da9|11]], [[https://git.kernel.org/linus/7604df6e16ae0b4dba6553ae74abcf7280a512fb|12]], [[https://git.kernel.org/linus/9ab9aa15c3096000678891b61f7309c8729928e0|13]], [[https://git.kernel.org/linus/e651901187ab8bc8a0a969144da6ae0e2e59a148|14]], [[https://git.kernel.org/linus/d9b48c86eb380bb272d0ad8f5338d8dc941f3b32|15]], [[https://git.kernel.org/linus/e17e733070d4ab312a35848ab248e85b78dcb3f4|16]], [[https://git.kernel.org/linus/bb9fec69cb41380428d6b8dab3a303189a9b480a|17]], [[https://git.kernel.org/linus/21220bb199f7d65c8f0a63ac7d3209e40fbdd706|18]], [[https://git.kernel.org/linus/f7a6e3f6f5ffa4926818ea2b3e8994ecef00b84f|19]], [[https://git.kernel.org/linus/125db711e3629977b5e1f06fa066abe6366db294|20]], [[https://git.kernel.org/linus/c966dac8a5ede5d5f9b730512d8bdbcec307fe38|21]], [[https://git.kernel.org/linus/2a5d76a4fc6469ea9dd6f02fcd4dad3a129bc1c0|22]], [[https://git.kernel.org/linus/bbcee99b67c5a8cc4e8037d561be9ed293961fd3|23]], [[https://git.kernel.org/linus/e8140a2d13d429364f18ca41b1e4960708c3a40e|24]], [[https://git.kernel.org/linus/63657c1cdf89a37d3b69471ad4e5b55c77e86d3f|25]], [[https://git.kernel.org/linus/dfe9674b04ff6b819f9105650a008d164d81725e|26]], [[https://git.kernel.org/linus/17eafd076291ed23eeb17b28132fa33b0688bc57|27]], [[https://git.kernel.org/linus/72d505056604a305a4fcd8b268d2f6e979e17023|28]], [[https://git.kernel.org/linus/f2a177292bd052ce12ac453d2ceeb083fe07718a|29]], [[https://git.kernel.org/linus/e0bdfe8e36f3fbbdc91e70bf927f743ca23917b0|30]], [[https://git.kernel.org/linus/f4e80d67a527469245f391976d8665f934a16205|31]], [[https://git.kernel.org/linus/0af6a48da481109affc4ea8295034f69993a91ef|32]], [[https://git.kernel.org/linus/37707ec6cba6668f22a47016fdee612b0ff62fe9|33]], [[https://git.kernel.org/linus/443810fe6160542c78e24c66047edd7a3cc830c6|34]], [[https://git.kernel.org/linus/746e08590b864cf730d7bd23394e2d3fbb0f22b6|35]], [[https://git.kernel.org/linus/8a2fc0e1bc0cd856101927188884d7c370b62188|36]], [[https://git.kernel.org/linus/f3be1e7b2cf8bc096386a3588fc640b0db6b28d7|37]], [[https://git.kernel.org/linus/6fc0de37f663278af160e8e1f0c38b27e6c06206|38]] == Even more fixes for CPU security bugs == This release includes the usual round of patches to deal with the new and exciting CPU security bugs: * x86: Add protection against L1TF, aka L1 Terminal Fault, yet another speculative hardware engineering trainwreck. It's a hardware vulnerability which allows unprivileged speculative access to data which is available in the Level 1 Data Cache. For more details, read this LWN article: [[https://lwn.net/Articles/762570/|Meltdown strikes back: the L1 terminal fault vulnerability]]; and/or see [[https://www.kernel.org/doc/html/latest/admin-guide/l1tf.html|the documentation]] * x86: Add protection against userspace-userspace spectreRSB * x86: Support Enhanced IBRS on future Intel CPUs as the default Spectre V2 mitigation technique instead of retpoline for improved performance * Support page-table isolation protection (KPTI) for x86-32 * KVM Shadow Paging performance improvements to improve the performance of shadow paging when the guest kernel is using KPTI * Support for flushing the count cache on context switch on some POWERPC IBM CPUs (controlled by firmware), as a Spectre v2 mitigation * Many small patches across the entire kernel to fix the possible Spectre exploitations warned by GCC = Core (various) = * (FEATURED) Asynchronous I/O: implement {{{IOCB_CMD_POLL}}} [[https://git.kernel.org/linus/bfe4037e722ec672c9dafd5730d9132afeeb76e9|commit]], [[https://git.kernel.org/linus/e8693bcfa0b4a56268946f0756153d942cb66cf7|commit]], [[https://git.kernel.org/linus/9018ccc453af063d16b3b6b5dfa2ad0635390371|commit]], [[https://git.kernel.org/linus/7dda712818373d4d8ecc5dca2293664fcd3b0158|commit]] * Raise the minimum required gcc version to 4.6 [[https://git.kernel.org/linus/cafa0010cd51fb711fdcb50fc55f394c5f167a0a|commit]] * Provide a command line ({{{nosmt}}}) and a sysfs knob ({{{/sys/devices/system/cpu/smt/*}}}) to control Simultaneous Multi Threading [[https://git.kernel.org/linus/05736e4ac13c08a4a9b1ef2de26dd31a32cbee57|commit]] * Add an option for uncompressed kernel [[https://git.kernel.org/linus/f16466af385b985f8d56f3fc50146ab41ec0dd89|commit]] * Salted build ids to allow unique build ids [[https://git.kernel.org/linus/9afb719e7046c4f2462278862ab3db2961cc141c|commit]], [[https://git.kernel.org/linus/d623f60df03a1e44c823ed906ca8ddbd8d3a5983|commit]], [[https://git.kernel.org/linus/b399baaaf7522750eab0c2a6b9f0dc511d878dd6|commit]], [[https://git.kernel.org/linus/efa75c4923be7fedc00b040116657101f20b3678|commit]] * Set {{{$HOSTCFLAGS}}} and {{{$HOSTLDFLAGS}}} variables from the environment [[https://git.kernel.org/linus/96f14fe738b69dd97a33efe3cc8ab330af5fd1f1|commit]], [[https://git.kernel.org/linus/10844aebf44851a981ddaa714351ae61c4b29103|commit]], [[https://git.kernel.org/linus/b90a368000abe5e015e0b045ca2ff7c2173b94c0|commit]], [[https://git.kernel.org/linus/8377bd2b9ee1be35b39b5523f640a2b75ddd7c4e|commit]], [[https://git.kernel.org/linus/f92d19e0ef9bbbb2984845682e740934ad45473b|commit]] * locking: Implement an algorithm choice for Wound-Wait mutexes [[https://git.kernel.org/linus/08295b3b5beec9aac0f7a9db86f0fc3792039da3|commit]] * task scheduler: Remove unused {{{sched_time_avg_ms}}} sysctl [[https://git.kernel.org/linus/5fd778915ad29184a5ff8eb82d1118f6916b79e4|commit]] * tools/vm/page-types.c: add support for idle page tracking [[https://git.kernel.org/linus/59ae96ffc3a6731c3b85f9925e07e893d392e814|commit]] and include shared map counts [[https://git.kernel.org/linus/7f1d23e607185e07e5df2a806a989c24627aef41|commit]] * usercopy: Enabling HARDENED_USERCOPY may cause measurable regressions in networking performance: up to 8% under UDP flood. Allow to disable it at runtime with {{{hardened_usercopy=off}}} option [[https://git.kernel.org/linus/b5cb15d9372abc9adc4e844c0c1bf594ca6a7695|commit]] * Enable early printing of hashed pointers. Aid debugging early in the boot sequence for machines that do not have a hw RNG by adding the command line option {{{debug_boot_weak_hash}}} [[https://git.kernel.org/linus/8ddd6efa56c3fe23df9fe4cf5e2b49cc55416ef4|commit]], [[https://git.kernel.org/linus/753d433b586d1d43c487e3d660f5778c7c8d58ea|commit]], [[https://git.kernel.org/linus/1c4facb846c7f863bc65483394e80acdbacf671b|commit]], [[https://git.kernel.org/linus/3672476edaa0660eb833f54fa9edeb505417b75c|commit]] * virtual terminal: The vt code translates UTF-8 strings into glyph index values and stores those glyph values in the screen buffer. Because there can only be at most 512 glyphs, it is impossible to represent most unicode characters. This release introduces unicode screen support to the core console code with {{{/dev/vcs*}}} as a first user [[https://git.kernel.org/linus/d8ae7242718738ee1bf9bfdd632d2a4b150fdd26|commit]], [[https://git.kernel.org/linus/d21b0be246bf3bbf569e6e239f56abb529c7154e|commit]], [[https://git.kernel.org/linus/708d0bff9121506db08adb73845a3c70312fadf3|commit]] * proc: show fd locks taken by processes from another pidns [[https://git.kernel.org/linus/1cf8e5de4055f85383405a21a0a7c3c4348bf2ed|commit]] * Power management: Add a new framework for idle injection, to be used by all of the idle injection code in the kernel in the future [[https://git.kernel.org/linus/88763a5cf80ca59a7c3bea32681ce8f697d9995f|commit]] * Allow deferred driver probing to timeout [[https://git.kernel.org/linus/25b4e70dcce92168eab4d8113817bb4dd130ebd2|commit]], [[https://git.kernel.org/linus/7930eb919feb59b8c799cb3085d0e9f7b5ae34d1|commit]], [[https://git.kernel.org/linus/d19c5e79d46efdf89306be99f3c8824cf58e35f6|commit]], [[https://git.kernel.org/linus/78f307be3e0bc85f25dc05baa60f7435a88c2abf|commit]], [[https://git.kernel.org/linus/ac6bbf0cdf4206c517ac9789814c23e372ebce4d|commit]], [[https://git.kernel.org/linus/e01afc32502555beb2057ddd74401be38475d851|commit]] * driver core: Add a debugfs entry to show deferred devices [[https://git.kernel.org/linus/28af109a57d14211e5e8ba1551f00428be2fd508|commit]] = File systems = * EROFS * (FEATURED) Add EROFS (Enhanced Read-Only File System), a lightweight read-only file system with modern designs for scenarios which need high-performance read-only requirements, eg. firmwares in mobile phone or LIVECDs [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/staging/erofs|source]] * BTRFS * Allow defrag on opened read-only files that have rw permissions; similar to what dedupe will allow on such files [[https://git.kernel.org/linus/616d374efa23cb699074ea02b301254ad64d224a|commit]] * tree checker: more checks for: block group items, essential trees [[https://git.kernel.org/linus/ba480dd4db9f1798541eb2d1c423fc95feee8d36|commit]], [[https://git.kernel.org/linus/fce466eab7ac6baa9d2dcd88abcf945be3d4a089|commit]] * Remove V0 extent support [[https://git.kernel.org/linus/a79865c680d81220a1355cd13098e75227dc2994|commit]] * XFS * Remove deprecated barrier/nobarrier mount [[https://git.kernel.org/linus/1c02d502c20809a2a5f71ec16a930a61ed779b81|commit]] * CIFS * Add support for statfs for smb3.1.1 posix extensions [[https://git.kernel.org/linus/2d304217832ea720337e7a6aa012aa828a77f9d4|commit]] * Allow previous versions to be mounted with {{{snapshot=}}} mount parameter [[https://git.kernel.org/linus/cdeaf9d04a5a0f51220d2f025385c553220bfb5c|commit]] * Display stats counters for number of slow commands [[https://git.kernel.org/linus/468d677954c0d94fec59275d91222257fe8b4416|commit]] * Allow disabling insecure dialects in the configuration [[https://git.kernel.org/linus/7420451f6a109f7f8f1bf283f34d08eba3259fb3|commit]] * EXT4 * Add 64-bit timestamp support to ext4's superblock fields [[https://git.kernel.org/linus/a4d2aadca184ece182418950d45ba4ffc7b652d2|commit]], [[https://git.kernel.org/linus/af123b3718592a66a24716ed4724dc214220492b|commit]], [[https://git.kernel.org/linus/5ffff834322281f550b10c958fd9dd85679b8dbb|commit]], [[https://git.kernel.org/linus/7b62b293200ffaba5b281668ba7102cb4209774f|commit]], [[https://git.kernel.org/linus/b42d1d6b5b789c41dacbe2bc192c7b359d109d7b|commit]], [[https://git.kernel.org/linus/6a0678a79bb3a4e5fc1b680e7afc78727e21aff3|commit]] * F2FS * Add {{{fsync_mode=nobarrier}}} mount option which gives an option to user where it skips issuing cache flush commands to underlying flash storage [[https://git.kernel.org/linus/dc1328027b53586cc6b668c6654f9482e505699c|commit]] * Enable {{{-o discard}}} by default [[https://git.kernel.org/linus/a39e5365835edcdb12140d423573c2b8ed39ebfb|commit]] * Introduces a new mount option {{{fault_type}}} to assist old {{{fault_injection}}} [[https://git.kernel.org/linus/d494500a70434223bc35f862fab0679b13bea23d|commit]] * Support discard submission error injection [[https://git.kernel.org/linus/b83dcfe67142ea9f4bfaa1e9e21504be9e3c1bf7|commit]] * FAT * Add {{{FITRIM}}} ioctl for FAT file system [[https://git.kernel.org/linus/f663b5b38fffeb31841f8bfaf0ef87a445b0ffee|commit]] * NFS * Add support for asynchronous server-side COPY operations [[https://git.kernel.org/linus/5178a125f6d5fb0720315ea4f7cca642fb936031|commit]], [[https://git.kernel.org/linus/cb95deea0b4aa5c7c7423f4e075a3ddcd59e710b|commit]], [[https://git.kernel.org/linus/67aa7444c4beb40aafedd8d2c60bbcc54987adda|commit]], [[https://git.kernel.org/linus/62164f317972fcd36590578888f33a1994dda519|commit]], [[https://git.kernel.org/linus/bc0c9079b48ddcf1f8a6e1aaa277288b263c7