#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 5.1 development cycle Linux 5.1 has not been released. Meanwhile, you can read about the features it will include here: * LWN's merge window [[https://lwn.net/Articles/782511/|part 1]], [[https://lwn.net/Articles/783084/|part 2]] Summary: TBD <> = Coolest features = = Core (various) = = File systems = = Memory management = * Allow excluding balloon pages from kdump crash dumps to reduce their size. Also exclude them from hibernation image. [[https://git.kernel.org/linus/4d3467e171f8a8ef8f1dd205769cf2f21fbc8e1e|commit]] [[https://git.kernel.org/linus/ca215086b14b89a0e70fc211314944aa6ce50020|commit]] [[https://git.kernel.org/linus/e04b742f74c236202b7a505c2688068969d00e65|commit]] [[https://git.kernel.org/linus/77c4adf6a6df6f8f39807eaed48eb73d0eb4261e|commit]] [[https://git.kernel.org/linus/fae42c4d522b9b9c9de21a5cade162f2e7eaf644|commit]] [[https://git.kernel.org/linus/8165540c7fbc4a638d53907d2d51de6751f4a8ab|commit]] [[https://git.kernel.org/linus/5b56db37218e6503906c6057c177a84f0a0ba551|commit]] [[https://git.kernel.org/linus/abd02ac616e32d818a0478e68924beac8ba5e5d8|commit]] * Various vmalloc() fixes and a new vmalloc test module and script. [[https://git.kernel.org/linus/5a82ac715d1fd4f117d7b7e76664c0ea3d09e5e7|commit]] [[https://git.kernel.org/linus/401592d2e095947344e10ec0623adbcd58934dd4|commit]] [[https://git.kernel.org/linus/c67dc6247576250a9c9f09adcabad0385a1e7d73|commit]] [[https://git.kernel.org/linus/bc84c53525b4199317df1dab414263a68ba4b6f6|commit]] [[https://git.kernel.org/linus/153178edc7819b5c550e5d498d50697ff9d5f223|commit]] [[https://git.kernel.org/linus/3f21a6b7ef207892841feecc3b9216e1a29c745f|commit]] [[https://git.kernel.org/linus/a05ef00c97900f69f6e69d88e8a657b7a4ef8cbd|commit]] [[https://git.kernel.org/linus/afd07389d3f4933c7f7817a92fb5e053d59a3182|commit]] * On arm64, enable HugeTLB migration support for all supported huge page sizes at all levels including contiguous bit implementation. [[https://git.kernel.org/linus/7ed2c31dabdeb3ee6abe8ff5aac7287821a50cba|commit]] [[https://git.kernel.org/linus/9b553bf5eb99dd1b2d8ae23136da46da5c205dfd|commit]] [[https://git.kernel.org/linus/e693de186414ae66f2a316ff9befcd2b7a6d07b6|commit]] [[https://git.kernel.org/linus/4a03a058d1fe7558faffab1a831dde508501e85c|commit]] [[https://git.kernel.org/linus/5480280d3f2d11d47f9be59d49b20a8d7d1b33e8|commit]] * Increase success rates and reduce latency of compaction (physical memory defragmentation), reducing the number of scanned pages for migration by 65%, and free pages for migration targets by 97%, while improving transparent hugepage allocation success rates significantly. [[https://git.kernel.org/linus/c5fbd937b603885f1db3280ca212ed28add895bc|commit]] [[https://git.kernel.org/linus/c5943b9c5312d4fa23175ff146e901b865e4a60a|commit]] [[https://git.kernel.org/linus/566e54e113eb2b669f9300db2c2df400cbb06646|commit]] [[https://git.kernel.org/linus/40cacbcb324036233a927418441323459d28d19b|commit]] [[https://git.kernel.org/linus/4469ab98477b290f6728b79f8d225d9d88ce16e3|commit]] [[https://git.kernel.org/linus/806031bb5ec36ed879d64249d5a5cf9c6657f89d|commit]] [[https://git.kernel.org/linus/efe771c7603bc524425070d651e70e9c56c57f28|commit]] [[https://git.kernel.org/linus/fd1444b2729289ea3ef6b6096be604f8983e9f9f|commit]] [[https://git.kernel.org/linus/70b44595eafe9c7c235f076d653a268ca1ab9fdb|commit]] [[https://git.kernel.org/linus/e380bebe4771548df9bece8b7ad9dab07d9158a6|commit]] [[https://git.kernel.org/linus/5a811889de10f1ebb8e03a2744be006e909c405c|commit]] [[https://git.kernel.org/linus/804d3121ba5f03af0ab225e2f688ee3ee669c0d2|commit]] [[https://git.kernel.org/linus/cb2dcaf023c2cf12d45289c82d4030d33f7df73e|commit]] [[https://git.kernel.org/linus/9bebefd59084af7c75b66eeee241bf0777f39b88|commit]] [[https://git.kernel.org/linus/8854c55f54bcc104e3adae42abe16948286ec75c|commit]] [[https://git.kernel.org/linus/cb810ad294d3c3a454e51b12fbb483bbb7096b98|commit]] [[https://git.kernel.org/linus/cf66f0700c8f1d7c7c1c1d7e5e846a1836814601|commit]] [[https://git.kernel.org/linus/d097a6f63522547dfc7c75c7084a05b6a7f9e838|commit]] [[https://git.kernel.org/linus/dbe2d4e4f12e07c6a2215e3603a5f77056323081|commit]] [[https://git.kernel.org/linus/4fca9730c51d51f643f2a3f8f10ebd718349c80f|commit]] [[https://git.kernel.org/linus/e332f741a8dd1ec9a6dc8aa997296ecbfe64323e|commit]] [[https://git.kernel.org/linus/5e1f0f098b4649fad53011246bcaeff011ffdf5d|commit]] * Prevent SLAB and other pages with special type to be mapped into userspace, for improved security. [[https://git.kernel.org/linus/2d432cb7091e99881af803cdd67a31969b863005|commit]] [[https://git.kernel.org/linus/0ee930e6cafa048c1925893d0ca89918b2814f2c|commit]] * Remove the ancient OOM killer heuristic that preferred to kill children of the "worst" process rather than the process itself (see the commit to know why). [[https://git.kernel.org/linus/bbbe48029720d2c6b6733f78d02571a281511adb|commit]] * Shuffle GFP flags so that common combinations (e.g. GFP_KERNEL) are tightly packed, which allows arm to emit more efficient instruction stream, saving about 0.1% [[https://git.kernel.org/linus/d71e53cee7c2e553b85c572e76da778a93d32135|commit]] * Algorithmic complexity of swapoff operation is reduced from quadratic to linear, reducing (with 6GB data in swap in a VM) the swapoff operation from 8 to 3 minutes and CPU utilization from 80% to 5% [[https://git.kernel.org/linus/c5bf121e4350a933bd431385e6fcb72a898ecc68|commit]] [[https://git.kernel.org/linus/b56a2d8af9147a4efe4011b60d93779c0461ca97|commit]] * Cleanup and better documentation of how the PG_reserved page flag is used. [[https://git.kernel.org/linus/750b317f853899e2e0ed786c117935501c742dc8|commit]] [[https://git.kernel.org/linus/446d29645b7d2411a502885fc1cbd1746bcf80be|commit]] [[https://git.kernel.org/linus/f55b74170b6aabc79af8c813b5068d3014e68ef1|commit]] [[https://git.kernel.org/linus/795c230604cb78ee927ca3904ec299b777b5f6c9|commit]] [[https://git.kernel.org/linus/5ffb90b39334c857ce365cb48fbc7486fb817b45|commit]] [[https://git.kernel.org/linus/aee494424414aa6f511bb837624557e9d3b84823|commit]] [[https://git.kernel.org/linus/d9fa9d951779eb8110879f796434876a58321ae9|commit]] [[https://git.kernel.org/linus/731351d1bd3211101b4de8975540e273bcc99838|commit]] [[https://git.kernel.org/linus/6e2e07cd35f6f72d1950453b170f6bfb6c668c46|commit]] * Migrate longterm-pinned pages from CMA regions, and compound pages during mm_iommu_do_alloc() on ppc64, reducing the likelihood of CMA allocation failures. [[https://git.kernel.org/linus/d7fefcc8de9147cc37d0c00df12e7ea4f77999b5|commit]] [[https://git.kernel.org/linus/9a4e9f3b2d7393d50256762c21e7466b4b6b1c9c|commit]] [[https://git.kernel.org/linus/678e174c4c16a940ecfd94e52b7bad73062507f0|commit]] [[https://git.kernel.org/linus/7f18825174203526a47c127c12a50f897ee0b511|commit]] * Add an F_SEAL_FUTURE_WRITE seal to memfd as the part of the effort migrate Android use of ashmem to memfd. [[https://git.kernel.org/linus/ab3948f58ff841e51feb845720624665ef5b7ef3|commit]] [[https://git.kernel.org/linus/544029862cbb1d7903e19f2e58f48d4884e1201b|commit]] * Mike Rapoport becomes the maintainer of memblock allocator [[https://git.kernel.org/linus/2367fab5b397bdd6cbba384e073a2e834b94bc36|commit]] and simplifies some of the early memory allocations by replacing usage of older memblock APIs with newer and shinier ones.[ [https://git.kernel.org/linus/f806714f7048715cc18f16ebe26a761e09b2f210|commit]] [[https://git.kernel.org/linus/3e5e79f240425d93b6c21409c82cbc3d5c2cb71b|commit]] [[https://git.kernel.org/linus/47f1e926aeb25f0ee3d351cb21bb0b630941ce46|commit]] [[https://git.kernel.org/linus/1e8ffd50fd201d05b3de97858ce6868cf774b4a8|commit]] [[https://git.kernel.org/linus/b63a07d69d404435125e77286620891ef8f9d719|commit]] [[https://git.kernel.org/linus/c2938eeb8888f0af8862ca1369e89edf9bfc47f3|commit]] * In mremap() an unfortunate corner case is fixed where (if the number of mappings of a process approaches the maximum limit) mremap() can fail with ENOMEM but only after performing some destructive unmap actions. [[https://git.kernel.org/linus/ea2c3f6f5545610ed0bd8afa8a05355b49d817af|commit]] * Some improvements and, importantly, tests were added for VM related fiels found in /proc/*/maps and related files. [[https://git.kernel.org/linus/5713f35c0575a1137b705e13d10f8ee58f2ec7e8|commit]] [[https://git.kernel.org/linus/08b55775133b77acc9975ad772b41813cbfea674|commit]] [[https://git.kernel.org/linus/e483b0208784146864a2c195e316230647e9d297|commit]] [[https://git.kernel.org/linus/332e0e804d64894cf32db363e7f14c64a6ce8061|commit]] * A new vm_fault_t type is introduced to detect cases (via sparse) where a page fault handler mistakenly returns an error code instead of VM_FAULT_* code [[https://git.kernel.org/linus/3d3539018d2cbd12e5af4a132636ee7fd8d43ef0|commit]]