37416
Comment:
|
880
https://kernelnewbies.org/Linux_5.1
|
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!''' * '''Kernel Core''' * VFS changes: The "shared subtree" patches have been merged. Consider the following situation: a process wants to clone its own namespace, but still wants to access the CD that got mounted recently. Shared subtree semantics provide the necessary mechanism to accomplish the above. It provides the necessary building blocks for features like per-user-namespace and versioned filesystem. [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/sharedsubtree.txt Documentation], original [http://marc.theaimsgroup.com/?l=linux-fsdevel&m=110565591630267&w=2 Alexander Viro's RFC]. Patches: * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=07b20889e3052c7e77d6a6a54e7e83446eb1ba8 beginning of the shared-subtree proper]: A private mount does not forward or receive propagation. This patch provides user the ability to convert any mount to private * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=03e06e68ff76294e53ffa898cb844d2a997b043e introduce shared mounts]: This creates shared mounts. A shared mount when bind-mounted to some mountpoint, propagates mount/umount events to each other. All the shared mounts that propagate events to each other belong to the same peer-group. * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a58b0eb8e64b78d9315a5491955e78b1391d42e5 introduce slave mounts]: A slave mount always has a master mount from which it receives mount/umount events. Unlike shared mount the event propagation does not flow from the slave mount to the master. * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5afe00221389998a25d611dc7941c06580c29eb6 handling of shared mounts]: This makes bind, rbind, move, clone namespace and umount operations aware of the semantics of slave mount * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b90fa9ae8f51f098ee480bbaabd6867992e9fc58 shared mount handling: bind and rbind]: Implement handling of MS_BIND in presense of shared mounts * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9676f0c6389b62bd6b24d77d4b3abdbcfa32d0f2 unbindable mounts]: An unbindable mount does not forward or receive propagation. Bind semantics: It is invalid to bind mount an unbindable mount. Move semantics: It is invalid to move an unbindable mount under shared mount. Clone-namespace semantics: If a mount is unbindable in the parent namespace, the corresponding cloned mount in the child namespace becomes unbindable too. Note: there is subtle difference, unbindable mounts cannot be bind mounted but can be cloned during clone-namespace. * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2144440327fa01b2f3f65e355120a78211685702 shared mount handling: move]: Implement handling of mount --move in presense of shared mounts * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a05964f3917c7c55368c229d7985f8e7c9977e97 shared mount handling: umount]: An unmount of a mount creates a umount event on the parent. If the parent is a shared mount, it gets propagated to all mounts in the peer group * Page table scalability improvements: Currently, a single page table lock is used to protect all operations on an address space's page tables. This has been detected to cause scalability problems in largue multiprocessor systems ej: 512-cpu SGI altix, specially in heavily multithreaded workloads (threads of a same process share the same address space and hence the same page table lock). With this patch, a separate spinlock per page-table page is used, to guard the page table entries in that page. Splitting the lock is not quite for free: another cacheline access. So for now enable it by config for machines with 4 or more CPUs. While this (and many other scalability changes) may look high-end oriented now, remember that cheap multi-core desktops CPUs are there. [http://lwn.net/Articles/157151/ (LWN article)] [http://marc.theaimsgroup.com/?l=linux-kernel&m=112603203327134&w=2 (benchmark vs SGI's "reduced locking by using atomic page table operations" non-merged approach)] [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4c21e2f2441dc5fbb957b030333f5a3f2d02dea7 (commit)] * .text page fault SMP scalability optimization: This fixes a case where large systems wouldn't scale well while faulting in the .text. The reason was a useless overwrite of the same pte from all cpu [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1a44e149084d772a1bcf4cdbdde8a013a8a1cfde (commit)] * Swaptoken tuning: It turns out that the original swap token implementation, by Song Jiang, only enforced the swap token while the task holding the token is handling a page fault, this patch approximates that, like the page fault code does. It has the effect of automatically, and gradually, disabling the enforcement of the swap token when there is little or no paging going on, and "turning up" the intensity of the swap token code the more the task holding the token is thrashing [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fcdae29aa7a5c79f245110f6680afdc1858d3626 (commit)] * Demand faulting for huge pages [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4c887265977213985091476be40ab11dfdcb4caf (commit)] * Add generic memory add/remove and supporting functions for memory hotplug [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3947be1969a9ce455ec30f60ef51efb10e4323d1 (commit)] * "Cooperating processes" for the anticipatory I/O scheduler: Introduce the notion of cooperating processes (those that submit requests close to one another), and use these statistics to make better choices about whether or not to do anticipatory waiting [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f5b3db0017f8415301f3427b30263186e8478c3f (commit)] * Generic dispatch queue: Implements generic dispatch queue which can replace all dispatch queues implemented by each iosched [http://marc.theaimsgroup.com/?l=linux-kernel&m=112238633622498&w=2 (mailing list)] [http://lwn.net/Articles/157208/ (LWN article)] [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8922e16cf6269e668123acb1ae1fdc62b7a3a4fc (commit)] * Reimplement elevator online switching code [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cb98fc8bb9c141009e2bda99c0db39d387e142cf (commit)] * 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)] * RCU torture-testing kernel module: This adds a tristate CONFIG_RCU_TORTURE_TEST, which enables an intense torture test of the RCU infratructure. This is needed for testing due to the continued changes to the RCU infrastructure [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a241ec65aeac3d69a08a7b153cccbdb7ea35063f (commit)] * Driver Core: add the ability for class_device structures to be nested: Allows struct class_device to be nested, so that another struct class_device can be the parent of a new one, instead of only having the struct class be the parent [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=51d172d5f3a193e4b8f76179b2e55d7a36b94117 (commit)] and add uevent sysfs attribute to re-emit device hotplug events [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a7fd67062efc5b0fc9a61368c607fa92d1d57f9e (commit)]. Due to some of those changes, only udev versions 071 or higher will be able to run in 2.6.15. * Implement nice support across physical cpus on SMP to obtain good distribution of tasks of different nice values [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b910472dd3b7c1d51af9a594a759f642520c33e1 (commit)] * make /proc/mounts pollable [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5addc5dd8836aa061f6efc4a0d9ba6323726297a (commit)] * SELinux: Enables files created on a MLS-enabled SELinux system to be accessible on a non-MLS SELinux system [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e517a0cd859ae0c4d9451107113fc2b076456f8f (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)] * 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)] * 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)] * '''Architecture-specific''' * ppc64: support 64k pages. Adds a new CONFIG_PPC_64K_PAGES which, when enabled, changes the kernel base page size to 64K. The resulting kernel still boots on any hardware. On current machines with 4K pages support only, the kernel will maintain 16 "subpages" for each 64K page transparently [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3c726f8dee6f55e96475574e9f645327e461884c (commit)] * ppc64: CPU freq support using 970FX powertune facility for iMac G5 and SMU based single CPU desktop [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4350147a816b9c5b40fa59e4fa23f17490630b79 (commit)] * ppc64: Adds the ability to the SMU driver to recover missing calibration partitions from the SMU chip itself. It also adds some dynamic mecanism to /proc/device-tree so that new properties are visible to userland [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=183d020258dfd08178a05c6793dae10409db8abb (commit)] * ppc64: This adds a new thermal control framework for Powermac, along with the implementation for Powermac8,1, Powermac8,2 (iMac G5 rev 1 and 2), and Powermac9,1 (latest single CPU desktop) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=75722d3992f57375c0cc029dcceb2334a45ceff1 (commit)] * Add the infrastructure to support hotplug CPU on ARM [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a054a811597a17ffbe92bc4db04a4dc2f1b1ea55 (commit)], support for local timers [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=37ee16ae93a3e4ae7dd51beb81d249f5f12a55c2 (commit)] and optimized SHA1 implementation [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c09f98271f685af349d3f0199360f1c0e85550e0 (commit)] * x86 hot plug CPU support of physical add of new processors (hotplug add/remove of already existing CPUs was already supported) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9f40a72a7e819789f66910c8cd60aab005cdb413 (commit)] * Support for shared HPET interrupts: The driver previously acknowledged interrupts for both edge and level interrupts, but didn't actually allow a shared interrupt in the latter case [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0d29086177aaa1e7d14e6ebb7fc067b3ca6d5c11 (commit)] * MIPS updates: resurrect Cobalt support for 2.6 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c4ed38a0c6e2e5c4906296758f816ee71373792f (commit)], Base Au1200 support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e3ad1c23ba72214669b364c6fa304531dc768c3e (commit)], support for BCM1480 family of chips [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f137e463b50aadba91bd116f99c59ccb9c15a12f (commit)] * Add support for the Sharp SL-6000x (Tosa) series of PDAs [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8459c159f7de832eaf888398d2abf466c388dfa6 (commit)] and support MMC, IRDA and UDC, also add a platform device for the keyboard driver [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a93876c16275376c4f9f1630ce24036d329fa7a0 (commit)] and add support for sharp zaurus SL-5500 touchscreen [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1753298947afe5eb56da755bc057f1868f345ec1 (commit)] and its PCMCIA slot [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=77bb86a1b9f8b872d8efc33c4f4359f809220252 (commit)] * Superhyway support for SH4-202 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d5cb9783536a41df9f9cba5b0a1d78047ed787f7 (commit)] * Add support for the AMCC PowerPC 440SPe SoC, including PCI Express in root port mode [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b0f7b8bc57ee90138a7c429951457027a90c326f (commit)] * ""Filesystems"" * NTFS write support: NTFS finally implements write support so "vim /ntfs/foo.txt" works. You can write(2) to a file even beyond the end of the existing file. Resident non-resident files and are supported. Sparse files can also be written and holes will be filed appropiately. trucante(2), ftruncate(2) and open(2) with O_TRUNC flag also works. There're some limitations with heavily fragmented files which you won't be allowed to change. Also, notice that creation/deletion of files and directories is still not supported and mmap(2) based writes is still not complete [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=98b270362bb9ea6629732e7f5b65b8a6ce4743c7 (commit)] * CIFS important updates: Performance improvements, improve the support for mounting to older pre-CIFS servers which went into 2.6.14 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=history;h=d6d3f5bc68be3c4ab84e6f1f9db92291da671504;f=fs/cifs/CHANGES (commits)] * '''Networking''' * 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)] * Randomize the port selected on bind() for connections to help with possible security attacks. It should also be faster in most cases because there's no need for a global lock [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6df716340da3a6fdd33d73d7ed4c6f7590ca1c42 (commit)] * Add nf_conntrack subsystem: The existing connection tracking subsystem in netfilter can only handle ipv4. There were two choices present to add connection tracking support for ipv6, we could either duplicate all of the ipv4 connection tracking code into an ipv6 counterpart, or (the choice taken by these patches) we could design a generic layer that could handle both ipv4 and ipv6 and thus requiring only one sub-protocol (TCP, UDP, etc.) connection tracking helper module to be written. In fact nf_conntrack is capable of working with any layer 3 protocol [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1 (commit)] * Generic netlink family: The generic netlink family builds on top of netlink and provides simplifies access for the less demanding netlink users. It solves the problem of protocol numbers running out by introducing a so called controller taking care of id management and name resolving [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=482a8524f85a7d8c40c6fb5d072e85bc2fef327f (commit)]; and a new type-safe interface for netlink messages and attribute habdling. The interface is fully binary compatible with the old interface towards userspace. Besides type safety, this interface features attribute validation capabilities, simplified message contstruction, and documentation [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bfa83a9e03cf8d501c6272999843470afecb32ed (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)] * PPP MPPE encryption module, it implements the Microsoft Point-to-Point Encryption method as a PPP compressor/decompressor. This is necessary for Linux clients and servers to interoperate with Microsoft Point-to-Point Tunneling Protocol (PPTP) servers (either Microsoft PPTP servers or the poptop project) which use MPPE to encrypt data when creating a VPN [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b3f9b92a6ec1a9a5e4b4b36e484f2f62cc73277c (commit)] * IPV6: RFC3484 compliant source address selection [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=072047e4de3800905e09d0f8ef0e1cc4e91a601e (commit)] * '''Drivers''' * 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)], raid5 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3f294f4fb6f2ba887b717674da26c21f3d57f3fc (commit)], md [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=eae1701fbd264cfc7efbaf7cd4cd999760070e27 (commit)], [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=86e6ffdd243a06663713e637ee683fb27dce8e0c (commit)] * fbcon: Add support for console rotation. Can be enabled with a boot option fbcon=rotate:n, where n = 0 - normal, n = 1 - 90 degrees (clockwise), n = 2 - 180 degrees (upside down), n = 3 - 270 degrees (counterclockwise); or at runtime with "echo n > /sys/class/graphics/fb[num]/con_rotate" to set the angle of rotation of the current console or "echo n > /sys/class/graphics/fb[num]/con_rotate_all" to set the angle of rotation globally [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e4fc27618b75234b721c4a13d0e0d9d07e75e641 (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)], add radeon PCI Express support to complete the support for newest radeon cards along with the r300 3d initial support which went into 2.6.14 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ea98a92ff18c03bf7f4d21536986cbbcb4c10cd9 (commit)], Matrox 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)] * IDE support for: AMD Geode GX/LX [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7fab773de16ccaeb249acdc6e956a9759c68225d (commit)] and CS5535 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f5b2d8b4b5146fa2d70fec7d514fa0bd64636958 (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)] * MTD: add Resident Flash Disk (RFD) support. This type of flash translation layer (FTL) is used by the Embedded BIOS by General Software. [http://www.gensw.com/pages/prod/bios/rfd.htm http://www.gensw.com/pages/prod/bios/rfd.htm] [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e27a9960af0506d84b9ca9dd3874b7d88901f230 (commit)] and add initial support for OneNAND flash chips, a new flash technology from Samsung with integrated SRAM buffers and logic interface [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cd5f6346bc28a41375412b49b290d22ee4e4bbe8 (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)] ===== 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)], support for mounting older pre-CIFS servers such as windows 9x and Me [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a10faeb2a3e266385cc334fe9af76e08e5e4330f (commit)], mount option for disabling the default behavior of sending byte range lock requests to the server [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c46fa8acdc533e8084359ea11c79d56eb98313fb (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)] * Initial radeon r300-based chips 3D support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=414ed537995617f4cbcab65e193f26a2b2dcfa5e (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)] Rules: * Name of the new feature/description of the change, including a small explanation if possible * If its a feature and the feature has some web page add a link to it * If there's a paper (OLS!) or an article add a link to it. Or write one ;) * If there's a interesting mail (benchmarks, announcements if there's no web page, etc) about it in the mailing list, get a link in one of the list's archives (at [http://marc.theaimsgroup.com/?l=linux-kernel http://marc.theaimsgroup.com/?l=linux-kernel] please) and add the link here * Add commit's link if possible. For commits add a "(commit)" word and add the link there. Don't add the commit link to another word (please). * Searching commits for a given feature is easy. Just look for it in the shortlog, or try to find a file related with that change, then search it in the GIT tree representation and click the "history" link to see all the changes made which affects that file. The release dates will help you too. * There're two main GIT trees where you can search for commits: [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git the one which has all the stuff commited after 2.6.12-rc2] and [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git the one which has all the stuff BEFORE 2.6.12-rc2] 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.1)>> |
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.1 released on 5 May 2019
Summary: This release includes io_uring, an high-performance interface for asynchronous I/O; it also adds improvements in fanotify to provide a scalable way of watching changes on large file systems; it adds a method to allow safe delivery of signals in presence of PID reuse; persistent memory can be used now as hot-plugabble RAM; Zstd compression levels have been made configurable in Btrfs; it also adds a new cpuidle governor that makes better power management decisions than the menu governor; all 32 bit architectures have added the necessary syscalls to deal with the y2038 problem; it is possible now to boot to a device-mapper device without initramfs; and live patching has added support for creating cumulative patches. As always, there are many other new drivers and improvements.
(Note: in this release, the "coolest features" section does not have links to the code commits, those are available for each feature in their respective sections, preceded by FEATURED)
Contents
-
Coolest features
- High-performance asynchronous I/O with io_uring
- Improved fanotify for better file system monitorization
- Safe signal delivery in presence of PID reuse
- Use persistent memory as RAM
- TEO, an alternative cpuidle governor to 'menu'
- More Year 2038 preparation
- Configurable Zstd compression level in Btrfs
- Boot to a device-mapper device without initramfs
- live patching: support cumulative patches
- Core (various)
- File systems
- Memory management
- Block layer
- Tracing and perf
- 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
- 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)
- Hardware monitoring (hwmon)
- General Purpose I/O (gpio)
- DMA engines
- Hardware Random Number Generator (hwrng)
- Cryptography hardware acceleration
- PCI
- Clock
- EDAC (Error Detection And Correction)
- PHY ("physical layer" framework)
- Various
- List of merges
- Other news sites
1. Coolest features
1.1. High-performance asynchronous I/O with io_uring
Linux has supported asynchronous I/O for a long time. However, the interface suffers from a large number of shortcomings. It does not support buffered I/O, only unbuffered (O_DIRECT) I/O, which only a subset of a subset of applications use. Even in those cases asynchronous IO was some times not really asynchronous or fast. All attempts to fix the existing interface have failed.
A new asynchronous interface, io_uring, has been created and merged in the release, with the purpose of finally adding fast, scalable asynchronous I/O to Linux, both buffered and unbuffered. It also supports asynchronous polled IO, and other features that will be added in the future. For more details, read this document (PDF). For performance details, see this email.
Additionally, a user space library, liburing, has been created to provides basic functionality for applications that don't need or want to care about how to fiddle with the low level details of the kernel interface. It has helpers to allow applications to easily set up an io_uring instance, and submit/complete IO through it without knowing about the intricacies of the rings, and will continue to grow support helper functions and features as time progresses.
Document explaining the reasons for the existence of io_uring, inner workings of it, the user visible interface and liburing: io_uring.pdf
Recommended LWN article: Ringing in a new asynchronous I/O API
liburing git repository: http://git.kernel.dk/cgit/liburing/
1.2. Improved fanotify for better file system monitorization
Unlike other operating systems, Linux does not have an efficient way to watch changes on a large file system. The only way to monitor file system dirent modification events is recursive inotify watches, which scales poorly for large directory trees. The fanotify interface, introduced in Linux 2.6.36, was intended to supersede inotify and solve its deficiencies, and it initially took several steps in the direction of solving scalability issues, but the work needed to completely supersede inotify.
This release (along with the fanotify changes in Linux 4.20) expands fanotify to provide "super block root watch" functionality, which is a scalable way of watching changes on large file systems. For more details see the project wiki
1.3. Safe signal delivery in presence of PID reuse
The kill(2) syscall operates on PIDs. After a process has exited its PID can be reused by another process. If a caller sends a signal to a reused PID it will end up signaling the wrong process. This is an old problem with the Unix process design, and has caused numerous security problems.
After considering several proposals, the Linux kernel has added a new syscall, pidfd_send_signal(2), which uses file descriptors from /proc/<pid> as stable handles on struct pid. Even if a pid is recycled the handle will not change, and the file descriptor can be used to safely send signals to the process it refers to. Note that Linux 5.2 adds a CLONE_PIDFD flag to clone(2) that will allow to retrieve a pid file descriptor that is usable for these purposes.
Recommended LWN article: Toward race-free process signaling
asciinema recording for the basic functionality: https://asciinema.org/a/IQjuCHew6bnq1cr78yuMv16cy
1.4. Use persistent memory as RAM
Linux supports persisten memory devices, but they are often used as storage devices. Some users want to use persistent memory as additional volatile memory, they are willing to cope with potential performance differences, and want to use typical Linux memory management apis rather than a userspace memory allocator layered over an mmap() of a dax file. This release allows them to do so. This is intended for use with NVDIMMs that are physically persistent (physically like flash) so that they can be used as a cost-effective RAM replacement.
Recommended LWN article: Persistent memory for transient data
1.5. TEO, an alternative cpuidle governor to 'menu'
The cpuidle subsystem is the part of the kernel in charge of deciding which CPU deep idle state should be used when the CPU has nothing to do (deeper idle states save more power, but it takes more time to get out of them). There are two cpuidle governors, "menu" and "ladder", each one using different heuristics. However, the menu governor is believed to have a number of shortcomings in its heuristics, but instead of being fixed an alternative was introduced in this release so people can compare both: TEO, the Timer Events Oriented Governor, which seems to offer improved performance with no extra power consumption cost. You can check your governor in /sys/devices/system/cpu/cpuidle/current_governor_ro) and change the default cpuidle governor at boot time with the cpuidle.governor=teo boot parameter.
Recommended LWN article: Improving idle behavior in tickless systems
1.6. More Year 2038 preparation
As part of the work to prepare for the prepare for the year 2038 problem, this release includes syscalls for 32 bits architecture with a 64-bit time_t structure. This finally allows to have system calls with 64-bit time_t on all architectures, after a long time of preparation
Recommended LWN article: Approaching the kernel year-2038 end game
1.7. Configurable Zstd compression level in Btrfs
Btrfs has support Zstd compression since Linux 4.14, but it didn't allow to configure the compression level used by the filesystem, which can make a big difference. This release adds support for configuring the compression level used in a Btrfs file system, as it's done with zlib, by using the mount option -o compress=zstd:level. To see the levels available and their impact in performance and compression rate, see this commit
1.8. Boot to a device-mapper device without initramfs
In order to boot to a filesystem placed in a device-mapper device, you need an initramfs. Some people, however, don't want or can't use an initramfs. This release allows to use of DM targets in the boot process (as the root device or otherwise) without the need of an initramfs, with the help of a tricky kernel boot parameter. For more details see the documentation
1.9. live patching: support cumulative patches
There might be dependencies between livepatches. If multiple patches need to do different changes to the same function(s) then it's necessary to define an order in which the patches will be installed. And function implementations from any newer livepatch must be done on top of the older ones. This might become a maintenance nightmare for distros, especially if anyone would want to remove a patch that is in the middle of the stack.
An elegant solution included in this release is the feature called "Atomic Replace". It allows creation of so called "Cumulative Patches". They include all wanted changes from all older livepatches and completely replace them in one transition. As a result, the livepatch authors might maintain sources only for one cumulative patch. For more details, see the documentation
2. Core (various)
(FEATURED) Add io_uring commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
VFS: Introduce filesystem context. This is an intensive rework of the Linux file system mounting internals intended to solve limitations imposed by the existing mount(2) design, and provide a foundation that will allow to provide new functionality that is impossible to achieve now. While no new user-visible feature has been introduced in this release, a lot of the new infrastructure has been merged in this release. For more details, see this recommended LWN article or this email. Code: 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
(FEATURED) fanotify: add support for more event types commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add a future write seal (F_SEAL_FUTURE_WRITE) to memfd(2). It prevents any future mmap(2) and write(2) syscalls from succeeding while keeping the existing mmap active. It will be used to migrate Android ashmem use cases to memfd(2) commit, commit
(FEATURED) year 2038: add 64-bit time_t syscalls to all 32-bit architectures 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
epoll: use rwlock in order to reduce ep_poll_callback() contention in a scenario that can be reproduced by generating events (write to pipe or eventfd) from many threads, while consumer thread does polling commit, commit, commit
(FEATURED) livepatch: Add atomic replace. It allows to create cumulative patches. They are useful when you maintain many livepatches and want to remove one that is lower on the stack. In addition it is very useful when more patches touch the same function and there are dependencies between them commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
lockdep: current lockdep implementation is that it requires lock keys to be allocated statically. Add support for dynamic keys in the lockdep code and eliminates a class of false positive reports from the workqueue implementation commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
LZO compression: run-length encoding support commit, commit, commit and performance improvements commit, commit, commit
tty: add configuration option and sysctl (dev.tty.ldisc_autoload) to prevent autoloading of ldiscs commit
task scheduler: Introduce a sysctl (sched_energy_aware)for Energy Aware Scheduling commit
task scheduler: wake_q: Reduce reference counting for special users commit
Speed up /proc/stat commit
Add NUMA aware async_schedule calls commit, commit, commit, commit, commit, commit, commit, commit, commit
gcc plugins: improve structleak to also work with non-struct types, which should give the kernel complete initialization coverage of all stack variables passed by reference, including padding commit, commit
RCU: Add sysrq rcu_node-dump capability to dump out Tree RCU's rcu_node tree with an eye towards determining why a new grace period has not yet started commit
swiotlb: add debugfs to track swiotlb buffer usage commit
Add boot option (driver_async_probe=...) to specify drivers to be async probed commit
Power management: Expose the Energy Model in /sys/kernel/debug/energy_model commit
3. File systems
- BTRFS
- AUTOFS
Add ignore mount option that can be used to provide a indicator to applications that the mount entry should be ignored displaying mount information. commit
- XFS
Introduce an always_cow mode where XFS never overwrites existing blocks in place. This is to aid debugging COW code commit
- NFS
- CIFS
- EXT2
Support statx syscall commit
- F2FS
Add quick mode of checkpoint=disable for QA commit
- FAT
Support splice on O_DIRECT file commit
- CEPH
- EXT4
Add sysfs attr /sys/fs/ext4/<disk>/journal_task commit
- EXOFS
Remove exofs commit
4. Memory management
Algorithmic complexity of swapoff operation is reduced from quadratic to linear, reducing (with 6GB data in swap in a VM) the swapoff operation from 8 to 3 minutes and CPU utilization from 80% to 5% commit commit
Increase success rates and reduce latency of compaction (physical memory defragmentation), reducing the number of scanned pages for migration by 65%, and free pages for migration targets by 97%, while improving transparent hugepage allocation success rates significantly. commit commit commit commit commit commit commit commit commit commit commit commit commit commit commit commit commit commit commit commit commit commit
Remove the ancient OOM killer heuristic that preferred to kill children of the "worst" process rather than the process itself commit
Prevent SLAB and other pages with special type to be mapped into userspace, for improved security. commit commit
Allow excluding balloon pages from kdump crash dumps to reduce their size. Also exclude them from hibernation image. commit commit commit commit commit commit commit commit
Simplify some of the early memory allocations by replacing usage of older memblock APIs with newer and shinier ones commit commit commit commit commit commit
Some improvements and, importantly, tests were added for VM related fiels found in /proc/*/maps and related files. commit commit commit commit
Shuffle GFP flags so that common combinations (e.g. GFP_KERNEL) are tightly packed, which allows arm to emit more efficient instruction stream, saving about 0.1% commit
A new vm_fault_t type is introduced to detect cases (via sparse) where a page fault handler mistakenly returns an error code instead of VM_FAULT_* code commit
Drop the mmap_sem when doing IO in the fault path commit, commit, commit, commit
memory controller: expose transparent huge page events on a per-memcg basis, using the files anon_thp, thp_fault_alloc and thp_collapse_alloc commit
In mremap(2) an unfortunate corner case is fixed where (if the number of mappings of a process approaches the maximum limit) mremap() can fail with ENOMEM but only after performing some destructive unmap actions. commit
Cleanup and better documentation of how the PG_reserved page flag is used. commit commit commit commit commit commit commit commit commit
(FEATURED) "Hotplug" persistent memory for use like normal RAM commit, commit, commit, commit, commit
Test driver to analyse vmalloc allocator commit, commit, commit
dma-debug: add dumping facility via debugfs commit
kasan: remove use after scope bugs detection. It significantly increases stack usage and does not provide much value for the kernel commit
5. Block layer
- bcache
- device mapper
(FEATURED) Add a "create" module parameter, which allows device-mapper targets to be configured at boot time. This enables early use of DM targets in the boot process (as the root device or otherwise) without the need of an initramfs commit
dm cache: add support for discard passdown to the origin device commit
raid5: adds new sysfs attribute which can be used to specify which write_hint should be assigned to PPL commit
rbd: advertise support for RBD_FEATURE_DEEP_FLATTEN commit
6. Tracing and perf
- BPF
Add Host Bandwidth Manager. Host Bandwidth Manager is a framework for limiting the bandwidth used by v2 cgroups. It consists of 1 BPF helper, a sample BPF program to limit egress bandwdith as well as a sample user program and script to simplify HBM testing commit, commit, commit, commit, commit
Implements BPF_LWT_ENCAP_IP mode in bpf_lwt_push_encap BPF helper. It enables BPF programs (specifically, BPF_PROG_TYPE_LWT_IN and BPF_PROG_TYPE_LWT_XMIT prog types) to add IP encapsulation headers to packets (e.g. IP/GRE, GUE, IPIP) commit, commit, commit, commit, commit, commit, commit
Add new jmp32 instructions. Current eBPF ISA has 32-bit sub-register and has defined a set of ALU32 instructions. However, there is no JMP32 instructions, the consequence is code-gen for 32-bit sub-registers is not efficient. For example, explicit sign-extension from 32-bit to 64-bit is needed for signed comparison commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add __sk_buff->sk, struct bpf_tcp_sock, BPF_FUNC_sk_fullsock and BPF_FUNC_tcp_sock. Together, they provide a common way to expose the members of struct tcp_sock and struct bpf_sock for the bpf_prog to access commit, commit, commit, commit, commit, commit, commit
Add a new command to bpftool in order to dump a list of eBPF-related parameters for the system (or for a specific network device) to the console commit, commit, commit, commit, commit, commit, commit, commit, commit
Allow BPF programs access skb_shared_info->gso_segs field commit
Support __int128. Previous maximum supported integer bit width is 64. But the __int128 type has been supported by most (if not all) 64bit architectures including bpf for both gcc and clang commit, commit, commit, commit, commit
Introduce per program stats to monitor the usage BPF commit, commit, commit
Many algorithms need to read and modify several variables atomically. Until now it was hard to impossible to implement such algorithms in BPF. Hence introduce support for bpf_spin_lock commit, commit, commit, commit, commit, commit, commit
Add support for queue/stack manipulations commit, commit, commit, commit, commit, commit, commit
Avoid unloading xdp prog not attached by sample commit, commit, commit, commit, commit, commit, commit, commit
Add AF_XDP support to libbpf. The main reason for this is to facilitate writing applications that use AF_XDP by offering higher-level APIs that hide many of the details of the AF_XDP uapi commit, commit, commit
Add btf documentation commit
Reveal invisible bpf programs. This set catches symbol for all bpf programs loaded/unloaded before/during/after perf-record run PERF_RECORD_KSYMBOL and PERF_RECORD_BPF_EVENT commit, commit, commit, commit, commit, commit, commit, commit, commit
tracing: Add some useful new functions to the hist trigger code: a snapshot action and an onchange handler commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- perf
perf bpf: Automatically add BTF ELF markers to 'perf trace' BPF programs, so that tools such as 'bpftool map dump' can pretty print map keys and values commit
Add support for annotating BPF programs, using the PERF_RECORD_BPF_EVENT and PERF_RECORD_KSYMBOL recently added to the kernel and plugging binutils's libopcodes disassembly of BPF programs with the existing annotation interfaces in 'perf annotate', 'perf report' and 'perf top' various output formats (--stdio, --stdio2, --tui) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add new filter options for perf diff: --time, --cpu, --pid, --tid commit, commit, commit
Reduce NUMA related overhead in perf record profiling on large server systems commit, commit, commit, commit
Add initial BPF map dumper, initially just for the current, minimal needs of the augmented_raw_syscalls BPF example used to collect pointer args payloads that uses BPF maps for pid and syscall filtering, but will in time have features similar to 'perf stat' --interval-print, --interval-clear, ways to signal from a BPF event that a specific map (or range of that map) should be printed, optionally as a histogram, etc commit, commit
perf script: Support insn output for normal samples commit
perf script: Make the --cpu filter apply to PERF_RECORD_COMM/FORK/... events, in addition to PERF_RECORD_SAMPLE commit
perf report: Add 'time' sort option. E.g.: perf report --sort time,overhead,symbol --time-quantum 1ms --stdio commit, commit, commit
perf list: Display metric expressions for --details option commit
perf scripts python: exported-sql-viewer.py: Add call tree commit
7. Security
LSM: Module stacking ie. the ability to load one LSM module in top of another 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
Add SafeSetID LSM module. SafeSetID gates the setid family of syscalls to restrict UID/GID transitions from a given UID/GID to only those approved by a system-wide whitelist. These restrictions also prohibit the given UIDs/GIDs from obtaining auxiliary privileges associated with CAP_SET{U/G}ID, such as allowing a user to set up user namespace UID mappings. For now, only gating the set*uid family of syscalls is supported, with support for set*gid coming in a future patch set. Documentation. commit, commit
audit: add support for fcaps v3 commit
8. Networking
Introduce a sysctl knob (devconf_inherit_init_net) to control if a new network namespace should inherit all current settings under /proc/sys/net/{ipv4,ipv6}/conf/{all,default}/ commit
bonding: add 3ad stats and export them via xstats commit, commit
bridge: implement Multicast Router Discovery (RFC4286 commit, commit, commit, commit
sockets: Add year 2038-safe socket timestamps commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
WiFi
Support airtime fairness commit, commit, commit, commit, commit, commit
Add Multi-BSSID support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Authentication offload to user space in AP mode commit
Allow set/del pmksa operations for AP commit
- TCP
- devlink
Add health reporting and recovery system. The health mechanism is targeted for Real Time Alerting, in order to know when something bad had happened to a PCI device commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
devlink: add the ability to update device flash commit, commit, commit
Add device (driver) information API commit, commit, commit, commit, commit, commit, commit, commit
Report cell size of shared buffers commit
batman-adv: netlink configuration restructuring commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
ethtool: Added support for 50Gbps per lane link modes commit
failover: allow name change on IFF_UP slave interfaces commit
Add flow_rule infrastructure, which allows to reuse the driver codebase to configure ACL hardware offloads for the ethtool_rxnfc and the TC flower interfaces commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
ipconfig: add carrier_timeout kernel parameter commit
ipmr: ip6mr: Create new sockopt to clear mfc cache or vifs commit
smc: add pnet table namespace support commit
- dsa
Introduce a new generic SOL_SOCKET-level socket option called SO_BINDTOIFINDEX. It behaves similar to SO_BINDTODEVICE, but takes a network interface index as argument, rather than the network interface name. User-space often refers to network-interfaces via their index, but has to temporarily resolve it to a name for a call into SO_BINDTODEVICE. This might pose problems when the network-device is renamed asynchronously by other parts of the system. When this happens, the SO_BINDTODEVICE might either fail, or worse, it might bind to the wrong device commit
ipv6: add socket option IPV6_ROUTER_ALERT_ISOLATE. It restricts packets received by the socket to be only from the socket's namespace commit
Support 64bit rates for getsockopt(SO_MAX_PACING_RATE) commit and setsockopt(SO_MAX_PACING_RATE) commit
TLS: Add TLS 1.3 support commit, commit, commit, commit, commit
AF_XDP: add socket monitoring support commit, commit, commit
- scheduler
- netfilter
- RDMA
Reliable Datagram Sockets: Add tos support commit, commit, commit, commit, commit
9. Architectures
9.1. ARM
New SoCs
Milbeaut SoC family from Socionext. SC2000 is a SoC of the Milbeaut series. equipped with a DSP optimized for computer vision. It also features advanced functionalities such as 360-degree, real-time spherical stitching with multi cameras, image stabilization for without mechanical gimbals, and rolling shutter correction commit, commit
Bitmain BM1880 chip used in the Sophon Edge TPU developer board. The chip is intended for Deep Learning applications, and comes with dual-core Arm Cortex-A53 to run Linux as well as a RISC-V microcontroller core to control the tensor unit. For the moment, the TPU is not accessible in mainline Linux, so it's treated it as a generic Arm SoC commit, commit
Renesas RZ/A2M (R7S9210) 32-bit Cortex-A9 Real-time imaging processor commit, commit
Renesas RZ/G2E (r8a774c0) 64-bit Cortex-A53 SoC "for Rich Graphics Applications" commit
NXP i.MX8QuadXPlus 64-bit Cortex-A35 SoC commit, commit
Mediatek gains support for a new SoC: MT7629 is a new wireless router platform, following MT7623 commit
- New device tree sources
Bosch Guardian is a product made by Bosch Power Tools GmbH, based on the Texas Instruments AM335x chip commit
Winterland IceBoard is a Texas Instruments AM3874 based machine used in telescopes at the south pole and elsewhere commit
Inspur on5263m5 is an x86 server platform with an Aspeed ast2500 baseboard management controller. This is for running on the BMC commit
Zodiac Digital Tapping Unit, apparently a kind of ethernet switch used in airplanes commit
Phicomm K3 is a WiFi router based on Broadcom bcm47094 commit
Methode Electronics uDPU FTTdp distribution point unit commit
X96 Max, a generic TV box based on Amlogic G12a (S905X2) commit
NVIDIA Shield TV (Darcy) based on Tegra210 commit
- New SBC, evaluation, development or modular systems added
- Three new Rockchips rk3399 based boards
- Five new i.MX6 family SoM modules and boards for industrial products
MYIR Tech MYD-LPC4357 development based on the NXP lpc4357 microcontroller commit
Chameleon96, an Intel/Altera Cyclone5 based FPGA development system in 96boards form factor commit
Arm Fixed Virtual Platforms(FVP) Base RevC, a purely virtual platform for corresponding to the latest "fast model" commit
Another Raspberry Pi variant: Model 3 A+, supported both in 32-bit and 64-bit mode commit, commit
Oxalis Evalkit V100 based on NXP Layerscape LS1012a, in 96Boards enterprise form factor commit
Elgin RV1108 R1 development board based on 32-bit Rockchips RV1108 commit
freescale: Add devicetree for Oxalis commit
renesas: Add Si-Linux CAT874 board support commit
renesas: Add Si-Linux EK874 board support commit
- coresight
- ARM64
default NR_CPUS to 256 commit
Enable HugeTLB migration support for all supported huge page sizes at all levels including contiguous bit implementation commit commit commit commit commit
Enable the support of pseudo-NMIs commit
Add ptrace regsets for ptrauth key management commit
gic-v3: Implement arch support for priority masking commit
9.2. X86
speculation: Add PR_SPEC_DISABLE_NOEXEC argument to PR_SET_SPECULATION_CTRL option of prctl(2) to allow applications to specify that the SSBD feature bit on the task structure should be cleared whenever a new program is being execve'ed commit
intel_idle: add support for Jacobsville commit
powercap/intel_rapl: add Ice Lake mobile commit
adds decoding for some new SMCA bank types (MP5, NBIO, and PCIE) and also for some new versions of existing bank types (CS, PSP, and SMU) commit, commit, commit
- perf
- platform
chrome: Add new driver for Wilco EC commit
intel_pmc_core: Add ICL platform support commit
mlx-platform: Add support for new VMOD0007 board name commit
touchscreen_dmi: Add info for the CHUWI Hi10 Air tablet commit
touchscreen_dmi: Add info for the Chuwi Hi8 Air tablet commit
touchscreen_dmi: Add info for the PoV Wintab P1006w (v1.0) tablet commit
pcengines apuv2 gpio/leds/keys platform driver commit
- KVM
9.3. POWERPC
sstep: Extend instruction emulation support commit, commit, commit, commit, commit, commit
Activate CONFIG_THREAD_INFO_IN_TASK commit
Migrate longterm-pinned pages from CMA regions, and compound pages, reducing the likelihood of CMA allocation failures commit commit commit commit
Enable kcov commit
Implement nvram ioctls commit
KVM: Book3S HV: Add KVM stat largepages_[2M/1G] commit
eeh: Add eeh_force_recover to debugfs commit
9.4. S390
qeth: add support for ETHTOOL_GRINGPARAM commit
cpum_cf_diag: Add support for s390 counter facility diagnostic trace commit
- perf report
9.5. MIPS
Enable hugepage support for MIPS64r6 commit
ingenic: Add support for appended devicetree commit
Add support for MemoryMapIDs (MMIDs) & GINVT instructions. These give us a larger, global namespace for address space IDs & allow for global invalidation of TLB entries without IPIs commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
9.6. XTENSA
Use generic spinlock/rwlock implementation commit
9.7. M68K
Add ColdFire mcf5441x eDMA platform support commit
9.8. RISCV
9.9. ARC
Removed extra memory barrier around spinlock code commit
10. Drivers
10.1. Graphics
Add ARM Komeda display driver commit, commit, commit, commit, commit, commit, commit, commit
- panels
- Intel:
Coffelake: Adding another PCI Device ID commit
Adding few more device IDs for Ice Lake commit
Expose RPCS (SSEU) configuration to userspace (Gen11 only) for ICL media driver commit
Coffeelake GVT Support commit
VFIO GVT EDID Region support commit
ACPI/PMIC support for MIPI/DSI commit
Add 1080p30/50/60 TV modes commit
Add Per connector debugfs node for DSC support/enable commit
Drop debugfs/i915_next_seqno commit, remove debugfs/i915_ppgtt_info commit
- amdgpu
Add scheduled dependencies interface commit
vega10/20 BACO support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- powerplay
Add sysfs file for PCIe usage v5 commit
Add picasso pci id commit
Add debug option to force fclk request commit
Add backlight pwm debugfs commit
- sun4i
- nouveau
- vc4
- exynos
s5pv210 rotator support commit
- dw-hdmi
- rockchip
- rcar-du
- bochs
- meson
- host1x
- imx
zpos property support [[https://git.kernel.org/linus/74a3dba26c606adc29f6ba6484d5cdaaf877cccc|commit]
- ipu-v3
Add planar support to interlaced scan commit
ARM FB compression fourcc, P010 + P016 fourcc, allwinner tiled format modifier commit, commit, commit, commit
10.2. Storage
ata: add Buddha PATA controller driver commit
nvme-multipath: round-robin I/O policy commit
nvme: add support for the Write Zeroes command commit
nvmem: imx-ocotp: Implement i.MX6ULL/ULZ support commit
nvmem: imx-ocotp: add i.MX7ULP support commit
nvmem: zynqmp: Added zynqmp nvmem firmware driver commit
- SCSI
fnic: Add port speed stat to fnic debug stats commit
fnic: Enable fnic devcmd2 interface commit
fnic: fnic stats for max CQs processed and ISR time commit
gdth: remove ISA and EISA support commit
gdth: remove gdth_{alloc,free}_ioctl commit
- hisi_sas
- mpt3sas
- qla2xxx
remove bidirectional command support commit
remove the SCSI OSD library commit
scsi_debug: Implement support for write protect commit
ufs: Add HI3670 SoC UFS driver support commit
10.3. Drivers in the Staging area
iio: adc: ad7606: Move out of staging commit
mt7621-pci-phy: add new driver for phy part of mt7621-pci commit
erofs: complete POSIX ACL support commit
xgifb: delete the driver commit
- media
iio: cdc: ad7152: remove driver completely commit
10.4. Networking
8139too : Add support for U.S. Robotics USR997901A 10/100 Cardbus NIC commit
Bluetooth: btmrvl: add support for sd8977 chipset commit
Bluetooth: mediatek: add support for MediaTek MT7663U and MT7668U UART devices commit
- Infiniband
hfi1: Add OPFN which is the feature negotiation protocol used by TID RDMA commit, commit, commit, commit, commit, commit
hfi1: Add TID RDMA Write commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
hfi1: Add TID RDMA Read commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
mlx5: Add SRQ and XRC support for ODP MRs commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
mlx5: Enable DEVX asynchronous query commands commit, commit, commit, commit
mlx5: Add support for 50Gbps per lane link modes commit
bnxt_en: Add support Broadcom's 57500 series of adapters commit, commit, commit, commit, commit, commit, commit
- ath10k
bnxt_en: Add support for BCM957504 commit
brcmfmac: support monitor frames with the hardware/ucode header commit
cxgb4/cxgb4vf: Add support for SGE doorbell queue timer commit
cxgb4: Add VF Link state support commit
cxgb4: Add new T6 PCI device ids 0x608b commit
cxgb4: TLS record offload enable commit
dpaa2-eth: add XDP_REDIRECT support commit
dsa: microchip: add MIB counter reading support commit
enetc: Introduce ENETC ethernet drivers commit, commit, commit, commit, commit, commit
hinic: Add pci device ids commit
hns3: add support to config depth for tx|rx ring separately commit
hns3: add xps setting support for hns3 driver commit
i40e: Add support FEC configuration for Fortville 25G commit
ibmvnic: Enable GRO commit
- ice
Add ethtool private flag to make forcing link down optional commit
Add ethtool set_phys_id handler commit
Add support for adaptive interrupt moderation commit
Add support for new PHY types commit
Allow for software timestamping commit
Implement getting and setting ethtool coalesce commit
Implement support for normal get_eeprom[_len] ethtool ops commit
Offload SCTP checksum commit
igc: Add ethtool support commit
- iwlwifi
Add new 0x2723/0x2080 card for 22000 commit
Add new card for 9260 series commit
Add new cards for 22000 and killer series and change the market name commit
Add new cards for 22560, 9260 and killer series commit
Introduce device family AX210 commit
mvm: add support for new FTM fw API commit
mvm: advertise support for TWT in the Extended Capability IE commit
mvm: save and export regdb blob from the NVM commit
mvm: support FTM initiator commit
mvm: support FTM responder commit
mvm: support beacon IE injection commit
mvm: support mac80211 AMSDU commit
Remove support for 9000 A-step devices commit
dbg_ini: implement Rx fifos dump commit and Tx fifos dump commit
macvlan: add ndo_change_proto_down support commit
- mlxsw
hwmon and thermal extensions commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add support for new port types and speeds for Spectrum-2 commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add GRE tunnel support for Spectrum-2 commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
minimal: Add ethtool support commit
mt76: add channel switch announcement support commit
mt76: add led support to mt76x0e driver commit
mt76: usb: introduce disable_usb_sg parameter commit
mt76x02: enable support for IBSS and MESH commit
mt76x0: phy: report target_power in debugfs commit
mvpp2: Add 2.5GBaseT support commit
mwifiex: add support for sd8977 chipset commit
- mlx5
- dsa
hns3: add HNAE3_RESTORE_CLIENT interface in enet module commit
hns3: add rx multicast packets statistic commit
marvell: neta: add comphy support commit
mscc: Enable all ports in QSGMII commit
- stmmac
nfp: bpf: dead code elimination commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- qed/qede
- qmi_wwan
- qtnfmac
- r8169
rsi: Add debug support for wowlan wakeup confirmation commit
sfc: extend MTD support for newer hardware commit
sh_eth: RX checksum offload support commit, offload RX checksum on R7S72100 commit, R8A7740 commit, R8A77980 commit, SH7734 commit, SH7763 commit
wil6210: add option to drop Tx packets when Tx ring is full commit
wil6210: support up to 20 stations in AP mode commit
10.5. Audio
dice: add support for Solid State Logic Duende Classic/Mini commit
fireface: add support for Fireface UCX commit, commit, commit
- hda/realtek
Add support for Acer Aspire E5-523G/ES1-432 headset mic commit
Add support headset mode for DELL WYSE AIO commit
Add support headset mode for New DELL WYSE NB commit
Enable ASUS X441MB and X705FD headset MIC with ALC256 commit
Enable headset MIC of ASUS X430UN and X512DK with ALC256 commit
Enable headset MIC of Acer Aspire Z24-890 with ALC286 commit
Enable headset mic of ASUS P5440FF with ALC256 commit
hda: hdmi - add Icelake support commit
- ASoC
Add MICFIL SoC Digital Audio Interface driver commit
Intel: Add Geminilake Dialog Maxim machine driver commit
Intel: Boards: Add Maxim98373 support commit
Intel: Headset button support in broxton machine driver commit
Intel: bytcht_es8316: Add external speaker mux support commit, add input-map support commit, add jack-detect support commit
Intel: bytcr_rt5651: Add quirks module parameter commit, add support for jack-detect using an external GPIO commit
ak4458: Add support for AK4497 commit
apq8096: add slim support commit
audio-graph-scu-card: remove audio-graph-scu-card commit
codecs: Add jz4725b-codec driver commit
cros_ec_codec: Add codec driver for Cros EC commit
cs35l36: Add support for Cirrus CS35L36 Amplifier commit
cs4341: Add driver for CS4341 DAC commit
es8316: Add DAC mono mix switch mixer control commit, add jack-detect support commit
mediatek: add btcvsd driver commit
mediatek: mt6358: add codec driver commit
mediatek: mt8183: add platform driver commit
rockchip: support ACODEC for rk3328 commit
rt5651: Add ACPI ID 10EC5640 commit
rt5651: Add support for jack detect using an external GPIO commit
samsung: odroid: Add support for secondary CPU DAI commit
simple-scu-card: remove simple-scu-card commit
sprd: Add Spreadtrum audio DMA platfrom driver commit
sun4i-codec: Add FM Playback Volume, FM Left, FM Right, FM Playback Switch commit, add Line Playback Volume, Line Boost Volume, Line Right, Line Left, Line Playback Switch commit, add MIC2 Pre-Amplifier, Mic2 input commit, add Mic Playback Volume commit, add Mic1 Boost Volume, Mic2 Boost Volume commit, add Mic1 Playback Switch, Mic2 Playback Switch commit
Add support to WCD9335 Audio Codec commit, commit, commit, commit, commit, commit
Add Xilinx SPDIF audio driver and formatter driver commit, commit, commit, commit
10.6. Tablets, touch screens, keyboards, mouses
Add new vibrator driver for various MSM SOCs commit
edt-ft5x06: add support for Evervision FT5726 commit
elan_i2c: add hardware ID for multiple Lenovo laptops commit
elan_i2c: add id for touchpad found in Lenovo s21e-20 commit
goodix: support Goodix gt5688 commit
ili210x: add ILI251X support commit
st1232: add support for st1633 commit
sx8654: add sx8650 support commit
sx8654: add sx8655 and sx8656 to compatibles commit
tm2-touchkey: add support for aries touchkey variant commit
tm2-touchkey: add support for midas touchkey commit
tm2-touchkey: allow specifying custom keycodes commit
wacom_serial4: add support for Wacom ArtPad II tablet commit
Support for Maltron L90 keyboard media keys commit
stpmic1: Add STPMIC1 onkey driver commit
- HID
Add support for Toshiba WT10A tablet bluetooth keyboard commit
hid-asus: Add BT keyboard dock battery monitoring support commit
hid-asus: Add Transbook T90CHI support commit
multitouch: Lenovo X1 Tablet Gen3 trackpoint and buttons commit
uclogic: Add support for Ugee 2150 commit
uclogic: Add support for Ugee EX07S frame controls commit
uclogic: Add support for Ugee G5 commit
uclogic: Add support for Ugee M540 commit
uclogic: Add support for XP-Pen Deco 01 commit
uclogic: Add support for XP-Pen Star G540 commit
uclogic: Add support for XP-Pen Star G640 commit
uclogic: Support Gray-coded rotary encoders commit
uclogic: Support faking Wacom pad device ID commit
uclogic: Support fragmented high-res reports commit
uclogic: Support in-range reporting emulation commit
uclogic: Support v2 protocol commit
viewsonic: Support PD1011 signature pad commit
wacom: Add support for Pro Pen slim commit
10.7. TV tuners, webcams, video capturers
Add support for 32-bit packed YUV formats commit, commit, commit, commit
coda: Add control for h.264 chroma qp index offset commit
coda: Add control for h.264 constrained intra prediction commit, commit, commit
gspca: ov534-ov772x: add SGBRG8 bayer mode support commit
i2c: mt9m001: copy mt9m001 soc_camera sensor driver commit
ov5640: Add RAW bayer format support commit
ov8856: Add support for OV8856 sensor commit
rc: rcmm decoder and encoder commit
rcar-csi2: Add support for RZ/G2E commit
rcar-vin: Add support for RZ/G2E commit
sh_mobile_ceu_camera: remove obsolete soc_camera driver commit
si470x-i2c: Add optional reset-gpio support commit
smipcie: add universal ir capability commit
soc_camera: Remove the mt9m001 SoC camera sensor driver commit
soc_camera: Remove the rj45n1 SoC camera sensor driver commit
soc_camera_platform: remove obsolete soc_camera test driver commit
soc_mt9t112: remove obsolete sensor driver commit
soc_ov772x: remove obsolete sensor driver commit
soc_tw9910: remove obsolete sensor driver commit
sun6i: Add A64 CSI block support commit
sun6i: Add support for JPEG media bus format commit
sun6i: Add support for RGB565 formats commit
vicodec: Add support for resolution change event commit
vicodec: add support for CROP and COMPOSE selection commit
video-i2c: add Melexis MLX90640 thermal camera commit
vim2m: add bayer capture formats commit
vim2m: add support for VIDIOC_ENUM_FRAMESIZES commit
vim2m: allow setting the default transaction time via parameter commit
vimc: Add vimc-streamer for stream control commit
vimc: add USERPTR support commit
10.8. Universal Serial Bus
Add option of only authorizing internal devices. This is used by ChromeOS to initialize fixed USB devices while the userspace in charge of authorizing USB devices, such as USBGuard, are started commit
cp210x: add ID for Ingenico 3070 commit
cp210x: add new device id commit
ftdi_sio: add ID for Hjelmslund Electronics USB485 commit
ftdi_sio: add additional NovaTech products commit
option: add Olicard 600 commit
option: add Telit ME910 ECM composition commit
option: add support for Quectel EM12 commit
option: set driver_info for SIM5218 and compatibles commit
dwc3: pci: add support for Comet Lake PCH ID commit
misc: usbtest: add super-speed isoc support commit
10.9. Serial Peripheral Interface (SPI)
Add a driver for the Freescale/NXP QuadSPI controller commit
stm32: add support for STM32F4 commit
spi-mem: Add driver for NXP FlexSPI controller commit
atmel-quadspi: add support for sam9x60 qspi controller commit
10.10. Watchdog
Add watchdog_thresh command line parameter to set the hard lockup detector stall duration threshold in seconds commit
stpmic1: Add STPMIC1 watchdog driver commit
mlx-wdt: introduce a watchdog driver for Mellanox systems commit
10.11. Serial
10.12. ACPI, EFI, cpufreq, thermal, Power Management
(FEATURED) cpuidle: New timer events oriented governor for tickless systems commit
cpufreq: ap806: add cpufreq driver for Armada 8K commit
ACPI / APEI: Add support for the SDEI GHES Notification type commit
tools/power turbostat: Add Die column commit
tools/power turbostat: Add support for AMD Fam 17h (Zen) RAPL commit
tools/power turbostat: Add Icelake support commit
thermal: broadcom: Add Stingray thermal driver commit
thermal: mediatek: add support for MT8183 commit
thermal: qoriq: add multiple sensors support commit
10.13. Real Time Clock (RTC)
platform/chrome: wilco_ec: Add RTC driver commit
Add Cadence RTC driver commit
Add AB-RTCMC-32.768kHz-EOZ9 RTC support commit
imx-sc: add rtc set time support commit
isl1208: Add new style nvmem support to driver commit
isl1208: Support more chip variations commit
rv3028: add new driver commit
rx8581: Add support for Epson rx8571 RTC commit
sd3078: new driver commit
support for the Amlogic Meson RTC commit
10.14. Voltage, current regulators, power capping, power supply
reset: at91-reset: add support for sam9x60 SoC commit
- regulator:
10.15. Pin Controllers (pinctrl)
ssbi-gpio: add support for hierarchical IRQ chip commit
at91: add slewrate support for SAM9X60 commit
at91: add drive strength support for SAM9X60 commit
freescale: Add imx8mm pinctrl driver support commit
imx: add imx8qm driver commit
10.16. Multi Media Card (MMC)
Add discard support to sd commit
sdhci: Add ADMA3 DMA support for V4 enabled host commit
tegra: HW Command Queue Support for Tegra SDMMC commit
10.17. Memory Technology Devices (MTD)
fsl-quadspi: Remove the driver as it was replaced by spi-fsl-qspi.c commit
rawnand: meson: add support for Amlogic NAND flash controller commit
spi-nor: Add support for EN25Q80A commit
spi-nor: Add support for MX25V8035F commit
spi-nor: Add support for en25qh64 commit
spi-nor: Add support for mx25u3235f commit
spi-nor: cadence-quadspi: Add support for Octal SPI controller commit
spinand: Add support for GigaDevice GD5F1GQ4UExxG commit
spinand: Add support for all Toshiba Memory products commit
ubi: Expose the bitrot interface commit
10.18. Industrial I/O (iio)
add Ingenic JZ47xx ADC driver commit
Add modifiers for ethanol and H2 gases commit
accell: mma8452: add vdd/vddio regulator operation support commit
adc: Add AD7768-1 ADC basic support commit
adc: ad7768-1: Add support for setting the sampling frequency commit
adc: Add the TI ads124s08 ADC code commit
adc: ad7476: Add support for TI ADS786X ADCs commit
adc: add NPCM ADC driver commit
adc: add STMPE ADC driver using IIO framework commit
chemical: add support for Plantower PMS7003 sensor commit
chemical: add support for Sensirion SPS30 sensor commit
chemical: sgp30: Support Sensirion SGP30/SGPC3 sensors commit
dac: ad5686: Add support for AD5674R/AD5679R commit
imu: mpu6050: Add support for the ICM 20602 IMU commit
light: add driver for MAX44009 commit
light: isl29018: add vcc regulator operation support commit
magnetometer: mag3110: add vdd/vddio regulator operation support commit
dac:ti-dac7612: Add driver for Texas Instruments DAC7612 commit
st_pressure:initial lps22hh sensor support commit
10.19. Multi Function Devices (MFD)
lochnagar: Add support for the Cirrus Logic Lochnagar commit
tps65218.c: Add input voltage options commit
stpmic1: Add STPMIC1 driver commit
10.20. Pulse-Width Modulation (PWM)
Add MediaTek MT8183 display PWM driver support commit
atmel: Add support for SAM9X60's PWM controller commit
hibvt: Add hi3559v100 support commit
10.21. Inter-Integrated Circuit (I2C)
aspeed: Add multi-master use case support commit
gpio: fault-injector: add 'inject_panic' injector commit, add 'lose_arbitration' injector commit
i801: Add support for Intel Comet Lake commit
i2c-ocores: Add IO mapped polled support commit, commit, commit
rcar: add suspend/resume support commit
tegra: Add DMA support commit
tegra: add bus clear Master Support commit
tegra: add i2c interface timing support commit
tegra: update maximum transfer size commit
10.22. Hardware monitoring (hwmon)
dell-smm: Support up to 10 temp sensors commit
pmbus: add support for DPS-650AB commit
pwm-fan: Add optional regulator support commit
lm85: support the LM96000 commit
10.23. General Purpose I/O (gpio)
add core support for pull-up/pull-down configuration commit
AMD G-Series PCH gpio driver commit
pca953x: Add wake-up support commit
Add a Gateworks PLD GPIO driver commit
gpio-f7188x: add support Fintek F81804 & F81966 commit
10.24. DMA engines
k3dma: Upgrade k3dma driver to support hisi_asp_dma hardware commit
fsl-qdma: Add qDMA controller driver for Layerscape SoCs commit
ioatdma: support latency tolerance report (LTR) for v3.4 commit
ioatdma: add descriptor pre-fetch support for v3.4 commit
ioatdma: Add Snow Ridge ioatdma device id commit
10.25. Hardware Random Number Generator (hwrng)
Add OP-TEE based rng driver commit
10.26. Cryptography hardware acceleration
caam: add support for xcbc(aes) commit
crypto4xx: add prng crypto support commit
axis: remove sha384 support for artpec7 commit
caam: add ecb(*) support commit
s5p: add AES support for Exynos5433 commit
10.27. PCI
Add HXT vendor ID commit
imx6: Add support for i.MX8MQ commit
altera: Add Stratix 10 PCIe support commit
layerscape: Add EP mode support commit
10.28. Clock
Add Fixed MMIO clock driver commit
actions: Add clock driver for S500 SoC commit
clocksource/drivers/tegra: Add Tegra210 timer support commit
imx: Add PLLs driver for imx8mm soc commit
imx: Add clock driver support for imx8mm commit
imx: scu: add cpu frequency scaling support commit
meson: Add G12A AO Clock + Reset Controller commit
meson: g12a: add peripheral clock controller commit
meson: pll: update driver for the g12a commit
qcom: clk-rpmh: Add IPA clock support commit
tegra: dfll: support PWM regulator control commit
10.29. EDAC (Error Detection And Correction)
aspeed: Add an Aspeed AST2500 EDAC driver commit
i10nm: Add a driver for Intel 10nm server processors commit
10.30. PHY ("physical layer" framework)
Add Cadence D-PHY support commit
Add A3700 COMPHY support commit
Add A3700 UTMI PHY driver commit
armada38x: add common phy support commit
qcom-qmp: Add QMP V3 USB3 PHY support for msm8998 commit
qcom-qusb2: Add QUSB2 PHY support for msm8998 commit
ti: usb2: Add support for AM654 USB2 PHY commit
- Networking
mdio-mux: Add support for Generic Mux controls commit
aquantia: add hwmon support commit
marvell10g: add support for the 88x2110 PHY commit
Add DP83825I to the DP83822 driver commit
Add generic support for 2.5GBaseT and 5GBaseT commit
aquantia: add support for AQCS109 commit
aquantia: add support for auto-negotiation configuration commit
ealtek: add generic Realtek PHY driver commit
10.31. Various
extcon: Add support for ptn5150 extcon driver commit
firmware: tegra: add bpmp driver for Tegra210 commit
firmware: xilinx: Add APIs to control node status/power commit
firmware: xilinx: Implement ZynqMP power management APIs commit
soc: xilinx: Add ZynqMP PM driver commit
soc: xilinx: Add ZynqMP power domain driver commit
gnss: add driver for mediatek receivers commit
habanalabs: Add driver for Habana's AI Processors (AIP) that are designed to accelerate Deep Learning inference and training workloads commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
interconnect: Add debugfs support commit
interconnect: Add generic on-chip interconnect API commit
interconnect: Allow endpoints translation via DT commit
interconnect: qcom: Add sdm845 interconnect provider driver commit
iommu/hyper-v: Add Hyper-V stub IOMMU driver commit
irqchip: Add driver for Loongson-1 interrupt controller commit
mailbox: ZynqMP IPI mailbox controller commit
hdcp driver commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add support to Qualcomm FastRPC driver commit, commit, commit, commit
ptp: add QorIQ PTP support for ENETC commit
ptp_qoriq: support external trigger stamp FIFO commit
remoteproc: debug: add crash debugfs node commit
reset: Add Broadcom STB SW_INIT reset controller driver commit
reset: imx7: Add support for i.MX8MQ IP block variant commit
reset: reset-zynqmp: Adding support for Xilinx zynqmp reset controller commit
soc: qcom: rpmhpd: Add RPMh power domain driver commit
soc: qcom: rpmpd: Add a Power domain driver to model corners commit
tee: add bus driver framework for TEE based devices commit
tee: add cancellation support to client interface commit
tee: optee: add TEE bus device enumeration support commit
11. List of merges