29544
Comment:
|
880
Linux 5.4 released
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
Comprehensible changelog of the linux kernel, inspired by [http://wiki.dragonflybsd.org/index.php/DragonFly_Status Dragonfly's status]. Other places to get news about the linux kernel are [http://www.kernel-traffic.org Kernel traffic], [http://lwn.net/Kernel/ LWN kernel status], [http://lwn.net/Articles/driver-porting/ LWN driver porting guide] and [http://lwn.net/Articles/2.6-kernel-api/ LWN list of API changes in 2.6] - many articles here link to LWN and much of the 2.6.x changelog was restored from them (you may be be interested in subscribing so Jonathan can keep up the good work ;) ). Before adding things here look at the RULES section at the end of the page!! | #pragma keywords Linux, Kernel, Operative System, Linus Torvalds, Open Source, drivers, filesystems, network, memory management, scheduler, preemtion, locking #pragma description Summary of the changes and new features merged in the Linux Kernel during the 2.6.x and 3.x development Changes done in each Linux kernel release. Other places to get news about the Linux kernel are [[http://lwn.net/Kernel/|LWN kernel status]], [[http://www.h-online.com/open/features/|H-Online]], or the Linux Kernel mailing list (there is a web interface in [[http://www.lkml.org|www.lkml.org]]). List of changes of older releases can be found at LinuxVersions. If you're going to add something here look first at LinuxChangesRules! |
Line 3: | Line 5: |
This page tracks the current stable and development releases. Changes made to older 2.6.x releases can be found in the Linux26Changes page | You can discuss the latest Linux kernel changes on the [[http://forum.kernelnewbies.org/list.php?4|New Linux Kernel Features Forum]]. |
Line 5: | Line 7: |
===== 2.6.15 ===== * '''STILL NOT RELEASED!''' * VFS changes: The "shared subtree" patches have been merged. Consider the following situation: a process wants to clone its own namespace, but still wants to access the CD that got mounted recently. Shared subtree semantics provide the necessary mechanism to accomplish the above. It provides the necessary building blocks for features like per-user-namespace and versioned filesystem. [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/sharedsubtree.txt Documentation], original [http://marc.theaimsgroup.com/?l=linux-fsdevel&m=110565591630267&w=2 Alexander Viro's RFC]. Patches: * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=07b20889e3052c7e77d6a6a54e7e83446eb1ba8 beginning of the shared-subtree proper]: A private mount does not forward or receive propagation. This patch provides user the ability to convert any mount to private * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=03e06e68ff76294e53ffa898cb844d2a997b043e introduce shared mounts]: This creates shared mounts. A shared mount when bind-mounted to some mountpoint, propagates mount/umount events to each other. All the shared mounts that propagate events to each other belong to the same peer-group. * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a58b0eb8e64b78d9315a5491955e78b1391d42e5 introduce slave mounts]: A slave mount always has a master mount from which it receives mount/umount events. Unlike shared mount the event propagation does not flow from the slave mount to the master. * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5afe00221389998a25d611dc7941c06580c29eb6 handling of shared mounts]: This makes bind, rbind, move, clone namespace and umount operations aware of the semantics of slave mount * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b90fa9ae8f51f098ee480bbaabd6867992e9fc58 shared mount handling: bind and rbind]: Implement handling of MS_BIND in presense of shared mounts * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9676f0c6389b62bd6b24d77d4b3abdbcfa32d0f2 unbindable mounts]: An unbindable mount does not forward or receive propagation. Bind semantics: It is invalid to bind mount an unbindable mount. Move semantics: It is invalid to move an unbindable mount under shared mount. Clone-namespace semantics: If a mount is unbindable in the parent namespace, the corresponding cloned mount in the child namespace becomes unbindable too. Note: there is subtle difference, unbindable mounts cannot be bind mounted but can be cloned during clone-namespace. * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2144440327fa01b2f3f65e355120a78211685702 shared mount handling: move]: Implement handling of mount --move in presense of shared mounts * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a05964f3917c7c55368c229d7985f8e7c9977e97 shared mount handling: umount]: An unmount of a mount creates a umount event on the parent. If the parent is a shared mount, it gets propagated to all mounts in the peer group * Page table scalability improvements: Currently, a single page table lock is used to protect all operations on an address space's page tables. This has been detected to cause scalability problems in largue multiprocessor systems ej: 512-cpu SGI altix, specially in heavily multithreaded workloads (threads of a same process share the same address space and hence the same page table lock). With this patch, a separate spinlock per page-table page is used, to guard the page table entries in that page. Splitting the lock is not quite for free: another cacheline access. So for now enable it by config for machines with 4 or more CPUs. While this (and many other scalability changes) may look high-end oriented now, remember that cheap multi-core desktops CPUs are there. [http://lwn.net/Articles/157151/ (LWN article)] [http://marc.theaimsgroup.com/?l=linux-kernel&m=112603203327134&w=2 (benchmark vs SGI's "reduced locking by using atomic page table operations" non-merged approach)] [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4c21e2f2441dc5fbb957b030333f5a3f2d02dea7 (commit)] * .text page fault SMP scalability optimization: This fixes a case where large systems wouldn't scale well while faulting in the .text. The reason was a useless overwrite of the same pte from all cpu [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1a44e149084d772a1bcf4cdbdde8a013a8a1cfde (commit)] * Swaptoken tuning: It turns out that the original swap token implementation, by Song Jiang, only enforced the swap token while the task holding the token is handling a page fault, this patch approximates that, like the page fault code does. It has the effect of automatically, and gradually, disabling the enforcement of the swap token when there is little or no paging going on, and "turning up" the intensity of the swap token code the more the task holding the token is thrashing [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fcdae29aa7a5c79f245110f6680afdc1858d3626 (commit)] * Demand faulting for huge pages [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4c887265977213985091476be40ab11dfdcb4caf (commit)] * Add generic memory add/remove and supporting functions for memory hotplug [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3947be1969a9ce455ec30f60ef51efb10e4323d1 (commit)] * "Cooperating processes" for the anticipatory I/O scheduler: Introduce the notion of cooperating processes (those that submit requests close to one another), and use these statistics to make better choices about whether or not to do anticipatory waiting [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f5b3db0017f8415301f3427b30263186e8478c3f (commit)] * Generic dispatch queue: Implements generic dispatch queue which can replace all dispatch queues implemented by each iosched [http://marc.theaimsgroup.com/?l=linux-kernel&m=112238633622498&w=2 (mailing list)] [http://lwn.net/Articles/157208/ (LWN article)] [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8922e16cf6269e668123acb1ae1fdc62b7a3a4fc (commit)] * Reimplement elevator online switching code [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cb98fc8bb9c141009e2bda99c0db39d387e142cf (commit)] * IPv4/IPv6: UFO (UDP Fragmentation Offload) Scatter-gather approach: UFO is a feature wherein the Linux kernel network stack will offload the IP fragmentation functionality of large UDP datagram to hardware. This will reduce the overhead of stack in fragmenting the large UDP datagram to MTU sized packets [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e89e9cf539a28df7d0eb1d0a545368e9920b34ac (commit)] * PPP MPPE encryption module, it implements the Microsoft Point-to-Point Encryption method as a PPP compressor/decompressor. This is necessary for Linux clients and servers to interoperate with Microsoft Point-to-Point Tunneling Protocol (PPTP) servers (either Microsoft PPTP servers or the poptop project) which use MPPE to encrypt data when creating a VPN [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b3f9b92a6ec1a9a5e4b4b36e484f2f62cc73277c (commit)] * IPV6: RFC3484 compliant source address selection [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=072047e4de3800905e09d0f8ef0e1cc4e91a601e (commit)] * make /proc/mounts pollable [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5addc5dd8836aa061f6efc4a0d9ba6323726297a (commit)] * ppc64: support 64k pages. Adds a new CONFIG_PPC_64K_PAGES which, when enabled, changes the kernel base page size to 64K. The resulting kernel still boots on any hardware. On current machines with 4K pages support only, the kernel will maintain 16 "subpages" for each 64K page transparently [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3c726f8dee6f55e96475574e9f645327e461884c (commit)] * ppc64: CPU freq support using 970FX powertune facility for iMac G5 and SMU based single CPU desktop [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4350147a816b9c5b40fa59e4fa23f17490630b79 (commit)] * ppc64: Adds the ability to the SMU driver to recover missing calibration partitions from the SMU chip itself. It also adds some dynamic mecanism to /proc/device-tree so that new properties are visible to userland [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=183d020258dfd08178a05c6793dae10409db8abb (commit)] * ppc64: This adds a new thermal control framework for Powermac, along with the implementation for Powermac8,1, Powermac8,2 (iMac G5 rev 1 and 2), and Powermac9,1 (latest single CPU desktop) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=75722d3992f57375c0cc029dcceb2334a45ceff1 (commit)] * Add the infrastructure to support hotplug CPU on ARM [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a054a811597a17ffbe92bc4db04a4dc2f1b1ea55 (commit)], support for local timers [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=37ee16ae93a3e4ae7dd51beb81d249f5f12a55c2 (commit)] and optimized SHA1 implementation [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c09f98271f685af349d3f0199360f1c0e85550e0 (commit)] * x86 hot plug CPU support of physical add of new processors (hotplug add/remove of already existing CPUs was already supported) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9f40a72a7e819789f66910c8cd60aab005cdb413 (commit)] * Support for shared HPET interrupts: The driver previously acknowledged interrupts for both edge and level interrupts, but didn't actually allow a shared interrupt in the latter case [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0d29086177aaa1e7d14e6ebb7fc067b3ca6d5c11 (commit)] * Add LSM hooks for key management facilities (see link) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=29db9190634067c5a328ee5fcc2890251b836b4b (commit)] * RCU torture-testing kernel module: This adds a tristate CONFIG_RCU_TORTURE_TEST, which enables an intense torture test of the RCU infratructure. This is needed for testing due to the continued changes to the RCU infrastructure [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a241ec65aeac3d69a08a7b153cccbdb7ea35063f (commit)] * Driver Core: add the ability for class_device structures to be nested: Allows struct class_device to be nested, so that another struct class_device can be the parent of a new one, instead of only having the struct class be the parent [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=51d172d5f3a193e4b8f76179b2e55d7a36b94117 (commit)] * Add vmalloc_node(size, node) (allocate necessary memory on the specified node) and get_vm_area_node(size, flags, node) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=930fc45a49ddebe7555cc5c837d82b9c27e65ff4 (commit)] * Process Events Connector: It reports fork, exec, id change, and exit events for all processes to userspace. Applications that may find these events useful include accounting/auditing (e.g. ELSA), system activity monitoring (e.g. top), security, and resource management (e.g. CKRM) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9f46080c41d5f3f7c00b4e169ba4b0b2865258bf (commit)] * Add sysfs support for ide tape [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d5dee80ad69439ad8dccf8fa4d7fed0068aec9cf (commit)] * Add "revision" support for having multiple revisions for each match/target in arp_tables and ip6_tables [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6b7d31fcdda5938e5d3f1f8b0922cc25aa200dfc (commit)] * Support for the Artemis and ATIK astronomical based USB CCD cameras [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c9c7746dd333c12f482af2f1e63ea7eafc7cd529 (commit)] * USB: delete the bluetty driver [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a6c82600d4058346ea6fd801bc21d7abcc1350d8 (commit)] * Nokia 7600/6230(i)/6170/66x0 DKU2 USB driver [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=50260b69bbec383058875de26dbde28b1a6f8d00 (commit)] * Nvidia Geforce 7800 series (7800, 7800 GTX, 7800 GO and 7800 GTX GO cards) framebuffer support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7015faa7df829876a0f931cd18aa6d7c24a1b581 (commit)], Mystique AGP support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=63921fbfbd87ec745e65d2e9aecdfdc9a4ce73f2 (commit)], add partial support for GMA900 within the i915GM chipset [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3a59026ba111d85b1a86af0f1c4e5a8ef1242d82 (commit)] * MPC8xx PCMCIA support (PowerPC 8xx series PCMCIA controller) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=de957c89b7dadb3147e885d7b6eb9db73d0eea57 (commit)] * Adds a RapidIO subsystem to the kernel. RIO is a switched fabric interconnect used in higher-end embedded applications [http://www.rapidio.org http://www.rapidio.org] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=394b701ce4fbfde919a9bcbf84cb4820a7c6d47c (commit)] * Support for SA1100 Jornada flash device support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=183e1a349466a1b90430a58f3efad25a3e555cb2 (commit)] * MIPS updates: resurrect Cobalt support for 2.6 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c4ed38a0c6e2e5c4906296758f816ee71373792f (commit)], Base Au1200 support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e3ad1c23ba72214669b364c6fa304531dc768c3e (commit)], support for BCM1480 family of chips [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f137e463b50aadba91bd116f99c59ccb9c15a12f (commit)] * Add support for the Sharp SL-6000x (Tosa) series of PDAs [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8459c159f7de832eaf888398d2abf466c388dfa6 (commit)] and support MMC, IRDA and UDC, also add a platform device for the keyboard driver [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a93876c16275376c4f9f1630ce24036d329fa7a0 (commit)] and add support for sharp zaurus SL-5500 touchscreen [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1753298947afe5eb56da755bc057f1868f345ec1 (commit)] and its PCMCIA slot [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=77bb86a1b9f8b872d8efc33c4f4359f809220252 (commit)] * Superhyway support for SH4-202 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d5cb9783536a41df9f9cba5b0a1d78047ed787f7 (commit)] * Add support for the AMCC PowerPC 440SPe SoC, including PCI Express in root port mode [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b0f7b8bc57ee90138a7c429951457027a90c326f (commit)] * SHM_NORESERVE flags for shmget(): Similar to MAP_NORESERVE for shared memory segments. This is mainly to avoid abuse of OVERCOMMIT_ALWAYS and this flag is ignored for OVERCOMMIT_NEVER [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bf8f972d3a1daf969cf44f64cc36d53bfd76441f (commit)] ===== 2.6.14 ===== * Released October 27, 2005 [http://kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.14 changelog] * Numa-aware slab allocator: It creates slabs on multiple nodes and manages slabs in such a way that locality of allocations is optimized. Each node has its own list of partial, free and full slabs. All object allocations for a node occur from node specific slab lists [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e498be7dafd72fd68848c1eef1575aa7c5d658df (commit - benchmarks)] * Lazy page table copies in fork() for VMAs without anonymous pages (the ones with anonymous pages are still copied): Defer copying of ptes until fault time when it is possible to reconstruct the pte from backing store, speeding up fork() greatly specially for processes using lots of shared memory [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d992895ba2b27cf5adf1ba0ad6d27662adc54c5e (commit)] * Add /proc/$PID/smaps: This file will shows how much memory is resident in each mapping. Useful for people who want to perform memory consumption analysis [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e070ad49f31155d872d8e96cab2142840993e3c0 (commit)] * Add /proc/$PID/numa_maps: This file will show on which nodes pages reside [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6e21c8f145f5052c1c2fb4a4b41bee01c848159b (commit)] * Lock-free file descriptor look-up [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ab2af1f5005069321c5d130f09cce577b03f43ef (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b835996f628eadb55c5fb222ba46fe9395bf73c7 (commit)] * Four-level page table support for the ppc64 architecture: extends the usable user address range to 44 bits (16T). [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e28f7faf05159f1cfd564596f5e6178edba6bd49 (commit)] * Support hotplug cpu on 32-bit SMP powermacs: When a cpu is off-lined, it is put into sleep mode with interrupts disabled. It can be on-lined again by asserting its soft-reset pin, which is connected to a GPIO pin [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=31139971b3dc9fbb2e8a8572fb81e6e8470f363a (commit)] * Add TASK_NONINTERACTIVE task state bit to the cpu scheduler: It can be used by blocking points to mark the task's wait as "non-interactive". This does not mean the task will be considered a CPU-hog - the wait will simply not have an effect on the waiting task's priority - positive or negative alike [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d79fc0fc6645b0cf5cd980da76942ca6d6300fa4 (commit)] * [http://www.ietf.org/rfc/rfc2637.txt PPTP] (Point-to-Point Tunneling Protocol) conntrack support and NAT helper added to allow proper management of multiple NAT'd PPTP connections. PPTP, a Microsoft-designed protocol, is used in many places to provide VPN access due to the native support in Microsoft Windows. [http://en.wikipedia.org/wiki/PPTP Wikipedia article] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=926b50f92a30090da2c1a8675de954c2d9b09732 (commit)] * DCCP: "Datagram Congestion Control Protocol". Datagram protocol (like UDP), but with a congestion control mechanism. [http://lwn.net/Articles/149756/ (LWN article)] Currently a [http://www.icir.org/kohler/dcp/draft-ietf-dccp-spec-11.txt RFC draft] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7c657876b63cb1d8a2ec06f8fc6c37bb8412e66c (commit)] * Implement SKB fast cloning: Protocols that make extensive use of SKB cloning, for example TCP, eat at least 2 allocations per packet sent as a result. To cut the kmalloc() count in half, we implement a pre-allocation scheme wherein we allocate 2 sk_buff objects in advance, then use a simple reference count to free up the memory at the correct time [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d179cd12928443f3ec29cfbc3567439644bd0afc (commit)] * Add netlink connector: userspace <-> kernel space easy to use communication module which implements easy to use bidirectional message bus using netlink as its backend [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7672d0b54411371e0b6a831c1cb2f0ce615de6dc (commit)], also a "async connector mode" [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=acd042bb2de50d4e6fb969281a00cc8b8b71e46d (commit)] * IPV6: Support several new sockopt / ancillary data in Advanced API (RFC3542): IPV6_RECVPKTINFO, IPV6_PKTINFO, IPV6_RECVHOPOPTS, IPV6_HOPOPTS, IPV6_RECVDSTOPTS, IPV6_DSTOPTS, IPV6_RTHDRDSTOPTS, IPV6_RECVRTHDR, IPV6_RTHDR, IPV6_RECVHOPOPTS, IPV6_HOPOPTS, IPV6_{RECV,}TCLASS [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=333fad5364d6b457c8d837f7d05802d2aaf8a961 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=41a1f8ea4fbfcdc4232f023732584aae2220de31 (commit)] * [http://fuse.sourceforge.net/ FUSE]: Allows to implement a fully functional filesystem in a userspace program [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d8a5ba45457e4a22aa39c939121efd7bb6c76672 (commit)] * [http://v9fs.sourceforge.net/ 9P support]: Linux port of the [http://www.cs.bell-labs.com/sys/doc/9.html Plan9]'s [http://plan9.bell-labs.com/sys/man/5/INDEX.html 9P protocol] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=93fa58cb831337fdf5d36b3b913441100a484dae (commit)] * [http://relayfs.sourceforge.net/ RelayFS]: Relayfs is just a bunch of per-cpu kernel buffers that can be efficiently written into from kernel code. These buffers are represented as files which can be mmap'ed and directly read from in user space. The purpose of this setup is to provide the simplest possible mechanism allowing potentially large amounts of data to be logged in the kernel and 'relayed' to user space." [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e82894f84dbba130ab46c97748c03647f8204f92 (commit)] * securityfs filesystem [http://lwn.net/Articles/153366/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b67dbf9d4c1987c370fd18fdc4cf9d8aaea604c2 (commit)] * Suspend support for CIFS filesystem [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ede1327ea4ca8019ec6df24b3e837def091c26b8 (commit)] * Enable atomic inode security labeling on ext3 and ext2: it enables atomic security labeling of newly created inodes by altering the fs code to invoke a new LSM hook to obtain the security attribute to apply to a newly created inode and to set up the incore inode security state during the inode creation transaction. This parallels the existing processing for setting ACLs on newly created inodes [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5e41ff9e0650f327a6c819841fa412da95d57319 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=10f47e6a1b8b276323b652053945c87a63a5812d (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ac50960afa31877493add6d941d8402fa879c452 (commit)] * SELinux memory improvements: Reduce access rules memory usage by 20x [http://www.livejournal.com/users/james_morris/6197.html James Morris explanation] [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=782ebb992ec20b5afdd5786ee8c2f1b58b631f24 (commit)] * NTFS: Support journals ($Logfile) which have been modified by chkdsk. This means users can boot into Windows after we marked the volume dirty. The Windows boot will run chkdsk and then reboot. The user can then immediately boot into Linux rather than having to do a full Windows boot first before rebooting into Linux [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e7a1033b946f4f2622f2b338ab107f559aad542c (commit)] * SAS transport class [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c7ebbbce366c02e5657ac6b6059933fe0353b175 (commit)] * Remove ACPI S4 BIOS support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b01d8684e9e5b04270970c97df856d47668267e3 (commit)] * [http://ipw2100.sourceforge.net/ ipw2100] and [http://ipw2200.sourceforge.net/ ipw2200] wireless drivers (intel centrino) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2c86c275015c880e810830304a3a4ab94803b38b (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=43f66a6ce8da299344cf1bc2ac2311889cc88555 (commit)] * [http://hostap.epitest.fi/ HostAP]: Adds support to work as "Wireless Access Point" [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ff1d2767d5a43c85f944e86a45284b721f66196c (commit)] * [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless.Extensions.html Wireless extensions] API update to version 19 [http://marc.theaimsgroup.com/?l=linux-netdev&m=112568599006559&w=2 (mail)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6582c164f2b3b6e58d1f13c1c031b19ee691eb14 (commit)] * ISA DMA suspend for x86/x86-64 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=795312e763569ce4df67e7a0ca726a9901358fa2 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7dc24db1757f950f8bd21b7191106d4bf5134be7 (commit)] * PCI: Support PCI PM CAP version 3 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3fe9d19f9e86a55679f5f2b38ec0a43a1a510cee (commit)] * Keys: Add possessor permissions to keys. It adds extra permission grants to keys for the possessor of a key in addition to the owner, group and other permissions bits. This makes SUID binaries easier to support without going as far as labelling keys and key targets using the LSM facilities [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=664cceb0093b755739e56572b836a99104ee8a75 (commit)] * Driver for the IBM Hard Drive Active Protection System (HDAPS), an accelerometer found in most modern Thinkpads [http://lwn.net/Articles/155440/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=860e1d6b46bd4cbc67d8d065f0f682143513382f (commit)] * Add Apple USB touchpad driver for the USB touchpad which can be found on post-February 2005 Apple Powerbooks [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f7214ff4e8248513ec626212b2c1a3ca0b2a0888 (commit)] * Spinlock consolidation [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fb1c8f93d869b34cacb8b8932e2b83d96a19d720 (commit)] * Largefile support for accounting: The accounting subsystem in the kernel can not correctly handle files larger than 2GB. This fixes it by adding the O_LARGEFILE flag [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6c9c0b52b8c6b68b05bb06efd7079a8fc5e9ba60 (commit)] * Detect soft lockups, new debug feature (CONFIG_DETECT_SOFTLOCKUP). When enabled then per-CPU watchdog threads are started, which try to run once per second. If they get delayed for more than 10 seconds then a callback from the timer interrupt detects this condition and prints out a warning message and a stack dump [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8446f1d391f3d27e6bf9c43d4cbcdac0ca720417 (commit)] * Add kzalloc(): new function, it allows to obtain pre-zeroed memory [http://lwn.net/Articles/147014/ (LWN article)] [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dd3927105b6f65afb7dac17682172cdfb86d3f00 (commit)] * Add schedule_timeout_{,un}interruptible() [http://lwn.net/Articles/149019 (LWN article)] [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=64ed93a268bc18fa6f72f61420d0e0022c5e38d1 (commit)] TODO: * Import relevant data from [http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.14-rc5/2.6.14-rc5-mm1/broken-out/post-halloween-doc.patch davej's post halloween document] or remaining stuff from [http://kernelnewbies.org/status/latest.html Kernelnewbies status] * Find links to corresponding changesets (!!) * Keep track of what gets changed |
<<Include(Linux_5.4)>> |
Changes done in each Linux kernel release. Other places to get news about the Linux kernel are LWN kernel status, H-Online, or the Linux Kernel mailing list (there is a web interface in www.lkml.org). List of changes of older releases can be found at LinuxVersions. If you're going to add something here look first at LinuxChangesRules!
You can discuss the latest Linux kernel changes on the New Linux Kernel Features Forum.
Linux 5.4 was released on 24 November 2019.
Summary: This release includes the kernel lockdown mode, intended to strengthen the boundary between UID 0 and the kernel; virtio-fs, a high-performance virtio driver which allows a virtualized guest to mount a directory that has been exported on the host; fs-verity, for detecting file tampering, like dm-verity, but works on files rather than block devices; dm-clone, which allows live cloning of dm targets; two new madvise() flags for improved app memory management on Android, support for new Intel/AMD GPUs, support for the exfat file system and removing the experimental status of the EROFS file system; a new haltpoll cpuidle driver and governor that greatly improves performance for virtualized guests wanting to do guest-side polling in the idle loop; and blk-iocost, a I/O cgroup controller that attempts to calculate the cost of I/O more accurately. As always, there are many other new drivers and improvements.
Contents
-
Coolest features
- Kernel lockdown mode
- virtio-fs, a bridge to share file systems with virtualized guests
- fs-verity, for detecting file modifications
- dm-clone
- Support for new AMD/Intel graphics
- Two new madvise() flags: MADV_COLD and MADV_PAGEOUT
- EROFS and exFAT
- More efficient polling in virtualized guests with haltpoll
- More accurate cgroup I/O control with blk-iocost
- Kernel symbol namespacing
- Core (various)
- File systems
- Memory management
- Block layer
- Tracing, perf and BPF
- Virtualization
- Cryptography
- Security
- Power Management
- Networking
- Architectures
-
Drivers
- Graphics
- Storage
- Drivers in the Staging area
- Networking
- Audio
- Tablets, touch screens, keyboards, mouses
- TV tuners, webcams, video capturers
- Universal Serial Bus
- Serial Peripheral Interface (SPI)
- Watchdog
- Serial
- CPU Frequency Scaling
- Device Voltage and Frequency Scaling
- Real Time Clock (RTC)
- Voltage, current regulators, power capping, power supply
- Pin Controllers (pinctrl)
- Multi Media Card (MMC)
- Memory Technology Devices (MTD)
- Industrial I/O (iio)
- Multi Function Devices (MFD)
- Pulse-Width Modulation (PWM)
- Inter-Integrated Circuit (I2C + I3C)
- Hardware monitoring (hwmon)
- General Purpose I/O (gpio)
- LEDs
- DMA engines
- Cryptography hardware acceleration
- PCI
- Non-Transparent Bridge (NTB)
- Thunderbolt
- Clock
- PHY ("physical layer" framework)
- EDAC (Error Detection And Correction)
- Various
- List of Pull Requests
- Other news sites
1. Coolest features
1.1. Kernel lockdown mode
This release introduces an optional kernel lockdown feature, intended to strengthen the boundary between UID 0 (root) and the kernel. When enabled, various pieces of kernel functionality are restricted. Applications that rely on low-level access to either hardware or the kernel may cease working as a result - therefore this should not be enabled without appropriate evaluation beforehand. The original purpose of this feature was to honour the anti-tampering protections expected in a secure-boot environment, but it is not tied to that. The majority of mainstream distributions have been carrying variants of this patchset for many years now.
Kernel lockdown is implemented as a Linux Security Module that can be configured in integrity or lockdown mode. If set to integrity, kernel features that allow userland to modify the running kernel are disabled. If set to confidentiality, kernel features that allow userland to extract confidential information from the kernel are also disabled. Configuration can be done at runtime (through securityfs), boot time (via a kernel parameter) or build time (via a kconfig option).
Recommended LWN article: Lockdown as a security module
1.2. virtio-fs, a bridge to share file systems with virtualized guests
This release includes virtio-fs, a FUSE-based virtio driver for guest <-> host file system sharing. It allows a guest to mount a directory that has been exported on the host. Although there are existing technologies that allow this kind of functionality (NFS, virtio-9P), virtio-fs takes advantage of the proximity of VMs to achieve API semantics and performance more like local file systems. This is desirable both for performance and for application compatibility.
For more details, see the documentation, the design documentation and the official web site
1.3. fs-verity, for detecting file modifications
fs-verity is a support layer that filesystems can use to support transparent integrity and authenticity protection of read-only files. It is similar to dm-verity but works on files rather than block devices. Currently, it is supported by the ext4 and f2fs filesystems.
On regular files on filesystems supporting fs-verity, userspace can execute an ioctl that causes the filesystem to build a Merkle tree for the file and persist it to a filesystem-specific location associated with the file. Optionally, it is possible sign files with a key loaded into a keyring. After this, the file is made readonly, and all reads from the file are automatically verified against the file's Merkle tree. Reads of any corrupted data, including mmap reads, will fail. Userspace can efficently retrieve the root hash ("file measurement") with another ioctl, which can be used for a variety of security applications.
For more details, read the documentation
Recommended LWN article: Yet another try for fs-verity
1.4. dm-clone
dm-clone is a device mapper target which produces a one-to-one copy of an existing, read-only source device into a writable destination device: It presents a virtual block device which makes all data appear immediately, and redirects reads and writes accordingly. The main use case of dm-clone is to clone a potentially remote, high-latency, read-only, archival-type block device into a writable, fast, primary-type device for fast, low-latency I/O. The cloned device is visible/mountable immediately and the copy of the source device to the destination device happens in the background, in parallel with user I/O.
For more details, see the documentation
1.5. Support for new AMD/Intel graphics
This release adds support in the amdgpu driver for four new amdgpu products: Navi 12/14, Arcturus and Renoir APU support.
It also includes the first pieces for supporting the future Intel Tiger Lake GPU.
1.6. Two new madvise() flags: MADV_COLD and MADV_PAGEOUT
In order to improve memory usage in some systems (notably, Android), two new madvise() flags have been added: MADV_COLD and MADV_PAGEOUT. These new options complement MADV_DONTNEED and MADV_FREE by adding non-destructive ways to gain some free memory space.
MADV_COLD hints the kernel that the pages can be reclaimed when memory pressure happens but data should be preserved for future use, this can reduce workingset eviction so it ends up increasing performance. In contrast to MADV_FREE, the contents of the region are preserved regardless of subsequent writes to pages. MADV_PAGEOUT can be used by a process to mark a memory range as not expected to be used for a long time so that kernel reclaims *any LRU* pages instantly. The hint can help kernel in deciding which pages to evict proactively. Access in the range after successful operation could cause major page fault but never lose the up-to-date contents unlike MADV_DONTNEED
1.7. EROFS and exFAT
This release moves the EROFS file system out of the staging area. First included in Linux 4.19, EROFS is a lightweight read-only file system with a modern design aimed for scenarios which need high-performance read-only requirements, e.g. firmware in mobile phone or Livecds. Recommended LWN article: On-disk format robustness requirements for new filesystems
This release also adds the exFAT file system to the staging area. Recommended LWN article: Examining exFAT
1.8. More efficient polling in virtualized guests with haltpoll
This release includes a haltpoll cpuidle driver and a new matching governor. These two pieces allows guest vcpus to poll for a specified amount of time before halting, which provides the following benefits to host side polling: 1) The POLL flag is set while polling is performed, which allows a remote vCPU to avoid sending an IPI (and the associated cost of handling the IPI) when performing a wakeup. 2) The VM-exit cost can be avoided. The downside of guest side polling is that polling is performed even with other runnable tasks in the host. For more details see the documentation
1.9. More accurate cgroup I/O control with blk-iocost
One challenge of controlling I/O resources is the lack of reliability of trivial cost metrics. Bandwidth and iops can be off by orders of magnitude depending on the device type and I/O pattern. This is challenging for the I/O cgroup controllers: while io.latency provides the capability to comprehensively prioritize and protect IOs depending on the cgroups, its protection is binary - the lowest latency target cgroup is protected at the cost of all others.
This release introduces blk-iocost, an I/O cost model based work-conserving proportional controller. It currently has a simple linear cost model builtin where each I/O is classified as sequential or random and given a base cost accordingly and additional size-proportional cost is added on top. Each I/O is given a fairly reliable cost, and distributes I/O capacity for each cgroup according to their hierarchical weight. For more details, see the cgroup documentation for io.cost.qos and io.cost.model
Recommended LWN article: The io.weight I/O-bandwidth controller (the io.weight name is no longer used)
1.10. Kernel symbol namespacing
In order to support modules, the kernel needs to export the symbols of functions needed by modules. With more than 30k of those symbols existing in the current kernel, managing the symbols is sometimes messy. This feature allows allows subsystem maintainers to partition and categorize their exported symbols into explicit namespaces, which makes easier to control the use of symbols. Module authors are now required to import the namespaces they need.
For more details, read the documentation
Recommended LWN article: Kernel symbol namespacing
2. Core (various)
(FEATURED) fs-verity: read-only file-based authenticity protection. fs-verity is similar to dm-verity, but implemented on a per-file basis: a Merkle tree is used to measure (hash) a read-only file's data as it is paged in. In general, fs-verity is intended for use on writable filesystems; dm-verity is still recommended on read-only ones. Support is added for Ext4 and F2FS file systems commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
fscrypt: Makes major improvements to how keys are added, removed, and derived in fscrypt, aka ext4/f2fs/ubifs encryption. It does this by adding new ioctls that add and remove encryption keys directly to/from the filesystem, and by adding a new encryption policy version ("v2") where the user-provided keys are only used as input to HKDF-SHA512 and are identified by their cryptographic hash commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- Task scheduler
topology: Improve load balancing on AMD EPYC systems commit
Extend the CPU cgroup controller with uclamp.min and uclamp.max to allow the finer shaping of CPU bandwidth usage commit, commit, commit, commit, commit, commit
Speed-up energy-aware wake-ups from O(CPUS^2) to O(CPUS) commit
Improve the behavior of high CPU count, high thread count applications running under cpu.cfs_quota_us constraints commit
Improve balancing with SCHED_IDLE (SCHED_BATCH) tasks present commit
Improve CPU isolation housekeeping CPU allocation NUMA locality commit
Convert the cpuset_mutex to percpu_rwsem, to allow it to be used from setscheduler() system calls without creating global serialization commit
- io_uring
IORING_OP_TIMEOUT support, a functionality similar to io_getevents() and epoll_wait(), where the user can specify a timeout for waiting on events commit
Improvement to the io_uring CQ ring wakeup for batched IO commit
Allocate SQ/CQ ring together, more efficient. Expose this through a feature flag as well, so we can reduce the number of mmaps by 1 commit, commit
Support SQ poll wakeup + event get in single io_uring_enter commit
Add support for links with drain commands commit
Increase IORING_MAX_ENTRIES from 4K to 32K commit
Limit parallelism of buffered writes commit
waitid() system call
Add P_PIDFD flag, which adds the ability to wait on processes using pidfds. This is one of the few missing pieces to make it possible to manage processes using only pidfds commit
Add support for waiting for the current process group commit
Symbol Namespaces. It adds namespacing to the symbols used by kernel modules. This feature allows subsystem maintainers to partition their exported symbols into separate namespaces, limit availability of these namespaced symbols to other parts of the kernel. For more details read the documentation. commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
VFS: adds a per-superblock minimum/maximum timestamp limit for a file system, and clamps timestamps as they are written, to avoid random behavior from integer overflow as well as having different time stamps on disk vs in memory. This helps futimens(), utimensat() and utimes() syscalls to conform to POSIX defined behavior when the time being set is outside of the corresponding filesystem's supported limits commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- Preparations for PREEMPT_RT
(hr)timers: Prepare for PREEMPT_RT support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
posix-timers: Prepare for PREEMPT_RT - part 1 commit, commit, commit, commit, commit, commit
Enforce interrupt threading at compile time on RT commit
Add binder state and statistics to binderfs commit, commit, commit, commit
kexec: add generic support for elf kernel images commit, commit, commit, commit, commit, commit, commit
Update the interrupt spreading code so it handles numa node with different CPU counts properly commit, commit
- RCU
Improve rwsem scalability commit
lockdep: Report more stack trace statistics commit
Prohibit writing to active swap files and swap partitions commit, commit
lkdtm: Add Control Flow Integrity test commit
kbuild: remove SUBDIRS support commit
3. File systems
- XFS
- F2FS
- CIFS
Introduces a new kernel command-line option called cifsroot= which will tell the kernel to mount the root file system over the network by utilizing SMB or CIFS protocol commit
Add support to send smb2 set-info commands from userspace commit
Allow chmod to set mode bits using special sid commit, commit
Add cache=singleclient mount option to allow shares accessed by only client to be more aggressively cached commit
Allow share to be mounted with cache=ro if immutable share commit
Add ioctl to dump decryption keys for debugging commit
Allow disabling requesting leases commit
Allow parallelizing decryption of reads commit
Allow skipping signature verification for perf sensitive configurations commit
Display max smb3 requests in flight at any one time commit
Enable offload of decryption of large reads via mount option commit
- ext4
Add ioctl EXT4_IOC_CLEAR_ES_CACHE to force an inode's extent status cache to be cleared out, intended for debugging commit
Add ioctl EXT4_IOC_GETSTATE, it returns some of the dynamic state of an ext4 inode, intended for debugging commit
Add ioctl EXT4_IOC_GET_ES_CACHE, it returns the contents of the extent. Intended for debugging commit
- AFS
afs: Support RCU pathwalk commit
- Ceph
Allow arbitrary security.* xattrs commit
Automatic recovery of a blacklisted filesystem session. This is disabled by default and can be enabled by mounting with the recover_session=clean boot option commit, commit, commit, commit, commit, commit, commit, commit, commit
Allow copy_file_range() within the same inode and across different filesystems within the same cluster commit
- Btrfs
- NFS
Add a new knfsd file descriptor cache, so that the kernel doesn't have to open and close on each (NFSv2/v3) READ or WRITE. This can speed up read and write in some cases. It also replaces the readahead cache commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Handling NFSv3 I/O errors in knfsd commit, commit, commit, commit
Optimise the default readahead size commit
Add hash of the kerberos principal to the data being tracked by nfsdcld commit, commit
Enable pNFS filelayout LAYOUTGET on OPEN commit
- UDF
Support 2048-byte spacing of VRS descriptors on 4K media commit
4. Memory management
(FEATURED) Introduce madvise() flags MADV_COLD, which marks pages as inactive (thus more easily reclaimed under memory pressure), but doesn't discard the contents like MADV_FREE does, and MADV_PAGEOUT, which reclaims pages immediately, but doesn't discard the contents like MADV_DONTNEED does. commit, commit, commit, commit
- Memory control group
Extend the shrink file to shrink all memcg caches for the slab cache. Before the commit, writing 1 to /sys/kernel/slab/<slab>/shrink was shrinking only the root cache. With SLUB_MEMCG_SYSFS_ON enabled and slub_memcg_sysfs=1 used, it was possible to shrink also memcg caches, but it was impractical. Now all memcg caches will be shrunk when writing to the "global" shrink file. commit
Throttle allocators when reclaim cannot keep up with v2 memory.high limit commit
Introduce gradual reclaim pressure between v2 memory.low and memory.min thresholds instead of the previous cliff behaviour. commit, commit, commit
Improve situation with multiple parallel reclaimers by letting each walk through the whole cgroup tree, resulting in fewer premature OOM kills. commit
Deprecate v1 kmem.limit_in_bytes due to causing unexpected ENOMEM failures and global OOM's. commit
Prevent premature OOM's due to deferred Transparent Huge Page split queue. commit, commit, commit, commit
Implement foreign inode flushing to avoid pathological cases when two different cgroups are writing to the same inode commit, commit, commit, commit, commit
Experimentally enable Transparent Huge Page support for text section (executable code) of non-shmem files (CONFIG_READ_ONLY_THP_FOR_FS) commit, commit, commit, commit, commit, commit, commit
Change the handling of Transparent Huge Page faults so that they are tried first on a local NUMA node with no memory reclaim allowed, and if they not succeed, for madvise(MADV_HUGEPAGE) areas retry on all nodes, allowing reclaim. This should prevent swap storms observed on pre-5.3 kernels with some workloads and also fix the reported regression for a different workload on 5.3 kernel. LWN merge, commit, commit commit commit, commit
Make uprobes uprobe Transparent Huge Page-aware. Instead of splitting whole THP when installing uprobe, split only the huge PMD, and reinstate it after uprobes are removed. commit commit, commit, commit, commit, commit
kmemleak: make it more robust during early allocations (before slab subsystem is initialized) by using a single memory pool commit, commit, commit, commit, commit, commit,
KASAN: for software tag-based mode, enhance the memory corruption report with a guess whether it is "use-after-free" or "out-of-bound" error instead of "invalid-access" error. commit
page_owner: store also the stack of who last freed the page and print it in dump_page() to improve debugging double free or use-after-free, especially when debug_pagealloc or KASAN are also enabled commit, commit, commit, commit, commit commit
oom: add task UID, oom_score_adj and pgtables to OOM message commit, commit
Provide a generic top-down mmap layout implementation commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
zswap: let zswap use movable memory with zsmalloc commit, commit
Guarantee alignment to size for kmalloc() allocations of power-of-two size, regardless of used sla*b allocator and activated debugging functions. Recommended LWN article LWN followup. commit, commit
Fix minutes or hours long stalls when setting nr_hugepages to too high values. commit, commit, commit, commit,
5. Block layer
(FEATURED) Support for blk-iocost, a IO cgroup controller that uses a model that can properly account cost of IO workloads commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
bfq: add to BFQ the missing per-device weight interfaces: blkio.bfq.weight_device on legacy and io.bfq.weight on cgroups v2 commit, commit, commit
Introduce a new request operation REQ_OP_ZONE_RESET_ALL that reset all zones. This is useful for the applications like mkfs commit, commit, commit, commit
- Device Mapper (dm)
(FEATURED) Add dm-clone target, which allows cloning of arbitrary block devices commit
writecache: Optimize writecache writeback for performance commit, commit, commit
dm verity: add root hash pkcs#7 signature verification. The verification is to support cases where the root hash is not secured by Trusted Boot, UEFI Secureboot or similar technologies commit
Introduce DM_GET_TARGET_VERSION. It will load a target that is specified in the "name" entry in the parameter structure and return its version. commit
md/raid0: Add module and feature flag to avoid RAID0 data corruption due to layout confusion commit, commit
md: allow last device in RAID1/RAID10 to fail and be removed commit, commit, commit
Remove now unused elevator boot argument commit
6. Tracing, perf and BPF
Addition of multiprobes to kprobe and uprobe events: support more than on probe in the same location commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- BPF
flow_dissector: pass input flags to BPF flow dissector program, so it can customize parsing by either stopping early or trying to parse as deep as possible commit, commit, commit, commit, commit, commit, commit
xdp: Add devmap_hash map type for looking up devices by hashed index commit, commit, commit, commit, commit, commit
Add BTF ids in procfs for file descriptors to BTF objects commit
Add a new command BPF_BTF_GET_NEXT_IDto the bpf() system call, and uses it in bpftool as to list all BTF objects (bpftool btf list) loaded on the system (and to dump the ids of maps and programs associated with them, if any) commit, commit, commit, commit, commit
Introduce BPF_F_TEST_STATE_FREQ flag to stress test parentage chain and state pruning commit
Expose BTF info through /sys/kernel/btf. It contains all the BTFs present inside kernel. Currently there is only kernel's main BTF, represented as /sys/kernel/btf/vmlinux file. Once kernel modules' BTFs are supported, each module will expose its BTF as /sys/kernel/btf/<module-name> file commit, commit
Implement the central part of CO-RE (Compile Once - Run Everywhere, an strategy to allow redistributable BPF binaries, see this and this) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Introduce a BPF helper to generate SYN cookies commit, commit, commit, commit, commit, commit
bpftool: add net attach/detach command to attach XDP prog commit, commit, commit, commit
bpftool: add support for reporting the effective cgroup progs commit
- perf
Initial libperf separation - check out tools/perf/lib and the initial documentation. commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
perf list: Allow plurals for metric, metricgroup commit
perf record: Add an option to take an AUX snapshot on exit commit
Add --switch-on/--switch-off events in perf report commit, perf top commit, perf trace commit, perf script commit, commit, commit
Collect LBR callstack together with thread stack data commit, commit, commit
Add support for PEBS output to Intel PT commit, commit, commit, commit, commit, commit, commit
7. Virtualization
vfio/type1: Introduce an iova list associated with a vfio iommu. User-space can retrieve valid iova ranges using VFIO_IOMMU_GET_INFO ioctl capability chains commit, commit, commit, commit, commit, commit
8. Cryptography
CAESAR competition followup: remove aegis128l, aegis256 and morus, add better support for aegis128 commit, commit, commit, commit, commit, commit, commit, commit
Create an ESSIV template that produces a skcipher or AEAD transform based on a tuple of the form '<skcipher>,<shash>' (or '<aead>,<shash>' for the AEAD case). It exposes the encapsulated sync or async skcipher/aead by passing through all operations, while using the cipher/shash pair to transform the input IV into an ESSIV output IV
essiv - create wrapper template for ESSIV generation commit, commit, commit, commit, commit, commit
Make NETLINK_CRYPTO work inside netns commit
xts: add support for ciphertext stealing commit
9. Security
Appended signatures support for IMA appraisal. The kernel image on Power servers is an ELF binary, which are signed using the scripts/sign-file tool and thus use the same signature format as signed kernel modules. This release adds support in IMA for verifying those signatures. It adds flexibility to OpenPOWER secure boot, because it allows it to boot kernels with the signature appended to them as well as kernels where the signature is stored in the IMA extended attribute commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
LSM: Add security hook for fs notifications(fanotify, inotify, dnotify) commit
(FEATURED) LSM: Add kernel lockdown functionality commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
10. Power Management
Expose suspend stats in sysfs commit
Show wakeup sources stats in sysfs under /sys/class/wakeup/wakeup<ID>/ commit
(FEATURED) Introduce a new haltpoll cpuidle driver and a new matching governor for virtualized guests wanting to do guest-side polling in the idle loop commit, commit, commit, commit, commit, commit, commit, commit, commit, commit,
EFI: Export Runtime Configuration Interface table to sysfs commit
- ACPI
pm-graph v5.5 commit
11. Networking
Increase SOMAXCONN (/proc/sys/net/core/somaxconn) from 128 to 4096 commit
- TCP
Increase tcp_max_syn_backlog default to 4096 to match the recent SOMAXCONN change commit
Add a TCP_INFO counter that tracks out-of-order packet reception. It will allow understanding to what degree receive-heavy sockets are experiencing out-of-order delivery and packet drops indicating congestion. Please note that this is similar to the counter in NetBSD TCP_INFO, and has the same name commit
Add a TCP_INFO counter that tracks peer's advertised receive window after scaling commit
Add new tcp_mtu_probe_floor sysctl. The current implementation of TCP MTU probing can considerably underestimate the MTU on lossy connections. This sysctl allows to set a larger floor commit
IPv4/6: support setting SO_MARK for UDP and RAW sockets using cmsg. This is analogous to existing support for TOS, TTL, txtime, etc. commit
IPv6: add support for RFC7710 RA Captive Portal Identifier commit
- Netfilter
Support for updating stateful objects, this also includes the initial client for this infrastructure: the quota extension commit, commit
nft_synproxy: add synproxy stateful object support commit
Add offload support the vlan and tunnel device offload through indr-block architecture commit, commit, commit, commit, commit, commit
nfnetlink_log: add support for VLAN information commit
Add offload support for bitwise operation commit
nft_dynset: implements the delete operation from the ruleset commit
Introduce meta matches in the kernel for time, day, and hour commit
Support for fwd and dup offload commit
- Wireless
Add drop packet monitor for offloaded data paths commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
bridge: makes the bridge dump host-joined mdb entries, they should be treated as normal entries since they take a slot and are aging out commit, commit, commit, commit
devlink: send notifications for deleted snapshots on region destroy commit
dsa: ksz: Add KSZ8795 tag code commit
ethtool: implement Energy Detect Powerdown support via phy-tunable commit
- packet scheduler
- Bluetooth
Add support for utilizing Fast Advertising Interval commit
- Infiniband/RDMA
- can
batman-adv: Add OGMv2 per-interface queue and aggregations commit, commit
ncsi: Disable global multicast filter commit
RDS: Add RDS6_INFO_SOCKETS and RDS6_INFO_RECV_MESSAGES options commit
SCTP: support per endpoint auth and asconf flags commit, commit, commit, commit, commit, commit, commit, commit
TIPC: Add loopback device tracking commit
devmap: adds a new map type, devmap_hash, that works like the existing devmap type, but using a hash-based indexing scheme. This is useful for the use case where a devmap is indexed by ifindex (for instance for use with the routing table lookup helper) commit, commit, commit, commit, commit, commit
12. Architectures
12.1. ARM
- SoC changes
Support for the new ASpeed AST2600 gets added, this is based on the Cortex-A7 ARMv7 core, and is a newer version of the existing ARMv5 and ARMv6 chips in the same family commit
TI Davinci and NXP LPC32xx platforms have been converted to the ARCH_MULTIPLATFORM build, meaning that it is possible to compile a kernel that works on these along with most other ARMv5 platforms commit, commit
The Kendin/Micrel/Microchip KS8695, Winbond/Nuvoton W90x900 and Intel IOP33x/IOP13xx platforms are removed after it was determined that nobody is using them any more commit, commit, commit
- Device Tree changes
The Snapdragon 855 (SM8150) is Qualcomm's current high-end phone platform, usually paired with an external 5G modem. So far we only support the Qualcomm SM8150 MTP reference platform, but no actual products commit, commit, commit, commit, commit
For the slightly older Qualcomm platforms, support for several interesting products is getting added: Three laptops based on Snapdragon 835/MSM8998 (Asus NovaGo TP370QL commit, HP Envy X2 commit and Lenovo Miix 630 commit), one laptop based on Snapdragon 850/sdm850 (Lenovo Yoga C630 commit) and several phones based on the older Snapdragon 410/MSM8916 (Samsung Galaxy A3 and A5 commit, Longcheer L8150 aka Android One 2nd gen "seed" aka Wileyfox Swift commit)
Mediatek MT7629 is a new wireless network router chip, similar to the older MT7623. It gets added together with the reference board implementation commit
Allwinner V3 is a repackaged version of the existing low-end V3s chip, and is used in the tiny Lichee Pi Zero plus, also added here commit. There is also a new TV set-top box based on Allwinner H6, the Tanix TX6 commit, and the eMMC variant of the Olimex A64-Olinuxino development board commit
NXP i.MX8M Nano is a new member of the ever-expanding i.MX SoC family, similar to the i.MX8M Mini commit, commit. As usual, there is a large number of new boards for i.MX SoCs: !Einfochips i.MX8QXP AI_ML commit, SolidRun Hummingboard Pulse baseboard and System-on-Module commit, Boundary Devices i.MX8MQ Nitrogen8M commit, and TechNexion PICO-PI-IMX8M-DEV for the 64-bit i.MX8 line commit. For 32-bit, we get the Kontron i.MX6UL N6310 SoM commit with two baseboards, the PHYTEC phyBOARD-Segin SoM with three baseboards commit, and the Zodiac Inflight Innovations i.MX7 RMU2 board commit
In a different NXP product line, the Layerscape LS1046A "Freeway" reference board gets added commit
Amlogic SM1 (S905X3) and G12B (S922X, A311D) are updated chips from their set-top-box line and smart speaker with newer CPU and GPU cores compared to their predecessors. Both are now also supported by the Khadas VIM3 development board series commit and VIM3L commit. Another board based on SM1 that gets added is the SEI Robotics SEI610 commit
There are a handful of new x86 and Power9 server boards using Aspeed BMC chips that are gaining support for running Linux on the BMC through the OpenBMC project: Facebook Minipack commit, Wedge100 commit, Wedge40 commit, Lenovo Hr855xg2 commit, and Mihawk commit.
There are three new end-user products using 32-bit Rockchips SoCs: Mecer Xtreme Mini S6 is an Android "mini PC" box based on the low-end RK3229 chip commit, while the two AOpen products Chromebox Mini (Fievel commit) and Chromebase Mini (Tiger commit) run ChromeOS and are meant for commercial settings(digital signage, PoS, ...).
One more single-board computer based on the popular 64-bit RK3399 is added: the Leez RK3399 P710 commit
The new Aspeed AST2600 baseboard management controller is added, this is a Cortex-A7 based follow-up to the ARM11 based AST2500 commit
After many years, support for the MMP2 based OLPC XO-1.75 finally makes it into the kernel commit
The Armada 3720 based Turris Mox open source router platform commit
rockchip: remove rk3288 fennec board support commit
UNWINDER_FRAME_POINTER implementation for Clang commit
debug-ll: Add support for r7s9210 commit
psci: cpuidle: Introduce PSCI CPUidle driver commit
coresight: acpi: Static funnel support commit
coresight: cpu-debug: Add support for Qualcomm Kryo commit
perf: Add PMU event JSON files for ARM Cortex-A76 and, Neoverse N1 commit
- crypto
aes-ce: implement ciphertext stealing for CBC commit
aes-ce: implement ciphertext stealing for XTS commit
aes-ce: provide a synchronous version of ctr(aes) commit
aes-neonbs: implement ciphertext stealing for XTS commit
aes-neonbs: provide a synchronous version of ctr(aes) commit
ghash: provide a synchronous version commit
- ARM64
New ABI to allow tagged user pointers to be dereferenced by syscalls commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add support for 52-bit kernel VAs using some of the machinery already introduced by the 52-bit userspace VA code in 5.0 commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add support for function error injection commit
Add support for relocating the kernel with RELR relocations commit
exynos: Enable exynos-chipid driver commit
kasan: Switch to using KASAN_SHADOW_OFFSET commit
kexec_file: add rng-seed support commit
- crypto
KVM: vgic: ITS translation cache commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
12.2. PowerPC
Initial support for running on a system with an Ultravisor, which is software that runs below the hypervisor and protects guests against some attacks by the hypervisor commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Support for building the kernel to run as a "Secure Virtual Machine", ie. as a guest capable of running on a system with an Ultravisor commit, commit, commit, commit, commit, commit, commit
Add Firmware-Assisted Dump for PowerNV platform commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add the PowerPC name and the PPC_ELFNOTE_CAPABILITIES type in the kernel binary ELF note. This type is a bitmap that can be used to advertise kernel capabilities to userland commit, commit
64s/radix: introduce options to disable use of the tlbie instruction commit
eeh: Add a eeh_dev_break debugfs interface commit and a debugfs interface to run an EEH check commit
Use the generic dma coherent remap allocator commit
12.3. x86
Add UMIP emulation/spoofing for 64-bit processes as well, because of Wine based gaming commit
Enable a new AVX512 CPU instruction group/feature for enumeration in /proc/cpuinfo: AVX512_VP2INTERSECT commit
Add Elkhart Lake, Tiger Lake and Airmont to Intel family commit, commit, commit
amd_nb: Add PCI device IDs for family 17h, model 70h commit
Disable Transactional Synchronization Extensions (TSX), as it may be used on certain processors as part of a speculative side channel attack commit, commit, commit, commit, commit, commit, commit, commit, commit
Mitigation for CVE-2018-12207, a microarchitectural implementation issue that could allow an unprivileged local attacker to cause system wide denial-of-service condition commit, commit, commit, commit, commit, commit, commit
Remove MPX APIs commit
Remove X86_FEATURE_MFENCE_RDTSC commit
- platform
chrome: cros_ec_chardev: Add a poll handler to receive MKBP events commit
asus-wmi: Add support for charge threshold commit
hp_accel: Add support for HP ZBook 17 G5 commit
thinkpad_acpi: Add ThinkPad PrivacyGuard commit
asus-nb-wmi: Support ALS on the Zenbook UX430UNR commit
touchscreen_dmi: Add info for the Irbis TW90 tablet commit
touchscreen_dmi: Add info for the Chuwi Surbook Mini tablet commit
touchscreen_dmi: Add info for the Trekstor Primebook C11B 2-in-1 commit
pmc_atom: Add Siemens SIMATIC IPC227E to critclk_systems DMI table commit
- crypto
- hwtracing intel_th
- perf
- KVM
vmware: Support for VMCALL/VMMCALL based hypercalls commit
12.4. S390
Add support for IBM z15 machines commit
crypto: Add SHA3 and CCA AES cipher key support in zcrypt commit, commit
crypto: Add sysfs attributes to emit AES CIPHER key blobs commit
zcrypt: CEX7S exploitation support commit
zcrypt: new sysfs attributes serialnr and mkvps commit
bpf: add JIT support for bpf line info commit and for multi-function programs commit
perf cpum_sf: Support ioctl PERF_EVENT_IOC_PERIOD commit
kasan: add kdump support commit
qdio: enable drivers to poll for Output completions commit
qdio: let drivers opt-out from Output Queue scanning commit
qeth: add BQL support for IQD devices commit
qeth: add TX NAPI support for IQD devices commit
qeth: add xmit_more support for IQD devices commit
qeth: collect accurate TX statistics commit
12.5. MIPS
Add partial 32-bit huge page support commit
BCM47XX: Add support for Netgear R6200 V1 commit
Remove unused R4300 CPU support commit
Remove unused R5432 CPU support commit
Remove unused R8000 CPU support commit
jz4740: Drop dead code commit
12.6. RISC-V
12.7. User Mode Linux
Add virtio vhost-user driver commit
Added support for Unix socket transports and bess transport commit
Add legacy tap support and rename existing vector to hybrid commit
12.8. PA-RISC
Add assembly implementations for memset, strlen, strcpy, strncpy and strcat commit
Add kprobes on ftrace support commit
12.9. IA-64
Remove the hpsim platform commit
Remove the SGI UV simulator support commit
Remove support for the SGI SN2 platform commit
12.10. Xtensa
Add support for xtensa call0 ABI in userspace commit
12.11. MicroBlaze
Use the generic DMA coherent remap allocator commit
12.12. ARC
13. Drivers
13.1. Graphics
Add the content_type support for HDCP2.2. Along with that uevent is sent for each HDCP state change triggered within kernel commit, commit, commit, commit, commit, commit
- AMDGPU
- i915
(FEATURED) Initial tigerlake platform support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
DSI properties commit
Add Missing PCI IDs commit
ehl: Add one additional PCH ID to MCC commit
Enable GTT cache by default commit
Turn on GuC/HuC auto mode commit
icl: Add missing device ID commit
Enable hotplug retry for some devices that need it commit, commit
Remove unused debugfs/i915_emon_status commit
- nouveau
- vmwgfx
Evicition priority support commit
- msm
- Etnaviv
- komeda
Enable dual-link support commit
- imx
- ingenic
- panfrost
- pl111
Support grayscale commit
- sun4i
- omap
Add 'alpha' and 'pixel blend mode' plane properties commit
- panel
Add Novatek NT39016 panel support commit
Add driver for the LG Philips LB035Q02 panel commit
Add driver for the NEC NL8048HL11 panel commit
Add driver for the Sharp LS037V7DW01 panel commit
Add driver for the Sony ACX565AKM panel commit
Add driver for the Toppoly TD028TTEC1 panel commit
Add driver for the Toppoly TD043MTEA1 panel commit
Add support for Raydium RM67191 panel driver commit
jh057n00900: Add regulator support commit
simple: Add Ortustech COM37H3M panel support commit
simple: Add Sharp LQ070Y3DG3B panel support commit
simple: Add Sharp LS020B1DD01D panel support commit
simple: Add support for Sharp LD-D5116Z01B panel commit
simple: Support TI nspire panels commit
- ast
Provide ddc symlink in connector sysfs directory commit
- bridge
ti-sn65dsi86: add debugfs commit
Associate ddc adapters with connectors: It is difficult for a user to know which of the i2c adapters is for which drm connector. This change adds a symbolic link in connector's sysfs directory commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- gm12u320:
Add Grain Media GM12U320 driver v2 commit
- ipu-v3
agp: remove the sgi-agp driver commit
fbdev: remove w90x900/nuc900 platform drivers commit
fbdev: Drop JZ4740 driver commit
13.2. Storage
libnvdimm: Introduce a new sysfs 'frozen' attribute so that ndctl can reflect the "security-operations-allowed" state independently of the lock status commit
- SCSI
hisi_sas: Add built-int self test support for phy loopback commit
hisi_sas: Snapshot AXI and RAS register at debugfs commit and snapshot HW cache of IOST and ITCT at debugfs commit
lpfc: Add MDS driver loopback diagnostics support commit
lpfc: Add NVMe sequence level error recovery support commit
lpfc: Support dynamic unbounded SGL lists on G7 hardware commit
mpt3sas: Add support for PCIe Lane margin commit
mpt3sas: Add sysfs to know supported features commit
mpt3sas: Introduce module parameter to override queue depth commit
mpt3sas: Support MEMORY MOVE Tool box command commit
qedf: Add support for 20 Gbps speed commit
smartpqi: add gigabyte controller commit
smartpqi: add module param for exposure order commit
smartpqi: add module param to hide vsep commit
smartpqi: add new pci ids commit
smartpqi: add pci ids for fiberhome controller commit
smartpqi: add sysfs entries commit
- NVM Express
Add TOS configuration for TCP and RDMA transports commit, commit, commit, commit, commit
pci: Add support for Apple 2018+ models commit
pci: Support shared tags across queues for Apple 2018 controllers commit
tcp: support simple polling commit
Add uevent variables for controller devices commit
Add Get LBA Status command opcode commit, commit, commit, commit
ide: remove the sgiioc4 driver commit
qla2xxx: remove SGI SN2 support commit
qla1280: remove SGI SN2 support commit
13.3. Drivers in the Staging area
(FEATURED) erofs: move erofs out of staging commit
erofs: support bmap commit
(FEATURED) exfat: add exFAT filesystem code to staging commit
fsl-dpaa2/ethsw: Add network interface statistics commit
greybus: move the greybus core to drivers/greybus commit, commit, commit
imx7-media-csi: add i.MX6UL support commit
imx: add csc/scaler mem2mem device commit
qlge: Move drivers/net/ethernet/qlogic/qlge/ to drivers/staging/qlge/ commit
rtl8723bs: Remove debugging information exposed via procfs commit
hantro: Add support for H264 decoding commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
hantro: Enable VP8 decoding on RK3328 commit
hantro: Support RK3399 VP8 decoding commit
hantro: Add support for MPEG-2 decoding on RK3328 commit
hantro: Add support for VP8 decoding on rk3288 commit
media/bcm2048: remove driver commit
davinci: remove vpfe driver commit
USB: Move wusbcore and UWB to staging as it is obsolete commit
fbtft: Remove fbtft_device commit
fbtft: Remove flexfb commit
13.4. Networking
ath9k: add loader for AR92XX (and older) pci(e) commit
bluetooth: bcm: Add support for loading firmware for BCM4345C5 commit
- bnxt_en
Add TPA (GRO_HW and LRO) on 57500 chips commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Implements adapter health and error recovery commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- dsa
tc-taprio offload for SJA1105 DSA commit, commit, commit, commit, commit, commit
ksz: Add Microchip KSZ8795 DSA driver commit
microchip: add KSZ9477 I2C driver commit
microchip: add ksz9567 to ksz9477 driver commit
mt7530: Add support for port 5 commit
mv88e6xxx: add PTP support for MV88E6250 family commit
mv88e6xxx: add RXNFC support commit
mv88e6xxx: add support for MV88E6220 commit
mv88e6xxx: support 2500base-x in SGMII IRQ handler commit
- can
- dpaa2-eth
- brcmfmac
enetc: Add mdio bus driver for the PCIe MDIO endpoint commit
- habanalabs
- hns3
- i40e
- ice
igb: Enable media autosense for the i350 commit
igc: Add tx_csum offload functionality commit
ionic: add the ionic driver, supporting the Pensando ethernet device commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- iwlwifi
mediatek: Add MT7628/88 SoC support commit
mediatek: Add basic PHYLINK support commit
mediatek: Re-add support SGMII commit
mlx4/en_netdev: allow offloading VXLAN over VLAN commit
- mlx5
Add CREATE_PSV/DESTROY_PSV for devx interface commit
Add XRQ and SRQ support to DEVX interface commit, commit, commit, commit
Add support for software (driver managed) flow steering commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add software backchannel and mlx5e HV VHCA stats commit, commit, commit, commit, commit, commit
Add device ID of upcoming BlueField-2 commit
Add flow counters bulk allocation and pool, to improve the performance of flow counter acquisition commit, commit
Ingress rate support for E-Switch vports commit
Add VNIC_ENV internal rq counter bits commit
Expose IP-in-IP capability commit
Add support for a new flag called need_wakeup in the AF_XDP Tx and fill rings. When this flag is set by the driver, it means that the application has to explicitly wake up the kernel Rx (for the bit in the fill ring) or kernel Tx (for bit in the Tx ring) processing by issuing a syscall. Poll() can wake up both and sendto() will wake up Tx processing only commit, commit, commit, commit, commit, commit, commit, commit
- mlx5e
Add a device internal drop counter to mlx5 ethtool stats commit
Add a new devlink health reporter for RX related errors commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add the support for LAG TX port affinity distribution. When VF LAG is enabled, VFs netdevs will round-robin the TX affinity commit, commit
Support RSS for IP-in-IP and IPv6 tunneled packets commit
Add the support for ip-in-ip TX TSO and checksum offloads commit, commit
- mlxsw
mscc: PTP Hardware Clock (PHC) support commit
- mt76
- netdevsim
- nfp
- phy
Add mdio-aspeed commit
adin: add support for Analog Devices PHYs commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
adin: Add support for Analog Devices PHYs commit
adin: Implement Energy Detect Powerdown mode via phy-tunable commit
realtek: add support for integrated 2.5Gbps PHY in RTL8125 commit, commit, commit
realtek: add NBase-T PHY auto-detection commit
sfp: Add labels to hwmon sensors commit
qed*: Support for dumping the config id attributes via ethtool -w/W commit, commit
qed*: Support for dumping the GRC data of required memory regions using ethtool -w/W interfaces commit, commit
qed: Add new ethtool supported port types based on media commit
qmi_wwan: add support for Cinterion CLS8 devices commit
- r8152
- r8169
rt2800usb: Add new rt2800usb device PLANEX GW-USMicroN commit
- rtw88
sis900: add support for ethtool's EEPROM dump commit
- stmmac
xgmac: Implement MMC counters commit
Add VLAN HASH filtering support in GMAC4+ commit
Add support for SA Insertion/Replacement in GMAC4+ commit
Add support for SA Insertion/Replacement in XGMAC cores commit
Add support for VLAN Insertion Offload commit
Add support for VLAN Insertion Offload in GMAC4+ commit
ARP Offload for GMAC4+ Cores commit
Implement RSS and enable it in XGMAC core commit
Implement Safety Features in XGMAC core commit
Implement VLAN Hash Filtering in XGMAC commit
Add Flexible RX Parser support in XGMAC commit
Add Split Header support and enable it in XGMAC cores commit
Add a counter for Split Header packets commit
Add ethtool register dump for XGMAC cores commit
Implement L3/L4 Filters using TC Flower commit
dwmac4: Enable RX Jumbo frame support commit
dwxgmac: Add Flexible PPS support commit
Add HAPS support using GMAC5 commit
xgmac: Add EEE support commit
xgmac: Enable RX Jumbo frame support commit
xgmac: Implement ARP Offload commit
- qmi_wwan
wil6210: add debugfs to show PMC ring content commit
Remove ks8695 driver commit
Remove netx ethernet driver commit
Remove w90p910-ether driver commit
Remove broken dscc4 driver commit
13.5. Audio
firewire: introduce AMDTP domain commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
pcm: add support for 352.8KHz and 384KHz sample rate commit
usb-audio: Scarlett Gen 2 mixer interface commit
- hda
lx6464es: add support for LX6464ESe pci express variant commit
oxfw: support AMDTP domain commit
- Sound Open Firmware
topology: initial support for Intel ALH DAI type commit
pcm: add ALH support commit
Add OF DSP device support commit
Intel: hda: Enable jack detection commit
Intel: hda: add a parameter to disable MSI commit
Intel: initial support for Elkhart Lake commit
Intel: initial support for Tiger Lake commit
imx: Add i.MX8 HW support commit
- ASoC
Intel: boards: Add Cometlake machine driver support commit
Intel: sof-rt5682: add dmic dapm widget to support dmic PCM commit
codecs: Add uda1334 codec driver commit
cs47l15: Add codec driver for Cirrus Logic CS47L15 commit
cs47l92: Add codec driver for Cirrus Logic CS47L92 commit
fsl_sai: Add support for SAI new version commit
fsl_sai: Add support for imx7ulp/imx8mq commit
fsl_sai: Add support for imx8qm commit
jz4740: Drop lb60 board code commit
sun4i-i2s: Add support for DSP formats commit
sun4i-i2s: Support more channels commit
ti: davinci-i2s: Add S32_LE as support format commit
Remove w90x900/nuc900 platform drivers commit
- Soundwire
cadence_master: add debugfs register dump commit
cadence_master: add kernel parameter to override interrupt mask commit
intel: add debugfs register dump commit
intel_init: add kernel module parameter to filter out links commit
Add device tree support for slave devices commit
Add debugfs support commit
13.6. Tablets, touch screens, keyboards, mouses
Add support for polling to input devices commit
soc_button_array: add support for newer surface devices commit
Add support for the FlySky FS-iA6B RC receiver commit
- HID
wacom: support named keys on older devices commit
wacom: add new MobileStudio Pro 13 support commit
multitouch: add support for the Smart Tech panel commit
logitech-dj: add support of the G700(s) receiver commit
hid-logitech-dj: add the new Lightspeed receiver commit
sb0540: add support for Creative SB0540 IR receivers commit
google: add magnemite/masterball USB ids commit
Remove w90x900 keyboard driver commit
Remove w90x900 touchscreen driver commit
13.7. TV tuners, webcams, video capturers
v4l2-tpg: add support for new pixelformats commit
v4l2-common: add support for new RGB32 pixelformats commit
vivid: add support for new pixelformats commit
vicodec: add support for 4 new RGB32 pixelformats commit
Add support for Cadence CSI2TX 2.1 commit
dvb-usb: add T230 to dvbsky commit
dvbsky: add support for Mygica T230C v2 commit
ov5640: Add support for flash and lens devices commit
ov5675: Add support for OV5675 sensor commit
- Remote control
Add keymap for Amediatech X96-MAX remote commit
Add keymap for HardKernel ODROID remote commit
Add keymap for Khadas VIM/EDGE remote commit
Add keymap for Tanix TX3 mini remote commit
Add keymap for Tanix TX5 max remote commit
Add keymap for !WeTeK Play 2 remote commit
Add keymap for WeTek Hub remote commit
sunxi: Add A31 compatible commit
rcar-vin: Add support for RGB formats with alpha commit, commit, commit, commit
si2168: add support for Mygica T230C v2 commit
stm32-dcmi: add media controller support commit
stm32-dcmi: add support of several sub-devices commit
sunxi: Add A10 CSI driver commit
13.8. Universal Serial Bus
usbfs: Add ioctls for runtime power management commit
usbip: Implement SG support to vhci-hcd and stub driver commit
cdns3: Add Cadence USB3 DRD Driver commit
Add USB GPIO based connection detection driver commit
- serial
Add V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM commit and V4L2_FMT_FLAG_DYN_RESOLUTION commit
gadget: aspeed: Implement dummy hub TT requests commit
Remove ehci-w90x900 driver commit
rio500: Remove Rio 500 kernel driver commit
13.9. Serial Peripheral Interface (SPI)
dw-pci: Add support for Intel Elkhart Lake PSE SPI commit
mediatek: support large PA commit
npcm-fiu: add NPCM FIU controller driver commit
Remove w90x900 driver commit
13.10. Watchdog
Add i.MX7ULP watchdog support commit
aspeed: Add support for AST2600 commit
aspeed: add support for dual boot commit
f71808e_wdt: Add F81803 support commit
iTCO: Add support for Cannon Lake PCH iTCO commit
Remove ks8695 driver commit
Remove w90x900 driver commit
13.11. Serial
8250_pci: Add F81504A series Support commit
8250_pci: Add support for Sunix serial boards commit
8250_pci: Implement MSI(-X) support commit
lantiq: Add support for Lightning Mountain SoC commit
8250: Add support for NI-Serial PXI/PXIe+485 devices commit
Add linflexuart driver for S32V234 commit
sprd: Add loopback function support commit
tegra: Add PIO mode support commit
tegra: add internal loopback functionality commit
tegra: add support to adjust baud rate commit
Remove ks8695 driver commit
Remove the ioc3_serial driver commit
Remove the ioc4_serial driver commit
Remove the sn_console driver commit
13.12. CPU Frequency Scaling
Add sun50i nvmem based CPU scaling driver commit
Switch over some users of cpuidle notifiers to the new QoS-based frequency limits commit, commit, commit, commit, commit, commit, commit, commit, commit
imx-cpufreq-dt: Add i.MX8MN support commit
mediatek: Add support for mt8183 commit
qcom: Add support for qcs404 on nvmem driver commit
13.13. Device Voltage and Frequency Scaling
13.14. Real Time Clock (RTC)
Add Amlogic Virtual Wake RTC commit
fsl-ftm-alarm: add FTM alarm driver commit
pcf2127: add tamper detection support commit
pcf2127: add watchdog feature support commit
sun6i: Add support for H6 RTC commit
sun6i: Allow using as wakeup source from suspend commit
Remove w90x900/nuc900 driver commit
13.15. Voltage, current regulators, power capping, power supply
- supply
- regulator
13.16. Pin Controllers (pinctrl)
Ingenic: Add pinctrl driver for JZ4760 and JZ4760B commit
Ingenic: Add pinctrl driver for X1000 and X1000E commit
Ingenic: Add pinctrl driver for X1500 commit
aspeed: Add AST2600 pinmux support commit
bcm2835: Add support for BCM2711 pull-up functionality commit
madera: Add configuration for Cirrus Logic CS47L15 commit
madera: Add configuration for Cirrus Logic CS47L92 commit
qcom: Add SC7180 pinctrl driver commit
sunxi: v3s: introduce support for V3 commit
13.17. Multi Media Card (MMC)
sdhci-iproc: Add support for emmc2 of the BCM2711 commit
sdhci-of-arasan: Add Support for Intel LGM eMMC commit
sdhci-of-aspeed: Add support for the ASPEED SD controller commit
sdhci-pci: Add another Id for Intel CML commit
13.18. Memory Technology Devices (MTD)
mtdcore: add debugfs nodes for querying the flash name and id commit
rawnand: Add Macronix raw NAND controller driver commit
rawnand: remove w90x900 driver commit
rawnand: Drop obsolete JZ4740 NAND driver commit
spi-nor: Add Winbond w25q256jvm commit
spi-nor: Add support for mt35xu02g commit
spi-nor: add support for sst26wf016b memory IC commit
spi-nor: enable the debugfs for the partname and partid commit
spi-nor: intel-spi: Add support for Intel Tiger Lake SPI serial flash commit
13.19. Industrial I/O (iio)
adc: ad7606: Add support for AD7606B ADC commit
adc: ad7606: Add support for software mode for ad7616 commit
adc: stm32-adc: add analog switches supply control commit
cros_ec: Add calibscale for 3d MEMS commit
cros_ec_accel_legacy: Add support for veyron-minnie commit
imu: Add support for the ADIS16460 IMU commit
imu: st_lsm6dsx: add i3c basic support for LSM6DSO and LSM6DSR commit
imu: st_lsm6dsx: add support for accel/gyro unit of lsm9ds1 commit
imu: st_lsm6dsx: add support to ISM330DHCX commit
imu: st_lsm6dsx: add support to LSM6DS3TR-C commit
light: noa1305: Add support for NOA1305 commit
potentiometer: add a driver for Maxim 5432-5435 commit
stm32: Remove quadrature related functions from trigger driver commit
13.20. Multi Function Devices (MFD)
Add support for Merrifield Basin Cove PMIC commit
intel-lpss: Add Intel Skylake ACPI IDs commit
intel-lpss: Add Intel Tiger Lake PCI IDs commit
mt6323: Add MT6323 RTC and PWRC commit
Drop obsolete JZ4740 driver commit
13.21. Pulse-Width Modulation (PWM)
13.22. Inter-Integrated Circuit (I2C + I3C)
Add i2c-icy for I2C on m68k/Amiga commit
axxia: support slave mode commit
designware-pci: Add support for Elkhart Lake PSE I2C commit
i2c-eeprom_slave: Add support for more eeprom models commit
icy: Add LTC2990 present on 2019 board revision commit
imx: ACPI support for NXP i2c controller commit
piix4: Add ACPI support commit
13.23. Hardware monitoring (hwmon)
Add Synaptics AS370 PVT sensor driver commit
ibm-cffps: Add support for version 2 of the PSU commit
k10temp: Add support for AMD family 17h, model 70h CPUs commit
lm75: add support for PCT2075 commit
nct6775: Integrate new model nct6116 commit
nct7904: Add extra sysfs support for fan, voltage and temperature commit
pmbus: Add Inspur Power System power supply driver commit
shtc1: add support for the SHTC3 sensor commit
Drop obsolete JZ4740 driver commit
Remove ads1015 driver commit
13.24. General Purpose I/O (gpio)
aspeed: Add SGPIO driver commit
aspeed: Add in ast2600 details to Aspeed driver commit
Add support for GPIOs over Moxtet bus commit
madera: Add support for Cirrus Logic CS47L15 commit and Cirrus Logic CS47L92 commit
Remove ks8695 driver commit
13.25. LEDs
13.26. DMA engines
tegra-apb: Support per-burst residue granularity commit
fsl-edma: add i.mx7ulp edma2 version support commit
Drop JZ4740 driver commit
13.27. Cryptography hardware acceleration
- cavium/nitrox
ccp: Add module parameters to control CCP activation commit, commit, commit, commit
- ccree
- inside-secure
Add support for AES-GCM, AES-CFB, AES-OFB and AES-CCM commit, commit, commit, commit
inside-secure: Add AES-XTS cipher support commit, commit, commit,
inside-secure - add support for PCI based FPGA development board commit
inside-secure - add support for using the EIP197 without vendor firmware commit
inside-secure - Add supp. for non-Marvell HW commit, commit, commit, commit, commit, commit
inside-secure: add more AEAD ciphersuites commit, commit, commit
hisilicon: Add HiSilicon QM and ZIP controller driver commit, commit, commit, commit, commit
mediatek - add support to OFB/CFB mode commit
13.28. PCI
dwc: al: Add Amazon Annapurna Labs PCIe controller driver commit
mediatek: Add controller support for MT7629 commit
tegra: Add Tegra194 PCIe support commit
tegra: Add support to configure sideband pins commit
tegra: Add support to enable slot regulators commit
hotplug: remove the sgi_hotplug driver commit
13.29. Non-Transparent Bridge (NTB)
ntb_hw_amd: Add a new NTB PCI device ID commit
13.30. Thunderbolt
13.31. Clock
Add clk_min/max_rate entries in debugfs commit
Add support for AST2600 SoC commit
clk-cdce925: Add regulator support commit
imx: Add support for i.MX8MN clock driver commit
ingenic: Add driver for the TCU clocks commit
mediatek: Add MT6779 clock support commit
meson: g12a: add support for DVFS commit
meson: meson-sm1: add support for DVFS commit, commit, commit
meson: axg-audio: add g12a reset support commit
mvebu: Add CPU clock support for Armada 7K/8K commit, commit, commit, commit
mvebu: AP807 clocks support commit, commit, commit, commit, commit, commit
qcom: clk-alpha-pll: Add support for Trion PLLs commit
qcom: gcc: Add global clock controller driver for SM8150 commit
rockchip: Add clock controller for the rk3308 commit
sunxi-ng: v3s: add Allwinner V3 support commit
Add a new timer-ingenic driver commit
13.32. PHY ("physical layer" framework)
lantiq: vrx200-pcie: add a driver for the Lantiq VRX200 PCIe PHY commit
mvebu-cp110-comphy: Enhance CP110 COMPHY support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
tegra: Add PCIe PIPE2UPHY support commit
13.33. EDAC (Error Detection And Correction)
mellanox: Add ECC support for BlueField DDR4 commit
amd64: Add PCI device IDs for family 17h, model 70h commit
amd64: Support asymmetric dual-rank DIMMs commit
Add driver for the Marvell Armada XP SDRAM and L2 cache ECC commit
13.34. Various
NFC: nxp-nci: Add NXP1001 to the ACPI ID table commit
PTP: add support for one-shot output commit
PTP: introduce new versions of IOCTLs commit
backlight: Expose brightness curve type through sysfs commit
bus: Add support for Moxtet bus commit
bus: moxtet: Add sysfs and debugfs documentation commit
char/mspec: remove SGI SN2 support commit
char: remove the SGI snsc driver commit
char: remove the SGI tiocx/mbcs driver commit
Remove the SGI SN2 IOC3 base support commit
Remove the SGI SN2 IOC4 base support commit
eeprom: Deprecate the legacy eeprom driver commit
fdt: add support for rng-seed commit
firmware: Add Turris Mox rWTM firmware driver commit
firmware: add Intel Stratix10 remote system update driver commit
firmware: arm_scmi: Add RESET protocol in SCMI v2.0 commit
firmware: arm_scmi: Add discovery of SCMI v2.0 performance fastchannels commit
firmware: arm_scmi: Make use SCMI v2.0 fastchannel for performance protocol commit
firmware: imx: Add DSP IPC protocol interface commit
fpga: altera-cvp: Add Stratix10 (V2) Support commit
fpga: dfl: afu: add STP (SignalTap) support commit
fpga: dfl: afu: add error reporting support commit
fpga: dfl: afu: add userclock sysfs interfaces commit
fpga: dfl: fme: add DFL_FPGA_FME_PORT_RELEASE/ASSIGN ioctl support commit
fpga: dfl: fme: add capability sysfs interfaces commit
fpga: dfl: fme: add global error reporting support commit
fpga: dfl: pci: enable SRIOV support commit
interconnect: Add support for path tags commit
interconnect: qcom: Add QCS404 interconnect provider driver commit
interconnect: qcom: Add interconnect RPM over SMD driver commit
interconnect: qcom: Add tagging and wake/sleep support for sdm845 commit
irqchip: Add irq-ingenic-tcu driver commit
mailbox: qcom: Add support for IPQ8074 APCS commit
mailbox: qcom: Add support for Qualcomm SM8150 and SC7180 SoCs commit
mei: me: add comet point (lake) LP device ids commit
memory: mtk-smi: Add gals support commit
misc/sgi-xp: remove SGI SN2 support commit
misc: Remove spear13xx pcie gadget driver commit
misc: add the full Soft Decision Forward Error Correction (SD-FEC) driver implementation, driver DT binding and driver documentation commit, commit, commit, commit, commit, commit, commit
parport: parport_serial: Add support for Sunix Multi I/O boards commit
perf/imx_ddr: Add support for AXI ID filtering commit
regulator: uniphier: Add Pro5 USB3 VBUS support commit
remoteproc: Add a sysfs interface for name commit
reset: Add support for resets provided by SCMI commit
soc: amlogic: Add support for Everything-Else power domains controller commit
soc: imx-scu: Add SoC UID(unique identifier) support commit
soc: imx8: Add i.MX8MM UID(unique identifier) support commit
soc: imx8: Add i.MX8MQ UID(unique identifier) support commit
soc: qcom: Add socinfo driver commit
soc: qcom: socinfo: Expose custom attributes commit
soc: qcom: socinfo: Expose image information commit
soc: samsung: Add exynos chipid driver support commit
tpm/tpm_ftpm_tee: A driver for firmware TPM running inside TEE commit
tty: n_gsm: add ioctl to map serial device to mux'ed tty commit
w1: add 1-wire master driver for IP block found in SGI ASICs commit
w1: add DS2501, DS2502, DS2505 EPROM device driver commit
14. List of Pull Requests