28552
Comment: move older 2.6 releases to a separate page to keep the page small
|
880
Linux 5.3 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)] * 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)] * 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)] * 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)] * 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)] * 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 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)] * 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)] * 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)] * 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)] * 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)] * Optimized SHA1 implementation for ARM [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c09f98271f685af349d3f0199360f1c0e85550e0 (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)] * Resurrect Cobalt (MIPS-based) 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 (MIPS-based) 2.6 support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e3ad1c23ba72214669b364c6fa304531dc768c3e (commit)] * Add support for BCM1480 family of chips (MIPS-based) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f137e463b50aadba91bd116f99c59ccb9c15a12f (commit)] * 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)] * 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)] * 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.3)>> |
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.3 was released on Sun, 15 Sep 2019.
Summary: This release includes support for AMD Navi GPUs; support for the umwait x86 instructions that let processes wait for short amounts of time without spinning loops; a 'utilization clamping' mechanism that is used to boost interactivity in the power-asymmetric CPUs used in phones; a new pidfd_open(2) system call that completes the work done to let users deal with the PID reuse problem; 16 millions of new IPv4 addresses in the 0.0.0.0/8 range are made available; support for Zhaoxin x86 CPUs; support Intel Speed Select for easier power selection in Xeon servers; and support for the lightweight hypervisor ACRN, built for embedded IoT devices. As always, there are many other new drivers and improvements.
Contents
-
Coolest features
- New 'pidfd' functionality to help service managers to deal with PID reuse problems
- Utilization clamping support in the task scheduler
- Support for AMD Navi GPUs
- Support for Zhaoxin x86 CPUs
- Support Intel Speed Select for easier power tuning
- Power efficient userspace waiting with the umwait x86 instructions
- A few millions of new IPv4 addresses
- Add the IoT ACRN supervisor
- Core (various)
- File systems
- Memory management
- Block layer
- Tracing, perf and BPF
- Virtualization
- Cryptography
- Security
- 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 (USB)
- Serial Peripheral Interface (SPI)
- Watchdog
- Serial
- ACPI, EFI, cpufreq, thermal, Power Management
- 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
- Hardware Random Number Generator (hwrng)
- Cryptography hardware acceleration
- PCI
- Clock
- PHY ("physical layer" framework)
- EDAC (Error Detection And Correction)
- Non-Transparent Bridge (NTB)
- Various
- List of merges
- Other news sites
1. Coolest features
1.1. New 'pidfd' functionality to help service managers to deal with PID reuse problems
To solve the issue of PID reuse in Unix systems, Linux 5.1 added the pidfd_send_signal(2), which let processes send signals to "pidfd" handles that are stable even after PID reuse. Linux 5.2 added the CLONE_PIDFD to clone(2), which let users to create PIDs that were usable with pidfd_send_signal(2). But there are many processes creates with fork() or clone() without CLONE_PIDFD, which can cause problems for the Android's low memory killer (LMK) or service managers such as systemd. To complete the functionality needed to deal with the PID reuse issue, this release adds the pidfd_open(2) syscall: It allows a caller to retrieve pollable pidfd's for a process which did not get created using the CLONE_PIDFD clone(2) flag.
Additionally, this release adds polling support for pidfds. This allows process managers to know when a (non-parent) process dies in a race-free way. The notification mechanism used follows the same logic that is currently used when the parent of a task is notified of a child's death. With this patchset it is possible to put pidfds in an {e}poll loop and get reliable notifications for process (i.e. thread-group) exit.
Recommended LWN article: New system calls: pidfd_open() and close_range()
1.2. Utilization clamping support in the task scheduler
This release adds utilization clamping support to the task scheduler. This is a refinement of the energy aware scheduling framework for power-asymmetric systems (like ARM big.LITTLE) added in Linux 5.0. Utilization clamping is a mechanism that allows to enforce a minimum and/or maximum frequency range, depending on which tasks are currently active on a CPU. The main use-cases for utilization clamping are: a) boost tasks which are directly affecting the user experience by running them at least at a minimum "requested" frequency, b) cap low priority tasks not directly affecting the user experience by running them only up to a maximum "allowed" frequency. Per-task clamping attributes can be set through sched_setattr(2). This feature intends to replace the hacks that Android had developed to achieve the same result.
Recommended LWN article: Scheduler utilization clamping
1.3. Support for AMD Navi GPUs
This release adds initial support for the AMD Navi GPUs in the amdgpu driver, these are the new AMD RX5700 GPUs that just recently became available. This released adds support for the core driver, displays (DCN2), GFX and compute (GFX10), System DMA (SDMA 5), Multimedia decode and encode (VCN2) and Power management.
1.4. Support for Zhaoxin x86 CPUs
This release adds support for Zhaoxin x86 Processors. Zhaoxin is a company created in 2013 as a joint venture between VIA Technologies and the Shanghai Municipal Government. The architecture of the ZX family of processors is a continuation of VIA's Centaur Technology x86-64 Isaiah design.
1.5. Support Intel Speed Select for easier power tuning
This release adds support for Intel Speed Select, a feature only supported on specific Xeon servers. It is a power management technology that lets users to configure their servers for throughput and per-core performance settings, allowing the prioritization of performance for certain workloads running on specific cores by sacrificing the performance of other cores.
1.6. Power efficient userspace waiting with the umwait x86 instructions
If an application needs to wait very short times they have to have a spinning loop, which consume power and hurt its thread siblings in a core with hyperthreads. This release enables userspace to use three new instructions that will be added to the upcoming Intel "Tremont" chips: umonitor, umwait and tpause; they let a userspace process wait for short amounts of time without spinning loops, thus letting applications to do those short waits spending less power and not impacting the performance of other hypertreads.
Recommended LWN article: Short waits with umwait
1.7. A few millions of new IPv4 addresses
This release contains a trivial, but impacting change: The 0.0.0.0/8 IPv4 range will be accepted by Linux (despite not being declared as such in standards) as a valid address range, allowing for 16 million new IPv4 addresses.
The IPv4 address space includes hundreds of millions of addresses reserved for obscure, or obsolete reasons, or for "future use". Instead of leaving these IP addresses unused, a IPv4 Cleanup Project has been have started to make them usable, generally. For more details, see this Potential IPv4 Unicast expansions talk.
1.8. Add the IoT ACRN supervisor
This release adds support of the ACRN hypervisor. ACRN is a flexible, lightweight reference hypervisor, built with real-time and safety-criticality in mind, optimized to streamline embedded development through an open source platform. It is built for embedded IoT with small footprint and real-time features. More details can be found in https://projectacrn.org/
2. Core (various)
(FEATURED) To solve the Unix design problem of PID reuse, Linux 5.1 added the pidfd_send_signal(2). Linux 5.2 added the CLONE_PIDFD to clone(2), which let users to create PIDs that were usable with pidfd_send_signal(2). But there are many processes creates with fork() or clone() without CLONE_PIDFD, which can cause problems for the Android's low memory killer (LMK) or service managers such as systemd. This release adds the pidfd_open(2) syscall: It allows a caller to retrieve pollable pidfd's for a process which did not get created using the CLONE_PIDFD clone(2) flag commit, commit, commit
(FEATURED) Adds polling support for pidfds. This allows process managers to know when a (non-parent) process dies in a race-free way. The notification mechanism used follows the same logic that is currently used when the parent of a task is notified of a child's death. With this patchset it is possible to put pidfds in an {e}poll loop and get reliable notifications for process (i.e. thread-group) exit commit, commit
- io_uring
Add support for recvmsg() commit
Add support for sendmsg() commit
Handle generic short reads automatically. This can happen fairly easily if parts of the buffered read is cached. Since the application needs to issue another request for the remainder, just do this internally and save kernel/user round trip while providing a nicer more robust API commit
Add support for Submission Queue Entry links. This allows Submission Queue Entries to depend on each other, enabling an application to eg queue a read-from-this-file,write-to-that-file pair commit
firmware: Add support for loading compressed firmware files. Currently the files in /lib/firmware counts up to 419MB, while they can be reduced to 130MB by file compression. Currently only XZ format is supported commit
Fixes for major copy_file_range() issues: Now the system call will actually check its range parameters correctly; refuse to copy into files for which the caller does not have sufficient privileges; update mtime and strip setuid like file writes are supposed to do; and allows copying up to the EOF of the source file instead of failing the call like we used to. Also, implement permitting filesystems to copy across devices commit, commit, commit, commit, commit, commit, commit, commit, commit
The clone() syscall has no space for new flags, so a replacement with space for more flags has been added. Recommended LWN article, commit, commit, commit
- Task scheduler
(FEATURED) Add utilization clamping support. This is a refinement of the energy aware scheduling framework for power-asymmetric systems added in Linux 5.0 with support for boosting of interactive and capping of background workloads: to make sure critical GUI threads get maximum frequency ASAP, and to make sure background processing doesn't unnecessarily move to cpufreq governor to higher frequencies and less energy efficient CPU modes commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add new tracepoints required for energy-aware scheduling testing commit, commit, commit, commit, commit, commit
console: Automatically choose a bigger font for high resolution screens commit
Remove "rootfs" from /proc/filesystems commit
ptrace: add PTRACE_GET_SYSCALL_INFO request to lets ptracer obtain details of the syscall the tracee is blocked in. There are two reasons for a special syscall-related ptrace request. Firstly, with the current ptrace API there are cases when ptracer cannot retrieve necessary information about syscalls. Second, ptracers also have to support a lot of arch-specific code for obtaining information about the tracee. strace 4.26 has been adapted to use this API commit, commit, commit, commit, commit, commit, commit
- locking
Part 2 of rwsem scalability improvements, which drastically improve the performance of this locking primitive. There is a lot of changes that makes it similar to qrwlock, including owner handoff for more fair locking commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Enable elimination of Tree-RCU softirq processing with kernel boot parameter rcutree.use_softirq. If set to zero, it moves all RCU_SOFTIRQ processing to per-CPU rcuc kthreads commit
Introduce CONFIG_PREEMPT_RT as a clear sign that the RT patchset will be fully integrated into the mainline kernel in the future merge
Adds a kernel parameter, kprobe_event to add and enable new kprobe events at boot time. The syntax is similar to tracing/kprobe_events interface but using ',' ';' instead of ' ' and '\n'. e.g. kprobe_event=p,func1,$arg1,$arg2;p,func2,$arg1 will add probes on func1 with the 1st and the 2nd arguments and on func2 with the 1st argument commit, commit
vmcore: add a kernel parameter novmcoredd, which disables device dump commit
Consolidation of the per-architecture vDSO code into a generic library, and conversion of x86 and ARM64 to it (others architectures will follow in the future). Besides the benefits of code reuse, the architectures arm64, compat arm64, arm and mips will gain support for CLOCK_BOOTTIME and CLOCK_TAI commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- kbuild
Refactor headers_install and support compile-test of UAPI headers commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Globally enable fall-through warning commit
Enable -Wuninitialized commit
Raise the minimum required binutils version to 2.21 commit
Add -fcf-protection=none when using retpoline flags commit
- GDB scripts
jump labels: optimize the case in which a static key has more than one entry commit, commit, commit, commit, commit
debugobjects: Try to reduce the level of contention on the global lock used by the debug objects code, which causes a lot of contention commit, commit, commit, commit, commit
binfmt_flat: make support for old format binaries optional commit
Globally enables the -Wimplicit-fallthrough commit
3. File systems
- XFS
Introduce new BULKSTAT and INUMBERS ioctls. They report features in the v5 file system format, such as inode birth time and the ability to do per-AG BULKSTAT and INUMBERS. The new structures fix the alignment and padding issues that plague the old ioctls. In xfsprogs, some wrapper functions will be introduced that allow new utilities to run on old kernels by emulating the new functionality commit, commit, commit, commit, commit, commit, commit, commit
The beginnings of multithreaded inode walks (e.g. quotacheck) commit
Implement cgroup aware writeback commit
- Btrfs
Detect fast implementation of crc32c on all architectures commit
- ext4
- Ceph
Adds a "ceph.snap.btime" vxattr to snapshot files and directories, when run alongside an MDS that provides InodeStat v3 information as implemented in https://github.com/ceph/ceph/pull/27077 commit, commit, commit, commit, commit
Add selinux support commit
Allow querying of STATX_BTIME in ceph_getattr commit
- CIFS
smbdirect no longer experimental commit
Add SMB3.1.1 GCM to negotiated crypto algorigthms commit
Add new mount option to retrieve mode from special ACE commit
Improve performance of POSIX open by querying inode number on open via create context commit
Allow query of symlinks stored as reparse points commit
Optimize open to not send query file internal info commit
- F2FS
- NFS
Allow NFS client to set up multiple TCP connections to the server using a new 'nconnect=X' mount option. Queue length is used to balance load commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Use sysfs in conjunction with the udev daemon to allow the client to run a configuration script to automatically set the NFSv4 client identifier on first use commit, commit, commit
Expose information about NFSv4 state held by knfsd on behalf of NFSv4 clients. This especially important for opens, which are currently invisible to userspace on the server, unlike locks (/proc/locks) and local processes' opens (under /proc/<pid>/). The approach is to add a new directory /proc/fs/nfsd/clients/ with subdirectories for each active NFSv4 client. Each subdirectory has an "info" file with some basic information to help identify the client and a "states" directory that lists the open state held by that client commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- UBIFS
- OCFS2
Add locking filter debugfs file commit
- CODA
Add hinting support for partial file caching commit
- AFS
Add support for the UAE error table commit
4. Memory management
dma-buf: give each buffer a full-fledged inode. By traversing /proc/*/fd and /proc/*/map_files, processes with CAP_ADMIN can get a lot of fine-grained data about how shmem buffers are shared among processes commit, commit, commit
Provide init_on_alloc and init_on_free boot options. These are aimed at preventing possible information leaks and making the control-flow bugs that depend on uninitialized values more deterministic. Enabling either of the options guarantees that the memory returned by the page allocator and SL[AU]B is initialized with zeroes. (SLOB allocator isn't supported at the moment). Enabling init_on_free also guarantees that pages and heap objects are initialized right after they're freed, so it won't be possible to access stale data by using a dangling pointer commit, commit
Improve CONFIG_DEBUG_PAGEALLOC so that it has even smaller overhead when not enabled at boot time, and also when enabled (Patch 3), and extended it to perform the struct page checks more often when enabled. Now it can be configured in when building a distro kernel without extra overhead, and debugging page use after free or double free can be enabled simply by rebooting with debug_pagealloc=on commit, commit, commit
- memory control group
Introduce a new <debugfs>/memcg_slabinfo file which is somewhat similar to /proc/slabinfo in format, but lists only information about kmem caches that have child memcg kmem caches. Information available in /proc/slabinfo are not repeated in memcg_slabinfo commit
The memory controller exposes a memory.events file which shows the number of times events have happened for the whole tree rooted at a given memcg. However there are users which are only interested in the events happening at a specific level of the memcg tree and not in the events in the underlying tree rooted at that memcg, and find memory.events inconvenient. This release introduces a memory.events.local file to the memcg which shows and notify for the events at the memcg level commit
On cgroup removal, reparent slab memory to the parent cgroup; lack of this funcionality was preventing dying cgroups from being reclaimed commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
smaps: Report separate components (anon, file, and shmem) for PSS in smaps_rollup proc file. This helps understand and tune the memory manager behavior in consumer devices, particularly mobile devices commit
swap: use rbtree for swap_extent instead of a linked list, which greatly improves swap performance when there are lots of processes accessing the swap device concurrently and swap is very fragmented commit
Sub-section memory hotplug support: Generalise the memory hotplug code so that pmem can use it more completely. Then remove the hacks from the libnvdimm code which were there to work around the memory-hotplug code's constraints commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
KASAN: Add object validation in ksize() to avoid unconditionally unpoisoning the whole shadow memory region associated with an allocation. This can lead to various undetected bugs commit, commit, commit, commit, commit, commit
slab: add defenses against slab cache confusion (as seen in real-world exploits) and gracefully handles type confusions when trying to look up slab caches from an arbitrary page commit, commit, commit
device-dax: "Hotremove" persistent memory that is used like normal RAM commit
Show number of vmalloc pages in /proc/meminfo commit
vmscan: scan anonymous pages on file refaults. When file refaults are detected and there are many inactive file pages, the system never reclaim anonymous pages, the file pages are droppedaggressively when there are still a lot of cold anonymous pages and system thrashes. This issue impacts the performance of applications with large executable, e.g. chrome commit
tools/memory-model: Add data-race detection commit
Extend tools/vm/slabinfo to improve the fragmentation information by enabling sorting of caches by number of partial slabs commit, commit, commit, commit
5. Block layer
dm crypt: implement eboiv, encrypted byte-offset initialization vector. This IV is used in some BitLocker devices with CBC encryption mode commit
dm kcopyd: Increase default sub-job size to 512KB to improve performance, also, add dm_mod.kcopyd_subjob_size_kb module parameter to allow users to fine tune the sub-job size of kcopyd commit
dm snapshot: Add optional discard features to DM snapshot which allow freeing space from a DM device whose free space was exhausted commit
nbd: add netlink reconfigure resize support commit
rbd: support for object-map and fast-diff commit
sed-opal: add ioctl for setting the shadow MBR done flag which can be useful for unlocking an OPAL disk on boot, and also add ioctl for writing to the shadow MBR commit, commit
6. Tracing, perf and BPF
- BPF
libbpf: Add BTF-to-C dumping support, allowing to output a subset of BTF types as a compilable C type definitions. This is useful by itself, as raw BTF output is not easy to inspect and comprehend. But it's also a big part of BPF CO-RE (compile once - run everywhere) initiative aimed at allowing to write relocatable BPF programs, that won't require on-the-host kernel headers (and would be able to inspect internal kernel structures, not exposed through kernel headers) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Implements initial version (as discussed at LSF/MM2019 conference) of a new way to specify BPF maps, relying on BTF type information, which allows for easy extensibility, preserving forward and backward compatibility commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Adds support for propagating congestion notifications to TCP from cgroup inet skb egress BPF programs commit, commit, commit, commit, commit, commit
Add SO_DETACH_REUSEPORT_BPF to detach BPF prog from reuseport sk commit, commit
Add a sock_ops callback that can be selectively enabled on a socket by socket basis and is executed for every RTT. BPF program frequency can be further controlled by calling bpf_ktime_get_ns and bailing out early commit, commit, commit, commit, commit, commit, commit, commit
Allow CGROUP_SKB programs to use bpf_skb_cgroup_id() helper commit
Eliminate zero extensions for sub-register writes commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Export bpf_sock for BPF_PROG_TYPE_CGROUP_SOCK_ADDR prog type commit and for BPF_PROG_TYPE_SOCK_OPS prog type commit
allow wide (u64) aligned stores for some fields of bpf_sock_addr commit, commit, commit
Adds support for fq's Earliest Departure Time to HBM (Host Bandwidth Manager) commit
Introduces verifier support for bounded loops and other improvements commit, commit, commit, commit, commit, commit, commit, commit, commit
bpf: getsockopt and setsockopt hooks commit, commit, commit, commit, commit, commit, commit, commit, commit
libbpf: add bpf_link and tracing attach APIs commit, commit, commit, commit, commit, commit, commit, commit, commit
- perf
perf intel-pt: Allow using time ranges with Intel PT, i.e. these features, already present but not optimially usable with Intel PT, should be now commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
perf intel-pt: Add support for samples to contain IPC ratio, collecting cycles information from CYC packets, showing the IPC info periodically, because Intel PT does not update the cycle count on every branch or instruction, the incremental values will often be zero. When there are values, they will be the number of instructions and number of cycles since the last update, and thus represent the average IPC since the last IPC value commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
perf stat: Introduce a new option --per-die to support per-die aggregation. The output of per-core aggregation will be changed from "S0-C0" to "S0-D0-C0". For perf stat record/report, there is no die information when processing the old perf.data. The per-die result will be the same as per-socket commit, commit
perf record: Allow mixing --user-regs with --call-graph=dwarf commit
perf record: Add support to collect callchains from kernel or user space only commit
perf diff: perf diff currently can only diff symbols (functions). This release expands the perf diff capabilities to diff cycles of individual programs blocks as reported by timed LBR commit, commit, commit, commit, commit, commit, commit
perf tools: Display eBPF code in intel_pt trace commit, commit, commit, commit, commit, commit, commit
perf intel-pt: some improvements for the handling of core-to-bus ratio (CBR), including exporting it commit, commit, commit, commit, commit, commit, commit
Add missing --namespaces option to 'perf top', to generate and process namespace events, just like present for 'perf record' commit
perf trace: Auto bump rlimit(MEMLOCK) for eBPF maps sake commit
perf: Allow non-privileged uprobe for user processes commit
probes: uaccess: Add support user-space access: The current probes are not enough to access user-space variables from kprobe events on some arch, to solve this issue uniformly this release adds a "ustring" type for fetching user-space string from kprobe events, and support user-space dereference syntax for probe event arguments to dereference the data-structure or array in user-space commit, commit, commit, commit, commit, commit
7. Virtualization
Add virtio-iommu driver. The virtio IOMMU is a para-virtualized device, allowing to send IOMMU requests such as map/unmap over virtio transport without emulating page tables. This implementation handles ATTACH, DETACH, MAP and UNMAP requests commit
virtio-pmem: Add virtio pmem driver that provides access to virtio-pmem devices, storage devices that are mapped into the physical address space - similar to NVDIMMs - with a virtio-based flushing interface commit
virtio_net: enable napi_tx by default. NAPI tx mode improves TCP behavior by enabling TCP small queues (TSQ). TSQ reduces queuing ("bufferbloat") and burstiness commit
vhost: accelerate metadata access. Test shows about 24% improvement on TX PPS commit, commit, commit, commit, commit, commit
vhost_net: disable zerocopy by default commit
veth: introduces bulk XDP_TX in veth. Improves XDP_TX performance by approximately 9% commit
vfio: mdev: Send uevents around parent device registration commit
vmw_balloon: Compaction and shrinker support commit, commit, commit, commit
xen: remove tmem driver commit
8. Cryptography
- Keys
Make keys and keyrings more namespace aware commit, commit, commit, commit, commit, commit, commit, commit, commit
Change the permissions model used by keys and keyrings to be based on an ACL commit, commit
Add a keyctl to atomically move a link to a key from one keyring to another commit
Add a keyctl function that requests a set of capability bits to find out what features are supported commit
drbg: add FIPS 140-2 CTRNG for noise source commit
jitter: update implementation to upstream 2.1.2 commit
xxhash: Implement xxHash support. xxHash is a non-cryptographic hash algorithm. Extremely fast, working at speeds close to RAM limits commit
9. Security
Add support for measuring the boot command line during kexec commit, commit, commit
IMA: support per policy rule template format support, needed for a couple of new/proposed features (eg. kexec boot command line measurement, appended signatures, and VFS provided file hashes) commit
TPM: Add support for TCG2 event logs on EFI systems commit, commit, commit, commit
Add the ability to filter audit records based on network address family commit
10. Networking
(FEATURED) IPv4: Allow 0.0.0.0/8 as a valid address range, allowing for 16 million new IPv4 addresses. This is part of the IPv4 Cleanup Project, started to increase the number of available unicast IPv4 addresses commit
User API and initial implementation for nexthop objects, designed to improve the scalability of routes commit, commit, commit, commit, commit, commit,
Enable nexthop objects with IPv4 and IPv6 routes. This is the last part of a long term optimization work, thanks to it a full internet fib (743,799 routes based on a pull in January 2019) can be pushed to the kernel in 4.3 seconds commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Support multipath hashing on inner IP pkts for GRE tunnel commit
IPv4: enable route flushing in network namespaces commit
IPv6: Extend flowlabel_reflect sysctl bitmask to allow conditional reflection of incoming flowlabels in echo replies commit
TCP: add TFO backup key commit, commit, commit, commit, commit, commit
TCP: add optional per socket transmit delay. Adding delays to TCP flows is crucial for studying behavior of TCP stacks commit
Fix listing (IPv4, IPv6) and flushing (IPv6) of cached route exceptions by allowing userspace to clearly request cached routes with the RTM_F_CLONED flag used as a filter (in conjuction with strict checking) and by retrieving and dumping cached routes if requested commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Unix Sockets: Adds the ability for netlink to report a socket's UID along with the commit
- Bluetooth:
batman-adv: Add routable multicast optimizations commit, commit, commit, commit, commit
Netdevice HW MPLS features are not passed from device driver's netdevice to upper netdevice, specifically VLAN and bonding netdevice which are created by the kernel when needed. This prevents enablement and usage of HW offloads. This release inherit the MPLS features from lower netdevices to allow the HW offloads commit, commit
bonding: add an option to specify a delay between peer notifications commit
devlink: To improve visibility of representor netdevice, its association with PF or VF, physical port, two new devlink port flavours are added as PCI PF and PCI VF ports commit, commit, commit, commit, commit
Decoupling PHYLINK from struct net_device commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
dsa: adds support for enabling or disabling the flooding of unknown multicast traffic on the CPU ports commit
- Netfilter
Add support for hardware offloads commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add native connection tracking support for the bridge. Before this patchset, only chance for people to do stateful filtering is to use the br_netfilter emulation layer, this is a step forward to deprecate it commit, commit, commit, commit, commit, commit, commit, commit, commit
Add SYNPROXY module support in nf_tables. It preserves the behaviour of the SYNPROXY target of iptables but structured in a different way to propose improvements in the future commit
Support to match IPv4 options in nf_tables commit
Support to restore expiration time in set element commit
nft_ct: allow to add, list and delete expectations via nft objref infrastructure and assigning these expectations via nft rule. This allows manual port triggering when no helper is defined to manage a specific protocol commit
Support for bridge vlan protocol matching commit
Support for bridge pvid matching commit
xt_owner: Add supplementary groups option commit
ipoib: show VF broadcast address commit and correcly show a VF hardware address commit
- ipvs
- mac80211
rds: add per rds connection cache statistics commit
- RDMA
Provides dynamic statistics infrastructure using a netlink interface to configure and retrieve those counters. It allows to users monitor various objects by binding to them counters commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Delete the ib_ucm module commit
Add support for reporting link state for IP-over-Infiniband net devices commit
Add RDMA_NLDEV_GET_CHARDEV. It allows userspace to ask the kernel for information on a specific char device implemented under the RDMA subsytem. For instance the kernel can ask for details on the uverbs0 chardev related to the mlx5_0 device commit, commit, commit
Implements the iWARP RDMA transport over the Linux TCP/IP network stack. It enables a system with a standard Ethernet adapter to interoperate with a iWARP adapter or with another system running the SIW driver commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- Packet scheduler
Introduce tc connection tracking. capabilities in tc sw datapath. It does so via a new tc action, called act_ct, and new tc flower classifier matching on conntrack state, mark and label commit, commit, commit
Introduce act_ctinfo, a new tc filter action module. It is designed to restore DSCPs stored in conntrack marks into the ipv4/v6 diffserv field. The feature is intended for use and has been found useful for restoring ingress classifications based on egress classifications across links that bleach or otherwise change DSCP, typically home ISP Internet links. Restoring DSCP on ingress on the WAN link allows qdiscs such as CAKE to shape inbound packets according to policies that are easier to indicate on egress commit
Introduces a new traffic control action module that allows the manipulation of the MPLS headers of packets. The code implements functionality including push, pop, and modify commit, commit, commit, commit, commit
Add txtime-assist support for taprio commit, commit, commit, commit, commit, commit, commit, commit
em_ipt: add support for addrtype commit, commit, commit, commit
cls_matchall: allow to delete filter commit
team: add ethtool ops to show total speed commit
isdn: remove isdn4linux commit
11. Architectures
11.1. ARM
New SoCs
- New Boards / platforms
Aspeed BMC support for a number of new server platforms: Facebook YAMP BMC commit, Inspur fp5280g2 BMC machine commit, Microsoft Olympus BMC commit, Swift BMC machine commit, YADRO VESNIN BMC commit, and Lenovo Hr630 BMC commit
Novtech's Meerkat96 (i.MX7) commit
STMicro Avenger96 board commit
Purism Librem 5 devkit (i.MX8MQ) commit
Google Cheza (Qualcomm SDM845) commit
Qualcomm Dragonboard 845c (Qualcomm SDM845) commit
Hugsun X99 TV Box (Rockchip RK3399) commit
Khadas Edge/Edge-V/Captain (Rockchip RK3399) commit
Add core dtsi file for RK3399Pro SoCs commit
Add support for phyBOARD-REGOR-AM335x commit
Introduce the NXP LS1021A-TSN board commit
meson8b: mxq: improve support for the TRONFY MXQ S805 commit
The Netx platform (Netx 100/500) is removed commit
Workaround errata A12 857271 / A17 857272 commit
Workaround for I-Cache line size mismatch between CPU cores commit
KVM: Support chained PMU counters commit, commit, commit, commit, commit
perf uncore PMU event alias support for Hisi hip08 ARM64 platform commit, commit, commit, commit
- ARM64 specific changes
ptrace: add support for syscall emulation PTRACE_SYSEMU and PTRACE_SYSEMU_SINGLESTEP commit, commit, commit, commit
Slight performance improvement by keeping softirqs enabled while touching the FPSIMD/SVE state commit, commit, commit
Allow user selection of ARM64_MODULE_PLTS, currently only done via RANDOMIZE_BASE (and an erratum workaround), allowing modules to spill over into the vmalloc area commit
Expose a couple of ARMv8.5 features to user (HWCAP): CondM (new XAFLAG and AXFLAG instructions for floating point comparison flags manipulation) and FRINT (rounding floating point numbers to integers) commit, commit
KVM: Propagate full Spectre v2 workaround state to KVM guests commit
Enable the Arm Statistical Profiling Extension (SPE) on ACPI platforms commit, commit, commit, commit
crypto: arm64/aes-ce - implement 5 way interleave for ECB, CBC and CTR commit, commit
Make CONFIG_ZONE_DMA32 configurable commit
11.2. x86
(FEATURED) Enable user wait instructions umonitor, umwait and tpause commit, commit, commit, commit, commit
Add /proc/<pid>/arch_status for arch-specific information about the task. In this release, the field AVX512_elapsed_ms is added to show the milliseconds elapsed since the last time AVX-512 usage was recorded. Because AVX-512 components can cause core turbo frequency drop, this information is useful as a heuristic hint for the user space job scheduler to cluster the AVX-512 using tasks together commit, commit, commit
(FEATURED) Intel Speed Select Technology: A powerful new collection of features giving more granular control over CPU performance for optimized performance. With Intel SST, one server can be configured for power and performance for variety of diverse workload requirements commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Enumerate the new AVX-512 BFLOAT16 instructions. AVX-512 BFLOAT16 support 16-bit BFLOAT16 floating-point format (BF16) for deep learning optimization commit
Implement multi-die/package topology support on Intel CPUs and expose the die topology to sysfs knobs. There should be no behavioral impact on cache, NUMA, scheduler, perf and other topologies and overall system performance commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
(FEATURED) Add support for Zhaoxin processors, based on the VIA Centaur technology commit, commit, commit
(FEATURED) Add the support of ACRN guest under x86. ACRN is a flexible, lightweight reference hypervisor, built with real-time and safety-criticality in mind, optimized to streamline embedded development through an open source platform. It is built for embedded IOT with small footprint and real-time features. More details can be found in https://projectacrn.org/. commit, commit
Add restrictions for kexec/kdump jumping between 5-level and 4-level kernel commit, commit, commit
Add a new "xonly" mode for vsyscalls and make it the default. xonly is a bit more secure -- there are exploits that rely on read access to the vsyscall page commit, commit, commit, commit, commit, commit, commit, commit
tools/power turbostat: Add Ice Lake NNPI support commit and Jacobsville support commit
Attempt to “pin” sensitive bits in CR4 and CR0 to avoid them getting disabled commit, commit
- Platforms
OLPC: Add XO-1.75 EC driver commit
OLPC: Add a config menu category for XO 1.75 commit
OLPC: Add a regulator for the DCON commit
chrome: Add Chrome OS EC ISHTP driver commit
chrome: wilco_ec: Add Boot on AC support commit
chrome: wilco_ec: Add event handling commit
chrome: wilco_ec: Add telemetry char device interface commit
chrome: wilco_ec: Add version sysfs entries commit
chrome: cros_ec_debugfs: Add debugfs entry to retrieve EC uptime commit
asus-nb-wmi: Add microphone mute key code commit
asus-wmi: Switch fan boost mode commit
hp_accel: Add support for HP ProBook 450 G0 commit
wmi: add Xiaomi WMI key driver commit
- perf
intel_th: Add Ice Lake NNPI support commit
- Virtualization
Add "nopv" parameter to disable the PV optimizations forcing the guest to run as generic guest with no PV drivers. Due to the limitation of some PV guests(XEN PV, XEN PVH and jailhouse), 'nopv' is ignored for XEN PV, jailhouse and XEN PVH if booting via Xen-PVH boot entry. For compatibility reason, "xen_nopv" is keeped and mapped to "nopv" commit, commit, commit
KVM: VMX optimizations - 12% improvement on vmexit speed 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
KVM: Emulate MSR_IA32_MISC_ENABLE MWAIT bit commit
KVM: When sending a call-function IPI-many to vCPUs, yield if any of the IPI target vCPUs was preempted. 17% performace increase of ebizzy benchmark can be observed in an over-subscribe environment commit, commit, commit,
KVM: svm: add nrips module parameter commit
KVM: Add support to expose Intel V2 Extended Topology Enumeration Leaf for some new systems with multiple software-visible die within each package commit
KVM: x86: PMU Event Filter commit
KVM: x86: expose AVX512_BF16 feature to guest commit
11.3. PowerPC
Enable HAVE_ARCH_HUGE_VMAP commit
Adds a new procfs file /proc/powerpc/vcpudispatch_stats for providing statistics around how the LPAR processors are dispatched by the POWER Hypervisor, in a shared LPAR environment commit, commit, commit, commit, commit, commit, commit, commit, commit
11.4. S390
virtio: support protected virtualization commit, commit, commit, commit, commit, commit, commit, commit,
dasd: Add discard support for ESE volumes commit
dasd: Add dynamic formatting support for ESE volumes commit
dasd: Add new ioctl to release space commit
sclp: remove call home support commit
perf vendor events s390: Add JSON files for machine type 8561 commit
11.5. ARC
Page fault handling refactor/tidy-up commit, commit, commit, commit, commit, commit, commit, commit
Entry code refactor/optimize to use double load/stores commit, commit, commit
Support for Edge Triggered IRQs on ARC IDU intc commit, commit, commit
11.6. C-SKY
perf annotate: Add C-SKY support commit
11.7. PA-RISC
Add dynamic ftrace commit
11.8. RISC-V
11.9. UML
Support time travel mode commit
12. Drivers
12.1. Graphics
Add new driver for ST-Ericsson MCDE commit
Add driver for the Ingenic JZ47xx SoCs commit
Add HDR Metadata Parsing and handling in DRM layer and amdgpu and i915 commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- amdgpu
(FEATURED) Initial Navi 10 support. It adds core driver support, displays (DCN2), GFX and compute (GFX10), System DMA (SDMA 5), Multimedia decode and encode (VCN2) and Power management merge
Add pmu counters commit
Add MEM_LOAD to amdgpu_pm_info debugfs file commit
Add connector debugfs for "output_bpc" commit
Color space ycbcr709 support commit
Enable ppfeaturemask module parameter support on Vega20 commit
Expose SMU7 asics realtime memory utilization commit
Expose Vega12 current gpu activity commit
Expose Vega12 current power commit
Expose Vega12 realtime memory utilization commit
Expose Vega20 realtime memory utilization commit
Expose current hotspot and memory temperatures V2 commit
Support SMU metrics table on Vega12 commit
Support hotspot/memory critical limit values commit
Support hwmon temperature channel labels V2 commit
Support ppfeatures sysfs interface on sw smu routine commit
Support sw smu hotspot and memory temperature retrieval commit
Support temperature emergency max values commit
Add PCIe replay count sysfs file commit
Add Unique Identifier sysfs file unique_id v2 commit
Add module parameter for specifying default ABM level commit
Remove module parameter vram_page_split commit
Report firmware versions with sysfs commit
Add badpages sysfs interafce commit
Add new sysfs interface for memory realtime utilization commit
- amdkfd
- intel
Add i2c symlink under hdmi connector commit
Ice Lake multi-segmented gamma support commit
Mule Creek Canyon PCH support for EHL commit
Move i915.alpha_support parameter to i915.force_probe commit
Support for DP YCbCr4:2:0 outputs commit, commit, commit, commit, commit, commit
New GuC firmwares (for SKL, BXT, KBL, GLK, ICL) with updated ABI interface commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add support for asynchronous display power disabling commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Allow userspace to clone contexts on creation commit
Enable render context support for Ironlake (gen5) and gen4 (Broadwater to Cantiga). This allows userspace to assume that the GPU retains their state from one batch to the next, minimising the amount of state it needs to reload and manually save across batches commit, commit
Engine discovery query commit
Make default value for i915.mmio_debug a compile time option commit
debugfs: HDCP 2.2 capability read commit
- komeda
Add format support for Y0L2, P010, YUV420_8/10BIT commit
Add scaler support commit, commit, commit, commit, commit, commit
Add rotation support commit
Adds slave pipeline support commit
Add writeback support commit
Added AFBC support for komeda driver commit
Add SMMU support commit
Adds z-order support commit
Enable color-encoding (YUV format) support commit
- msm
- tda998x
- armada
- rockchip
RX3328 support commit
- panfrost
- rcar-du
- omapdrm
- stm
- v3d
- sii902x
Implement HDMI audio support commit
- meson
- vc4
- atmel-hlcdc
Add sam9x60 LCD controller commit
- imx
- nouveau
Recognise TU116 chipset commit
- vmwgfx
- panel
Add OSD101T2587-53TS driver commit
Add driver for Samsung S6E63M0 panel commit
Add support for Armadeus ST0700 Adapt commit
Add support for EDT ETM0430G0DH6 commit
simple: Add Evervision VGG804821 panel support commit
simple: Add FriendlyELEC HD702E 800x1280 LCD panel commit
simple: Add KOE tx14d24vm1bpa display support (320x240) commit
simple: Add TFC S9700RTWV43TR-01B 800x480 panel support commit
simple: Add support for EDT ET035012DM6 commit
simple: Add support for OSD101T2045-53TS commit
simple: Add support for VXT VL050-8048NT-C01 panel commit
- fbdev
12.2. Storage
ahci_sunxi: Increased SATA/AHCI DMA TX/RX FIFOs commit
- lpfc
nvme: enable to inject errors into admin commands commit, commit
- scsi
- megaraid_sas
Add module parameter for FW Async event logging commit
Add support for High IOPS queues commit
Add support for MPI toolbox commands commit
Add support for Non-secure Aero PCI IDs commit
Dump system interface regs from sysfs commit
Enable coalescing for high IOPS queues commit
Export RAID map id through sysfs commit
Export RAID map through debugfs commit
Introduce various Aero performance modes commit
Offload Aero RAID5/6 division calculations to driver commit
Set affinity for high IOPS reply queues commit
Use high IOPS queues based on IO workload commit
mpt3sas: Introduce perf_mode module parameter commit
osst: kill obsolete driver commit
pm80xx: Event log size through sysfs commit
storvsc: Add ability to change scsi queue depth commit
ufshdc-pci: Add Intel PCI IDs for EHL commit
12.3. Drivers in the Staging area
isdn: move capi drivers to staging commit
allegro: add Allegro DVT video IP core driver commit, commit
meson: add v4l2 m2m video decoder driver commit
rockchip/vpu: Add support for MPEG-2 decoding on RK3288 commit, commit and on RK3399 commit
tegra-vde: Add IOMMU support commit
erofs: erofs decompression inplace commit, commit, commit, commit, commit, commit, commit, commit
erofs: support statx commit
kpc2000: export more device attributes via sysfs commit
mt7621-dts: add support for second network interface commit
wilc1000: add passive scan support commit
wilc1000: added support to dynamically add/remove interfaces commit
12.4. Networking
- Bluetooth
Add new 13d3:3491 QCA_ROME device commit and 13d3:3501 QCA_ROME device commit
btbcm: Add entry for BCM4359C0 UART bluetooth commit
btusb: Add protocol support for MediaTek MT7663U USB devices commit and for MediaTek MT7668U USB devices commit
hci_mrvl: Add serdev support commit
btrtl: Add support for RTL8723DU commit
btrtl: Additional Realtek 8822CE Bluetooth devices commit
- Infiniband
hns: add a mix multihop addressing for support the 32K specification of send wqe from UM commit, commit
mlx5: Enable RDMA applications that use the DEVX interface to subscribe and read device asynchronous events commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
mlx5: vport metadata matching commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
mlx5: TLS TX HW offload support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
mlx5: provides the support for mlx5 Firmware devlink health and sw reset commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
mlx5: add support for GENEVE tunnel encap/decap flows offload: encapsulating layer 2 Ethernet frames within layer 4 UDP datagrams commit, commit, commit, commit, commit
mlx5: introduce VHCA tunnel mechanism to DEVX interface needed for Bluefield SOC commit, commit
mlx5: Support querying max VFs from device commit
mlx5e: improvements to the AF_XDP kernel infrastructure and AF_XDP support in mlx5e commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
mlxsw: expose flash update status to user commit, commit, commit, commit, commit, commit, commit
mlxsw: adds support for physical hardware clock for Spectrum-1 ASIC only commit, commit, commit, commit, commit, commit, commit, commit, commit
mlxsw: Hardware monitoring enhancements commit, commit, commit, commit, commit, commit, commit, commit
mlxsw: PTP timestamping support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
mlxsw: Add the ability to enable or disable the PTP shaper on the port in two scenarios: 1. When the user wants to enable/disable the hardware time stamping, 2. When the port is brought up or down (including port speed change) commit, commit, commit, commit, commit, commit, commit, commit
mlxsw: Implement flower ingress device matching offload commit, commit, commit, commit, commit, commit, commit, commit
mlxsw: Improve IPv6 route insertion rate commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
aquantia: implement vlan offloads commit, commit, commit, commit, commit, commit, commit, commit
- ath10k
Add WMI diag fw logging support for WCN3990 commit
Added support to reset HTT stats in debugfs commit
Extended the HTT stats support to retrieve Mu-MIMO related stats commit
Add PN replay protection for high latency devices commit
Add support for controlling tx power to a station commit
Add support for firmware crash recovery on SDIO chip commit
Enable QCA6174 hw3.2 SDIO hardware commit
Enabling tx stats support over pktlog commit
axienet: Add optional support for Ethernet core interrupt commit
bnxt_en: Add XDP_REDIRECT support commit, commit, commit, commit
cxgb4/libcxgb/cxgb4i/cxgbit: enable eDRAM page pods for iSCSI commit
dpaa2-eth: Add support for MQPRIO offloading commit, commit, commit
- Distributed Switch Architecture
microchip: Support optional 125MHz SYNCLKO output commit
mv88e6xxx: support for mv88e6250 commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
sja1105: FDB switchdev support for the second generation of switches (P/Q/R/S), Management route support for SJA1105 P/Q/R/S, and Logic to hide private DSA VLANs from the 'bridge fdb' commands commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
sja1105: PTP support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
e1000e: PCIm function state support commit
- ena
- enetc
Add ag71xx driver commit
- ethermediatek
etherti: cpsw: add XDP support commit
gve: Google gve network driver for Compute Engine Virtual NIC commit, commit, commit, commit
- hinic
hisilicon: Add support for HI13X1 to hip04_eth commit
- hns3
hns: add support for vlan TSO commit
i40e: Add macvlan support on i40e commit
- ice
igb: Add RR2DCDELAY to ethtool registers dump commit
igc: Add flow control support commit
isdn: gigaset: remove i4l support commit, remove hisax driver commit
- iwlwifi
Add support for SAR South Korea limitation commit
Add new cards for 9000 and 20000 series commit
Add support for hr1 RF ID commit
pcie: add support for qu c-step devices commit
dbg_ini: add consecutive trigger firing support commit
dbg_ini: implement dump info collection commit
dbg_ini: support debug info TLV commit
mvm: add a debugfs entry to set a fixed size AMSDU for all TX packets commit
mvm: remove multiple debugfs entries commit
Add 3 new IDs for the 9000 series commit
ixgbe: implement support for SDP/PPS output on X550 hardware commit
ll_temac: Enable multicast support commit
- macb
- mscc
- mt76
- mvpp2
socionext: netsec: add XDP support commit
- nfp
Add TLS RX offload commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add basic TLS TX offload commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
nfp: extend flower capabilities for GRE tunnel offload commit, commit, commit, commit, commit
- phy
qed*: Improve performance on 100G link for offload protocols commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
qed: Add support for Timestamping the unicast PTP packets commit
r8169: remove support for RTL_GIGA_MAC_VER_01 commit
rt2800: initial watchdog implementation commit
- rtw88
- stmmac
Introduces selftests support in stmmac driver and add 9 basic sanity checks and MAC loopback support for all cores within the driver commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Enable dwmac4 jumbo frame more than 8KiB commit
Implement RX Coalesce Frames setting commit
Introducing support for Page Pool commit
dwmac-mediatek: enable Ethernet power domain commit
socfpga: add RMII phy mode commit
sun8i: add support for Allwinner H6 EMAC commit
qmi_wwan: add D-Link DWM-222 A2 device ID commit
- wil6210
Add detection of 1000BaseX link mode support commit
12.5. Audio
hda: Add Elkhart Lake PCI ID commit
- ASoC
Add support for Conexant CX2072X CODEC commit
Intel: Add machine driver for CX2072X on BYT/CHT platforms commit
Intel: Skylake: Add Cometlake PCI IDs commit
SOF: Add Comet Lake PCI IDs commit
SOF: debug: add new debugfs entries for IPC flood test commit
SOF: soundwire: add initial soundwire support commit
cs47l35: Add codec driver for Cirrus Logic CS47L35 commit
cs47l85: Add codec driver for Cirrus Logic CS47L85 commit
cs47l90: Add codec driver for Cirrus Logic CS47L90 commit
madera: Add common support for Cirrus Logic Madera codecs commit
meson: add g12a tohdmitx control commit
meson: axg-card: add basic codec-to-codec link support commit
msm8916-wcd-digital: Add sidetone support commit
rk3399_gru_sound: Support 32, 44.1 and 88.2 kHz sample rates commit
rt1011: Add RT1011 amplifier driver commit
rt1308: Add RT1308 amplifier driver commit
stm32: dfsdm: add 16 bits audio record support commit
sun4i-spdif: Add support for H6 SoC commit
ti: davinci-mcasp: Support for auxclk-fs-ratio commit
12.6. Tablets, touch screens, keyboards, mouses
- HID
logitech-dj: Add usb-id for the 27MHz MX3000 receiver commit
uclogic: Add support for Ugee Rainbow CV720 commit
wacom: Add 2nd gen Intuos Pro Small support commit
wacom: add new MobileStudio Pro support commit
logitech-dj: add the Powerplay receiver commit
intel-ish-hid: ipc: add EHL device id commit
Add 044f:b320 ThrustMaster, Inc. 2 in 1 DT commit
Add Apple SPI keyboard and trackpad driver commit
iforce: add the Saitek R440 Force Wheel commit
12.7. TV tuners, webcams, video capturers
coda: add decoder MPEG-2 profile and level controls commit and for MPEG-4 profile and level controls commit
Add analog mode support for Medion MD95700 commit, commit, commit, commit, commit, commit, commit, commit
cedrus: Add H264 decoding support commit, commit, commit, commit
cx231xx-cards: Add Hauppauge 955Q variant commit
fdp1: Support M3N and E3 platforms commit
Add Hauppauge HVR1955/1975 devices commit, commit, commit, commit
mt9m111: add regulator support commit
st-mipid02: Add support of RGB565, YUV and JPEG to MIPID02 bridge commit, commit, commit, add support of V4L2_CID_LINK_FREQ commit
sun6i: Support A83T variant commit
v4l2-ctrl: add MPEG-2 profile and level controls commit
venus: Add support for H265 controls commit
vicodec: add V4L2_CID_MIN_BUFFERS_FOR_OUTPUT commit
12.8. Universal Serial Bus (USB)
Add usbfs ioctl, USBDEVFS_CONNINFO_EX, to retrieve the connection parameters commit
chipidea: imx: add imx7ulp support commit
dwc3: pci: Add Support for Intel Elkhart Lake Devices commit and for TigerLake Devices commit
dwc3: qcom: Add support for booting with ACPI commit
phy: phy-mxs-usb: add imx7ulp support commit
renesas_usbhs: Add support for RZ/A2 commit
serial: ftdi_sio: add ID for isodebug v1 commit
serial: option: add support for GosunCn ME3630 RNDIS mode commit
serial: option: Add support for ZTE MF871A commit
serial: option: add D-Link DWM-222 device ID commit
serial: option: Add Motorola modem UARTs commit
serial: option: add the BroadMobi BM818 card commit
12.9. Serial Peripheral Interface (SPI)
Add spi driver for Socionext SynQuacer platform commit
bcm2835: add driver stats to debugfs commit
bcm2835: make the polling duration limits configurable commit
pxa2xx: Add support for Intel Elkhart Lake commit
Add M53Menlo CPLD compatible commit
12.10. Watchdog
watchdog: allow setting deadline for opening /dev/watchdogN. This allow one to set a maximum time for which the kernel will feed the watchdog, thus ensuring that either userspace has come up, or the board gets reset. This allows fallback logic in the bootloader to attempt some recovery (for example, if an automatic update is in progress, it could roll back to the previous version) commit, commit, commit
hpwdt: Add module parameter kdumptimeout commit
imx_sc: Add pretimeout support commit
12.11. Serial
8250: Add support for higher baud rates to Pericom chips commit
fsl_lpuart: add imx8qxp support commit
mpsc: Remove obsolete MPSC driver commit
mediatek: support Rx in-band wakeup commit
tty: serial: netx: Delete driver commit
12.12. ACPI, EFI, cpufreq, thermal, Power Management
cpufreq: Add imx-cpufreq-dt driver commit
cpufreq: add driver for Raspberry Pi commit
cpufreq: imx-cpufreq-dt: Add i.MX8MN support commit
powercap/intel_rapl: add support for ICX commit
powercap/intel_rapl: add support for ICX-D commit
powercap/rapl: Add Ice Lake NNPI support to RAPL driver commit
12.13. Real Time Clock (RTC)
bd70528: Initial support for ROHM bd70528 RTC commit
imx-sc: add rtc alarm support commit
pcf2123: add alarm support commit and remove sysfs register view commit
rk808: Add RK809 and RK817 support commit
tegra: Turn into regular driver commit
12.14. Voltage, current regulators, power capping, power supply
- power
reset: nvmem-reboot-mode: use NVMEM as reboot mode write interface commit
supply: Add HWMON compatibility layer commit
supply: Initial support for ROHM BD70528 PMIC charger block commit
supply: add input power and voltage limit properties commit
power_supply: wilco_ec: Add charging config driver commit
- regulator
Add support for the stm32-booster commit
arizona-ldo1: Add support for Cirrus Logic Madera codecs commit
arizona-micsupp: Add support for Cirrus Logic Madera codecs commit
lm363x: Add support for LM36274 commit
lp87565: Add 4-phase lp87561 regulator support commit
max77620: Support Maxim 77663 commit
qcom_spmi: Add support for PM8005 commit and add PMS405 SPMI regulator commit
rk808: Add RK809 and RK817 support commit
s2mps11: Adjust supported buck voltages to real values commit
slg51000: add slg51000 regulator driver commit
reset: qcom-pon: Add support for gen2 pon commit
12.15. Pin Controllers (pinctrl)
Add drive strength support for BM1880 SoC commit
Add pinconf support for BM1880 SoC commit
freescale: Add i.MX8MN pinctrl driver support commit
meson: add output support in pinconf commit and add support of drive-strength-microamp commit
mvebu: Add support for MV98DX1135 commit
qcom: Add SM8150 pinctrl driver commit
tegra: Add Tegra194 pinmux driver commit
12.16. Multi Media Card (MMC)
sdhci-pci: Add support for Intel EHL commit
sdhci-sprd: Add optional gate clock support commit and add pin control support for voltage switch commit
sdhci_am654: Add Support for 4 bit IP on J721E commit and 8 bit IP on J721E commit
12.17. Memory Technology Devices (MTD)
Add Initial Hyperbus support commit, commit, commit, commit, commit
onenand: Add support for 8Gb datasize onenand commit
rawnand: Add Macronix NAND read retry support commit
rawnand: brcmnand: Add support for v7.3 controller commit
spi-nor: Add Micron MT25QL02 support commit
spi-nor: Add Winbond w25q16jv support commit
spi-nor: intel-spi: Add support for Intel Elkhart Lake SPI serial flash commit
spi-nor: stm32: remove the driver as it was replaced by spi-stm32-qspi.c commit
spinand: Add initial support for Paragon PN26G0xA commit
spinand: Add support for GigaDevice GD5F1GQ4UFxxG commit
spinand: Add support for two-byte device IDs commit
12.18. Industrial I/O (iio)
Add driver for Infineon DPS310 commit
accel: add missing sensor for some 2-in-1 based ultrabooks commit
adc: ad7124: Add buffered input support commit
adc: mediatek: mt6577-auxadc, add mt6765 support commit
adc: stm32-dfsdm: add fast mode support commit
amplifiers: ad8366: Add support for ADL5240 VGA commit and for the ADA4961 DGA commit
cros_ec: Add lid angle driver commit
cros_ec: add 'id' sysfs entry commit
dps310: Add pressure sensing capability commit
frequency: adf4371: Add support for ADF4371 PLL commit, ADF4372 PLL commit and for output stage mute commit
light: stk3310: Add support for stk3335 commit
12.19. Multi Function Devices (MFD)
ti-lmu: Add LM36274 support to the ti-lmu commit
ti-lmu: Remove support for LM3697 commit
cros_ec_debugfs: Expose resume result via debugfs commit
lp87565: Add support for 4-phase LP87561 combination commit
bd70528: Support ROHM bd70528 PMIC core commit
rk808: Add RK817 and RK809 support commit
intel-lpss: Add Intel Elkhart Lake PCH PCI IDs commit
madera: Add Madera core support for CS47L15 commit and CS47L92 commit
12.20. Pulse-Width Modulation (PWM)
12.21. Inter-Integrated Circuit (I2C + I3C)
regmap: add i3c bus support commit
Add support for IPMB driver commit
i801: Add Block Write-Block Read Process Call support commit
i801: Add support for Intel Elkhart Lake commit and Intel Tiger Lake commit
mt7621: Add MediaTek MT7621/7628/7688 I2C driver commit
ocores: add support for i2c device on Sifive FU540-c000 SoC commit
12.22. Hardware monitoring (hwmon)
12.23. General Purpose I/O (gpio)
Initial support for ROHM bd70528 GPIO block commit
mb86s7x: Enable ACPI support commit
pca953x: Add support for the TI TCA9539 commit
12.24. Leds
TI LMU: Add common code for TI LMU devices commit
lm36274: Introduce the TI LM36274 LED driver commit
lm3697: Introduce the lm3697 driver commit
spi-byte: add single byte SPI LED driver commit
12.25. DMA engines
Add Synopsys eDMA IP driver commit, commit, commit, commit, commit, commit
mediatek: Add MediaTek UART APDMA support commit
sudmac: remove unused driver commit
sun6i: Add support for H6 DMA commit
12.26. Hardware Random Number Generator (hwrng)
iproc-rng200: Add support for 7211 commit
12.27. Cryptography hardware acceleration
atmel-i2c: add support for SHA204A random number generator commit
inside-secure: add support for HMAC updates commit
inside-secure: implement IV retrieval commit
12.28. PCI
MSI: Support allocating virtual MSI interrupts commit
switchtec: Add module parameter to request more interrupts commit
Enable NVIDIA HDA controllers commit
qcom: Add QCS404 PCIe controller support commit
tegra: Add PCIe Gen2 link speed support commit
tegra: Enable Relaxed Ordering only for Tegra20 & Tegra30 commit
12.29. Clock
Add Si5341/Si5340 driver commit
Add clk_parent entry in debugfs commit
RK808: Add RK809 and RK817 support commit
add BCM63XX gated clock controller driver commit
at91: sckc: add support for SAM9X60 commit
bcm283x: add driver interfacing with Raspberry Pi's firmware commit
bd718x7: Support ROHM BD70528 clk block commit
clk-si544: Implement small frequency change support commit
kirkwood: Add support for MV98DX1135 commit
mediatek: add audsys clock driver for MT8516 commit
meson-g12a: add temperature sensor clocks commit
meson: g12a: Add support for G12B CPUB clocks commit
qoriq: add support for lx2160a commit
sysctr: Add nxp system counter timer driver support commit
12.30. PHY ("physical layer" framework)
qcom: Add Qualcomm PCIe2 PHY driver commit
Add driver for mixel mipi dphy found on NXP's i.MX8 SoCs commit
12.31. EDAC (Error Detection And Correction)
altera: Add Stratix10 OCRAM & SDMMC EDAC Support commit
i10nm: Add Intel additional Ice-Lake support commit
ie31200: Add Intel Coffee Lake CPU support commit
12.32. Non-Transparent Bridge (NTB)
Support using MSI interrupts in ntb_transport commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
12.33. Various
PCI: Add Synopsys endpoint EDDA Device ID commit
extcon: Add fsa9480 extcon driver commit
firmware: ti_sci: Add resource management APIs for ringacc, psi-l and udma commit
firmware: ti_sci: Add support for processor control commit
habanalabs: Add busy engines bitmask to HW idle IOCTL commit
habanalabs: Add debugfs node for engines status commit
hwspinlock/omap: Add support for TI K3 SoCs commit
iommu/vt-d: Add debugfs support to show scalable mode DMAR table internals commit
iommu: Add recoverable fault reporting commit
iommu: Introduce IOMMU_RESV_DIRECT_RELAXABLE reserved memory regions commit
irqchip/al-fic: Introduce Amazon's Annapurna Labs Fabric Interrupt Controller Driver commit
irqchip/exiu: Implement ACPI support commit
irqchip/gic-v2m: Add support for Amazon Graviton variant of GICv3+GICv2m commit
irqchip: Add Renesas RZ/A1 Interrupt Controller driver commit
mailbox: omap: Add support for TI K3 SoCs commit
mei: me: add mule creek canyon (EHL) device ids commit
memory: jz4780_nemc: Add support for the JZ4740 commit
memory: jz4780_nemc: Add support for the JZ4740 commit
misc: fsa9480: Delete this driver commit
misc: xilinx-sdfec: add core driver commit
misc: xilinx_sdfec: Add CCF support commit
nvmem: imx-ocotp: Add i.MX8MM support commit
nvmem: imx: add i.MX8 nvmem driver commit
pinctrl: generic: add new 'drive-strength-microamp' property support commit
remoteproc: stm32: add an ST stm32_rproc driver commit
soc: amlogic: canvas: add support for Meson8, Meson8b and Meson8m2 commit
soc: fsl: add DPAA2 console support commit
soc: imx: Add SCU SoC info driver support commit
soc: qcom: Add AOSS QMP driver commit
spi: pxa2xx: Add support for Intel Tiger Lake commit
13. List of merges