74744
Comment: shared subtree
|
880
Linux 5.2
|
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 ;) ) Changes made to the 2.5.x-2.6.0 development series can be found in the Linux25Changes page. 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: |
===== 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=03e06e68ff76294e53ffa898cb844d2a997b043e (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)] |
You can discuss the latest Linux kernel changes on the [[http://forum.kernelnewbies.org/list.php?4|New Linux Kernel Features Forum]]. |
Line 55: | Line 7: |
===== 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)] ===== 2.6.13 ===== * Released August 29, 2005 [http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.13 changelog] * Execute-in-place support: Traditionally, programs are loaded from disk to memory to be executed. However, the current wave of embedded devices store programs in a ROM/flash chip. XIP allows the kernel executing programs directly from that ROM, without being copied to RAM (saving RAM space), and bypassing the page cache/io scheduler layers (since they're not needed). [http://lwn.net/Articles/135472/ (LWN article)] [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d763b7a4736e219528f77bf6bc75dd78b1d75c03 (commit)] * i386 CPU hotplug support: provides i386 architecture support for safely unregistering and registering processors during runtime [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f370513640492641b4046bfd9a6e4714f6ae530d (commit)] * Add /proc/sys/fs/suid_dumpable to provide system-wide control over whether or not set-user-ID and set-group-ID processes produce core dumps. The values accepted are: 0 (default) - traditional behaviour, any process which has changed privilege levels or is execute only will not be dumped. 1 - (debug) - all processes dump core when possible. The core dump is owned by the current user and no security is applied. This is intended for system debugging situations only. Ptrace is unchecked. 2 - (suidsafe) - any binary which normally would not be dumped is dumped readable by root only. This allows the end user to remove such a dump but not access it directly. For security reasons core dumps in this mode will not overwrite one another or other files. This mode is appropriate when adminstrators are attempting to debug problems in a normal environment [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d6e711448137ca3301512cec41a2c2ce852b3d0a (commit)] * x86 now uses the generic PCI bus setup code for assigning unassigned resources * Voluntary preemption patches * build-time configurable clock interrupt frequency: Now HZ defaults to 250 in x86. 1000 is better for "interactivity" (desktops) and 100 is good for performance (servers) and saves some energy in laptops. [http://lwn.net/Articles/145973/ (LWN article)] * inotify [http://lwn.net/Articles/104343/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0eeca28300df110bd6ed54b31193c83b87921443 (commit)] * Support for the Xtensa architecture: [http://www.tensilica.com/products/xtensa_architecture.htm 32-bit architecture] used in embedded devices [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8e1a6dd2fddcc73c9e933758361e3d9c076c688a (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4bedea94545165364618d403d03b61d797acba0b (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5a0015d62668e64c8b6e02e360fbbea121bfd5e6 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=249ac17e96811acc3c6402317dd5d5c89d2cbf68 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3f65ce4d141e435e54c20ed2379d983d362a2cb5 (commit)] * Improved CFQ IO scheduler: With support for I/O priorities [http://lwn.net/Articles/143474/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=22e2c507c301c3dbbcf91b4948b88f78842ee6c9 (commit)] * kexec and kdump: Kexec allows users to load a new kernel from another running kernel. By preserving the memory contents in a crash scenario, kexec allows to implement kdump. Kdump is able to get a memory dump of the previous kernel, and be used as a debugging tool. [http://lwn.net/Articles/108595/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dc009d92435f99498cbc579ce76bf28e837e2c14 (commit)] * Runtime selectable TCP congestion algorithm: Allow using setsockopt to set TCP congestion control to use on a per socket basis. [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5f8ef48d240963093451bcf83df89f1a1364f51d (commit)] - [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=317a76f9a44b437d6301718f4e5d08bd93f98da7 (commit)] [http://lwn.net/Articles/128681/ (LWN article)] * Add several TCP congestion modules: H-TCP [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a7868ea68d29eb2c037952aeb3b549cf05749a18 commit], TCP Hybla [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=835b3f0c0d7e1f716c45ec576662eac7a68b8548 (commit)], High Speed TCP (HS-TCP) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a628d29b56d3f420bf3ff1d7543a9caf3ce3b994 (commit)], TCP Westwood [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8727076289ec55298a05cabddf02b374d13c1624 (commit)], TCP BIC [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=83803034f4233d810c4adc52008921da060c55d1 (commit)] * Add Direct Rendering Manager device driver for VIA Unichrome chipsets [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=22f579c621e2f264e6d093b07d75f99bc97d5df2 (commit)] * 32/64-bit DRM ioctl compatibility: 64 bit architectures running 32 bit software have to be compatible with 32-bit ioctl calls [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9a18664506dbce5e23f3c5de7b1c5a042dd26520 (commit)] * Add ACL support for NFSv3 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b7fa0554cf1ba6d6895cd0a5b02989a26e0bc704 (commit)] - [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a257cdd0e2179630d3201c32ba14d7fcb3c3a055 (commit)] and NFSv4 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4b580ee3dc00f9828a9a7aad2724f448fdc94075 (commit)] - [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=aa1870af92d8f6d6db0883696516a83ff2b695a6 (commit)] * New driver for the "trusted computing" (TPM) crap^Wchip [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ebb81fdb3dd0be7514b84197c4f8388a17130f04 (commit)] * Removal of the devfs configuration option ===== 2.6.12 ===== * Released June 17, 2005 [http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.12 changelog] * Pageout throttling: With silly pageout testcases it is possible to place huge amounts of memory under I/O. With a large request queue (CFQ uses 8192 requests) it is possible to place _all_ memory under I/O at the same time. This means that all memory is pinned and unreclaimable and the VM gets upset and goes oom. This patch limits the amount of memory which is under pageout writeout to be a little more than the amount of memory at which balance_dirty_pages() callers will synchronously throttle. This means that heavy pageout activity can starve heavy writeback activity completely, but heavy writeback activity will not cause starvation of pageout [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=3799f8fcebf940f21c69e80ded882245a8bc67a7 (commit)] * Address space randomization: With these patches applied, each process's stack will begin at a random location, and the beginning of the memory area used for mmap() (which is where shared libraries go, among other things) will be randomized as well [http://lwn.net/Articles/121845/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=6a638354be1afb0a134558869e05ddc414707205 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=f1a6b09deaee24b90b1fab42f93ce1b90f0d319b (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=6562d1975c95c8d6817e373c54f256013d062c5c (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=ad4f9c53a04ce077ae2dde82029bb20a6db705ab (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=c0e5a50b1f28e83b1563453f90f6f0866f3a9a90 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=42a172a814759a29020e5d1ee580bf4eb86afed2 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=6833da342273d41d059333e7b6ae81f18dbe6dde (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=9bdac354e0bea82ce76ebdf51d6bbd3993782f78 (commit)] * Cpusets [http://lwn.net/Articles/127936/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=263c0646931c7259ce59188190e0822a121fc0ad (commit)] * "resource limits": RLIMIT_NICE and RLIMIT_RTPRIO added to allow non-root tasks to raise nice and rt priorities. Defaults to traditional behavior [http://lwn.net/Articles/134460/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e43379f10b42194b8a6e1de342cfb44463c0f6da (commit)] * Multilevel security implementation for SELinux * Support for Cyrix MediaGX (aka GEODE) CPUs. Linux and GCC treat this chip as a 586TSC with some extended instructions and alignment reqirements [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=5576007ac28bdd68800ba5816d30ec393c5765ff (commit)] * I/O barrier support for serial ATA drives * Block I/O barrier rewrite (enables full barrier support on serial ATA drives) * Annotate /proc/$PID/maps with [heap]/[stack]/[vdso] markers [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=1d39bbb3d2b67ef76d1aaa1bdef39aee2971015b (commit)] * [http://www.superh.com/products/shyway.htm SuperHyway bus support] * Device mapper multipath support [http://lwn.net/Articles/124703/ (LWN article)] * Hot-pluggable parallel ports [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=2a6c1160578808ec4ef927ccd811791d1635f264 (commit)] * Updated FAT attributes: This updates the FAT attributes as well as corrects the handling of VFAT ctime [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=71b60d7133806152284b3507a901bda2ae645ab0 (commit)] * Handle MS_SYNCHRONOUS flag in FAT: FAT filesystem has been ignoring the "sync" mount option for ages. This patches fixes this, but (obviously) degrades performance unless you mount your FAT filesystem as asynchronous ("async mount option) [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=3e261a474262b622709d4851a1f26123e61ab13c (commit)] * Add timing information to printk messages [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=bd0ac8842ea3484a090fd30507c80ae4cb22de3b (commit)] * Allow admin to enable only some of the Magic-Sysrq functions [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=ea59ccebb3a5a8e76bf9505047e7706027ccf35a (commit)] * Loglevel boot option [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=5d65f423092e68ab44a2a6386c0b3f1985f79c41 (commit)] * Remove IPV6 "experimental" status ===== 2.6.11 ===== * Released March 2, 2005 [http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.11 changelog] * Conversion to 4-level page tables [http://lwn.net/Articles/117749/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=fcbb3756afbe9a4703c45cab86f947412a0358cf (commit)] * New Pipe implementation [http://lwn.net/Articles/118750/ (LWN article)] * "Big Kernel Semaphore": Turns the Big Kernel Lock into a semaphore [http://lwn.net/Articles/102253/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=deac7335cecb3c1e23a032a3f56a34c643871d3b (commit)] * Introduces the CAP_AUDIT_WRITE and CAP_AUDIT_CONTROL capabilities [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=324689781d5d305903f86578b71596fb2a96dd05 (commit)] * Simplify readahead code [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=e8eb956c01529eccc6d7407ab9529ccc6522600f (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=af006eae66249e03d1024fb71cdfae58e7fa7b7e (commit)] * Support for Extended Attributes in the body of large inode in ext3: saves space and improves performance in some cases [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=f0d1dbed7714ea06242c180c215641a92e655414 (commit)] * Add /proc/sys/kernel/bootloader_type [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=11e4268cffc468b60d2b756dc8eb455112b52308 (commit)] * Remove bitmaps from the buddy allocator [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=dda3a6ba68c264b2c850f2d9500b18d0c407a443 (commit)] * Enhanced I/O and memory accounting [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=c3adb238a7557416a3aa472038343d59c986d062 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=cb6850ae19e4f6bf8ccec0ca770c7b4d1c5f9669 (commit)] * AMD Dual-core support [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=7bd66939b746c4c5a69eb74e2f83f967540e4691 (commit)] * Add Fujitsu FR-V CPU architecture [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=e003366285ac6c770b59cc618f9716c2e0ac0430 (commit)] * TCP port randomization [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=97f941fb4ca03c60da6f466721cc99f576f35877 (commit)] * SATA support for Intel ICH7 * DebugFS [http://lwn.net/Articles/115405/ (LWN article)] * Infiniband support [http://lwn.net/Articles/112531/ (LWN article)] * Remove UMSDOS [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=0512a33a91dbe2241a9a39ddeb3af1c27180aabd (commit)] * Major problems with TCP/IP BIC (the default congestion control) are resolved ===== 2.6.10 ===== * Released December 24, 2004 [http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.10 changelog] * Accounting: report single record for multithreaded process. In kernels before 2.6.10, a separate process accounting record was written for each thread created using NTPL. Since 2.6.10, a single accounting record is written for the entire process [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=fa4c8b605c3313de9e3170b68b9e4576a6a5d45e (commit)] * x86-64 clustered APIC support [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=7f8b8c2a84d1098aec520d1f701c752f10bc5396 (commit)] * Make rlimit settings per-process instead of per-thread for POSIX compliance [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=f1a81f9149ac2321978e1357eb697f95cc31e989 (commit)] * POSIX compliant CPU clocks [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=5842ca68fe016d84f5e9a247fa4d7bdd54ff4ee4 (commit)] * Show aggregate per-process counters in /proc/$PID/stat: Add up resource usage counters for live and dead threads to show aggregate per-process usage. This mirrors the new getrusage() semantics. /proc/$PID/task/$TID/stat still has the per-thread usage [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=99ae4bcef104d602d790eb7da7cfc241ca6eefee (commit)] * Report the pages used for pagetables in /proc/$PID/status [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=713a7e3b7505f501892f031c5a51f7d6c0b89c11 (commit)] * Display committed memory limit (per the current overcommit ratio) and the amount of memory remaining under this limit in meminfo [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=2fdc35b54263b69e695334e465210a8db55a4cfa (commit)] * Thrashing control tuning [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=146f46fa1ec0b76fa76bced34b4849934791532c (commit)] * Big Kernel Lock preemption * IRQ subsystem code rework [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=133bb1db6e22ec5c8b4d0d015deed5b2fa3e447c (commit)] * Removal of the "BIO walking" helper functions * Generic circular buffer type [http://lwn.net/Articles/107314/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=2dbf22c09c31b815202b2ffd6ba2efbfa66c0f72 (commit)] * Ext3 block reservation [http://lwn.net/Articles/81357/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=75e03cd329884cf024993a2d61c4c32bf7bf6c49 (commit)] * Ext3 online resizing patches [http://lwn.net/Articles/89560/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=05a7a2e19ecde7b7c559bdf5009327cff3504d9b (commit)] * Add I/O error handling to journal operations in reiserfs [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=ee0bc517002dcc9e80de36ba0a75bba39d951da9 (commit)] * sysfs backing store [http://lwn.net/Articles/69523/ (LWN article)] * I/O space write barriers [http://lwn.net/Articles/103183/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=50ff053344ac1afbed10f2d5ef0749f816401890 (commit)] * Modular, on-the-fly switchable I/O schedulers [http://lwn.net/Articles/102976/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=d35eec28b8b0da58d9e7d16548fc9105535fa7fe (commit)] * CFQ v2 update [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=579eef5fa2be5ed12bc8d3df3555f4e2d725af64 (commit)] * BSD secure levels module [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=05f59528b1256613657b6f7fdd7d5bd4b20cb902 (commit)] * In-kernel cryptographic key management [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=33a2761288241488ccccedc24688cf33acfba0c9 (commit)] * DVD+RW support [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=dcc573b12a9d623a13ef156bbde6b116507b437a (commit)] * CDRW packet writing support [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=23cabaea5ba85ddaba415e1d5e12073e2ce7f8e3 (commit)] * kernel events notification mechanism * Lock initializater unification [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=e09813fb9c74241a00883e6411e6e3cf66d63339 (commit)] * Panick blinking: Makes the keyboard blink when a oops happens - useful to know if the kernel has really oopsed or not (ej: X.org bugs) [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=5234bcafa9747f78ef723cb8bad14635cf17a811 (commit)] * Reworking of spin lock initialization [http://lwn.net/Articles/109505 (LWN article)] * Configurable /proc/kcore [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=71f16058e2ff1a154e6ed685a66819322c4cdf21 (commit)] ===== 2.6.9 ===== * Released October 19, 2004 [http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.9 changelog] * Token-based thrashing control [http://lwn.net/Articles/96621 (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=e6a32818710d24cc910ec4d4333f99972b3cf563 (commit)] * Concurrent O_SYNC write support: In databases it is common to have multiple threads or processes performing O_SYNC writes against different parts of the same file.[http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=96deebee4470587bc1a855c787d6919df681cdac (commit)] * Reiserfs v3 barrier support: Add reiserfs support for flush barriers, mount with -o barrier=flush to enable them. Barriers are triggered on fsync and for log commits [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=b736095823b073209ef38622227c64c593260b73 (commit)] * ext3 barrier support: Mount with "mount -o barrier=1" to enable barriers [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=52a75614f1f753e01a5a9610c5390b5b7f795912 (commit)] * Support of disk barriers: [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=74c50b2c1af1b3535cf6c39ce684e60fa9f5dfdb (commit)] * m32r architecture support * Scheduler statistics: adds lots of CPU scheduler stats in /proc/$PID/stat [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=34b334118622daae225ab8fd56c79f54f6e15774 (commit)] * RLIMIT_MEMLOCK semantics change: In Linux kernels before 2.6.9, only privileged processes (CAP_IPC_LOCK) could lock memory, and the RLIMIT_MEMLOCK soft resource limit placed an upper limit on the number of bytes that a privileged process can lock. Since kernel 2.6.9: no limits are placed on the amount of memory that a privileged process can lock; and an unprivileged process is now able to lock memory up to the soft limit defined by RLIMIT_MEMLOC [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=adaeb8014406050050cf09416d1b0e3c23838fdb (commit)] * Tunable "max sectors" limit for block I/O requests (can help latency reduction) * New prctl() option allowing programs to change their name (PR_GET_NAME) * AMD dual-core support * Out-of-line spinlocks [http://lwn.net/Articles/97537/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=2ea380e357f23ad37c1a06c6af509b68e9d57bb6 (commit)] * Support for POSIX's waitid() Also, now linux now supports the POSIX specification that SIGCHLD is sent to the parent when one of its children resumes as a consequence of receiving a SIGCONT signal. Also, WCONTINUED flag is added to waitpid() and waitid() [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=8e81583bfd488bb0b10aa799f7ec5f7b4a79fe73 (commit)]. * Shared memory scalability improvements * "flex mmap" user-space memory layout [http://lwn.net/Articles/91829/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=0f7c9b1849d5365d27d4553e471a8e721c8dabb7 (commit)] * x86 PAE swapspace expansion. PAE is artificially limited in terms of swapspace to the same bitsplit as ordinary i386, a 5/24 split (32 swapfiles, 64GB max swapfile size), when a 5/27 split (32 swapfiles, 512GB max swapfile size) is feasible. This patch transparently removes that limitation by using more of the space available in PAE's wider ptes for swap ptes [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=7c1c60d14d175c41c5db03f20f44c80c4d683e52 (commit)] * Show Active/Inactive on per-node meminfo: The patch below enable to display the size of Active/Inactive pages on per-node meminfo (/sys/devices/system/node/node%d/meminfo) like /proc/meminfo [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=6d4a504b45abc756eac6374591f74c7afb722b6a (commit)] * Change in TCP ICMP source quench behavior * [http://www.linux-usb.org/gadget/h2-otg.html USB "on the go" support] * New USB storage driver * Support for more than eight partitions on BSD-labeled disks * Ethtool support in the loopback driver * NETIF_F_LLTX interface [http://lwn.net/Articles/101215/ (LWN article)] * DSCP decapsulation for IPsec [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=cac8c9f3e6cd37a3dd079e12a01fc41d2650bf39 (commit)] * Removal of the ancient "busmouse" driver * Infrastructure for cluster-wide file locking * DRM subsystem cleanups * "fake NUMA" mode for x86-64 testing * Small-footprint tmpfs implementation * Support for scheduler profiling (seeing where context switches come from) * Automatic TCP window scaling calculation * Some VFS interface improvements * Executable support in hugetlb mappings * The Whirlpool digest algorithm * Removal of the very last suser() call ===== 2.6.8 ===== * Released August 14, 2004 [http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.8 changelog] * Allow x86 to reenable interrupts on lock contention [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=e61229e7fab63f09bcab5f6d54477453ca98684c (commit)] * VFS shrinkage tuning: This adds /proc/sys/vm/vfs_cache_pressure, which tunes the vfs cache versus pagecache scanning pressure. At vfs_cache_pressure=0 we don't shrink dcache and icache at all, at vfs_cache_pressure=100 there is no change in behaviour, at vfs_cache_pressure > 100 we reclaim dentries and inodes harder [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=95afb3658a8217ff2c262e202601340323ef2803 (commit)] * Conversion to the new symbolic link resolution code (which will eventually allow an increase in the maximum link depth) [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=c989bc66ec92aabcf88f429da52a798003edc505 (commit)] * Add O_NOATIME open flag support (GNU extension): If this bit is set, read will not update the access time of the file. It is useful if you want to do something with the file atime (for instance, moving files that have not been accessed in a while to somewhere else, or something like Debian's popularity-contest) but you also want to read all files periodically (for instance, tripwire or debsums) [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=037c5577398a9d87f0b9f8d68cbf17324b5b05fe (commit)] * MNT_EXPIRE for umount(): Intrinsic automount and mountpoint degradation support. This adds support for a filesystem (such as kAFS) to perform automounting intrinsically without the need for a userspace daemon. It also adds support for such mountpoints to be degraded at the filesystem's behest until they've been untouched long enough that they'll be removed [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=92b2af55e9bd44724700c8eef889c7b368df6c94 (commit)] * Process Accounting Version 3 format added [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=f0743e893fb6ede7126ee6bb9ebad092fc2e346c (commit)] * RLIMIT_SIGPENDING added, introducing per user rlimits for both queued signals and POSIX message queues [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=05eecc7a8a3765f2dd4b4d5d8a2e928f27c620f0 (commit)], and remove unused queued_signals global accounting - rtsig-max and rtsig-nr /proc interfaces went away [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=31c7f302112bb18a7fd93cf07f52478a2688f62b (commit)] * support for 64-bit Super-H hardware * Removal of the PC9800 subarchitecture (lack of mainteinance) [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=3f7da6b29ad4612b09ddb39dd7938d11e9551ba6 (commit)] * Preemptible kernel support for the PPC64 architecture [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=5cc01b3b2ec3228457146904098dbaed01fbe0f8 (commit)] * Oprofile support for ppc32 [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=1383f594343b33211e1755524ecfd6c70ea8d1c9 (commit)] * Support for new Apple Powerbooks [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=eb5b2db2e449555fb06da1a6c81506f7593a7ad3 (commit)] * x86 no-execute support [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=3d543a2d0ce112d99d584fa99a5005629bc3c871 (commit)] * Asynchronous I/O support for USB gadgets * HPET (High Precision Event Timer) support [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=d4e2cce3c8d7a766e474e9643514f1e6be7d758d (commit)] * Reworked symbolic link lookup implementation [http://lwn.net/Articles/91959/ (LWN article)] * Lockless loopback [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=b2079a04d5b73b7cf82bb88897e86e2aee91bbc4 (commit)] * New "CPU mask" implementation * RCU performance improvements [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=48adcee8afd0838517a7e3150daa617f5b0a0c25 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=2321dce287dbaf69028be4678956451c9f1157b1 (commit)] * New wait_event_interruptible_exclusive() macro * Sysfs knobs for tuning the CFQ I/O scheduler [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=cde1f64d5ecbc78bc605937540421914b4f8cb8f (commit)] * Mirroring, snapshot and dm-zero targets for the device mapper [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=82fe372266fddf32677a7e0b4e2908bbcecf90dd (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=9665bd2e2f0ac296d7e4c40a50978dfa9f6dce07 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=db40a292b7da5640a8a464b1e8a8251eaf175fd8 (commit)] * Reiserfs data=journal support [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=e4861db92ba98c0280abf75bbbe344a14254997b (commit)] * Added permissions checking on raw SCSI commands from user space [http://lwn.net/Articles/98379/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=edfbc0a1c7df14728a31734ecafbbcacac85ac20 (commit)] * Removal of the fcntl() file operations method * New internal infrastructure for handling file positioning and seekability [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=9286c49cc35e0a5a4ed240a80ae9ef17b37948d8 (commit)] * Removal of the (non-functional) "fastroute" networking option * TEA, XTEA, Khazad crypto algorithms [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=ca28e25885ef28aeb01553d46e225805f9f26b10 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=1dbd347b7c1f8d879361609eabed7100b5f30754 (commit)] * Add deb-pkg build option [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=4c25efaec1f969b16102dea37a38f33a2848cca5 (commit)] * TCP/IP congestion control changes from Reno to BIC ===== 2.6.7 ===== * Released June 16, 2004 [http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.7 changelog]: * Scheduling Domains [http://lwn.net/Articles/80911/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=5a2bc24fc647c9dfb10faae4b3a86ef05fc6f596 (commit)] * Full object-based reverse-mapping scheme and removal of the per-page PTE chains [http://lwn.net/Articles/86715/ (LWN article)] * Filtered Wakeups [http://lwn.net/Articles/83633/ (LWN article)] * Ability to re-enable interrupts while waiting in spin_lock_irqsave() (for all architectures now) * msleep() function for millisecond-scale waits * del_singleshot_timer(): Deleting timers quickly [http://lwn.net/Articles/84836/ (LWN article)] * shrink "dentry" structure * Speedup readahead for seeky workloads [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=ef12b3c1abce83e8e25d27bdaab6380238e792ff (commit)] * Support for quotas, extended attributes, ACLs, SELinux in reiserfs [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=783206fcd4123700cf1bdced342dcd44d1b18e20 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=c6df36c4c37c02dc45d390f7e78cbae51e4dcb2c (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=c86d577034339a7f7c149320be204d2ad0e3dbe2 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=98ca2698e94ce62fa4f34ed6256019cabb74c8a5 (commit)] * Removal of the Intermezzo filesystem (lack of mainteinance) [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=4b18ece918a95d42904ea80a7dd62075e90d2f84 (commit)] * Remove IDE PATA TCQ support: It's been disabled some time ago, PATA TCQ has so many technical short comings, that it was never really interesting [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=066298b9347991e663ab9b0005e5fe36bad1b22c (commit)] * Dynamic addition of virtual disks on PPC64 iSeries [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=280fbb169c2d81004d866fdd6d51fc73b85b8210 (commit)] * Implement separate per-cpu stacks for processing interrupts and softirqs, along the lines of the CONFIG_4KSTACKS stuff on x86 [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=93836954c881c4c70d5cd8e64440ec17a841bfa8 (commit)] * PowerPC 750GX support [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=19f21bf97946de6637ff9d788f6fa0f5956e2597 (commit)] * new API for NUMA systems * Debugging option to put data symbols in kallsyms [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=e9bc643950e4125f25c73a12abf07669074709f5 (commit)] ===== 2.6.6 ===== * Released May 10, 2004 [http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.6 changelog] * Removal of (struct page)->list and page dirty/clean/free lists, replaced by radix-tree tagging [http://lwn.net/Articles/80472/ (LWN article)] * Network packet timestamping optimization * Binary Increase Control (BIC) TCP developed by NCSU. It is yet another TCP congestion control algorithm for handling big fat pipes. For normal size congestion windows it behaves the same as existing TCP Reno, but when window is large it uses additive increase to ensure fairness and when window is small it uses binary search increase [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=d009df2d52345441873340c5b75ecc09b9343a22 (commit)] * [http://www.geocities.com/wronski12/posix_ipc/index.html POSIX message queues] [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=3bc45e612c620d7477b9ed3f285c9222b3bb558b (commit)] * fsync() and fdatasync() speed improvements to ext2/3 [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=c67ebc7f2644d612f7838a7f3aee1b766ce11e69 (commit)] * Addition of the fcntl() method to the file_operations structure [http://lwn.net/Articles/77190/ (LWN article)] * Laptop Mode [http://lwn.net/Articles/65437/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=166054344dda21795e3735af51edf1a261177e7e (commit)] * Oprofile for s390 [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=f42022413a50489115f36c5e9a16f5d13e4831a4 (commit)] * 4KB kernel stacks option for the i386 architecture [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=f061c2ccd81f62b777327aa3696d652b5fb34c6f (commit)] * Non-executable stack support for several architectures [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=9abd312fda38fb2ba7b3dfe147ecbadf5cf8f57f (commit)] * Make sysfs configurable [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=7aa1fb8cb5813bfe0a33e49975f1cceb0740251f (commit)] * Reiserfs updates: data=ordered support, space preallocation, laptop mode support, logging rework, support for nested transactions [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=d4265dd282789d98d47f2febea1e60ff2a494b82 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=502c984ae4ddae1964c5aae6625e56516106c396 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=050ff9c100d0a9e9cb45f575783ca801d2ca42c3 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=3b0970c6144b4e5cb777d8b54926c1dbeb2e2b64 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=46d1f3648ddccf15793a057f7aef3e2ce5be4f0e (commit)] * Reiserfs and ext3 "commit=0 support": Restores commit interval to the default value [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=9a9b4f749ce975a57994207e7c0c5fe57148ef60 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=a4fe3fb94e6ea2e27d61abd8b141856f9d662fbd (commit)] * Ext3 journalled quotas [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=c69e3890a7a5d8c0587d958e618d303fad9d941a (commit)] * NFS v4: Implement server-side reboot recovery (mostly) [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=82107aa303e744b0e67f9daa44748c5abbf01d69 (commit)] * IPv6 support in SELinux [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=bdee92e07efd44da1dc87d47485c3f9ffaf0d976 (commit)] * The lightweight auditing framework [http://lwn.net/Articles/79326/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=4527a30f157fca45c102ea49a2fb34a4502264eb (commit)] * A mechanism which allows block drivers to respond to queries about the congestion state of their queues * "per-device unplugging patch" [http://lwn.net/Articles/75233/ (LWN article)] * CFQ scheduler [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=a7c3e7eee4fe04953547e408f8db0d615c4c1afe (commmit)] * External module support [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=eeb0e992ae01bc7c68628c20df6df0bdc1c7fd28 (commit)] * Generic snapshot support code for filesystems (taken from XFS) [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=9a6f9f9177e7403e661eb876500d57d139c0d034 (commit)] ===== 2.6.5 ===== * Released April 4, 2004 [http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.5 changelog] * Adaptative lazy readahead [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=87698a351b86822dabbd8c1a34c8a6d3e62e5a77 (commit)] * CDROMREADAUDIO dma support: support DMA for extrating audio [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=6cea839a9cb769215c2a3cf2056ff1b09ea08378 (commit)] * Netpoll infrastructure [http://lwn.net/Articles/75944 (LWN article)] * New "kref" reference counting mechanism [http://lwn.net/Articles/75920 (LWN article)] * AIO support for reiserfs [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=71b95e3ebaa658cdb361c78b613267776957995b (commit)] * Read-only support for UFS2 [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=e935d5b963465e88c09896056578d8ece381dc9a (commit)] * Display number of slab, mapped and pagetable pages in the sysrq-M output [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=53c3a164bde6946bb9ca65eb021b0cf96035b5d3 (commit)] ===== 2.6.4 ===== * Released March 11, 2004 [http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.4 changelog] * NGROUPS_MAX, which sets the maximum number of groups a user can belong to has increased the value to 65536 (was previously 32). This limit is also visible via the read-only /proc/sys/kernel/ngroups_max file. [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=60f095f22d9325fc88f128df204242f932c261dc (commit)] * HFS rewrite and HFS+ support [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=b20f09ad0ab9e8ef215b5c6e0ead9effc6b80aee (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=367a470ffe60c58c69ae8bf288cbb4615002729b (commit)] * Add SOCK_SEQPACKET for Unix domain sockets [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=32b46f96d41dfc67ad9d81c39487242ecc84be16 (commit)] * Support for the Intel "ia32e" arch * PPC64 iommu and TBL flush rework [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=aeb9bd1688d76c938acc4b17da8db33e8cbe1133 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=7fb3b50550a866099fc8ea34b8565f12a104e2fa (commit)] * UTF-8 tty mode [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=8026954da2b98a1a97af65d82c492816681c0faa (commit)] * Dynamic PTY allocation (up to a million PTY devices) * Sysfs support for SCSI tapes and bluetooth devices * ARC4 crypto module Support for large numbers of groups * Generic kernel thread infrastructure [http://lwn.net/Articles/65178/ (LWN article)] * Groundwork for the hotplug CPU code * ARC4 crypto module [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=d0119535d80f4f46d831fb48f1747e732c539c79 (commit)] * Add dm-crypto crypto module [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=f3abc91effde1fd547e6005f36c94313fe970dd2 (commit)] * Enable coredumps > 2 GB [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=0d274048bea986c7498a52ea5152d66833cd2cec (commit)] * Add -mregparm=3 config option [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=cef3796e3aa0003e818a64374f439d353c49d574 (commit)] ===== 2.6.3 ===== * Released February 18, 2004 [http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.3 changelog] * G5 support [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=7f13170c2069ff86a2a0bfc3a247ade8aefeb6aa (commit)] * Support up to 255 char columns in virtual terminals [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=f3706e57b8e26db88ddaa5b0558e5db545f2fed7 (commit)] * Set HZ to 1000 in PPC32 [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=eb6e9d736fa3e79f97ee19325c996f69079f276e (commit)] * Removal of the USB scanner code: moved support to userspace (libusb) * New DMA pool abstraction [http://lwn.net/Articles/69402/ (LWN article)] * "context mount" support for SELinux ===== 2.6.2 ===== * Released February 4, 2004 [http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.2 changelog] * RAID 6 implementation [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=8869ce42bfc6301d645eabb64eea343569be9575 (commit)] * One-shot support for epoll [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=b248eb341da327a418e3fdd55bcad209c3802892 (commit)] * Add support for m68knommu [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=ccc218ff4f93913018f735201586caa19dc022db (commit)] * Schedulers interactivity improvements [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=80605ac9c461beed318da1af7f0355c66d90f66c (commit)] * New Qlogic SCSI driver ===== 2.6.1 ===== * Released January 9, 2004 [http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.1 changelog] * Message Signaled Interrupt support - MSI [http://lwn.net/Articles/44135/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=805bdfd65d2a8866870d1813cd39d739d1e2942e (commit)] * Add 32bit a.out support for x86-64 [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=dabe6cb0fc24dd4d3ee5b51c99f551a883dc2d66 (commit)] * Add `gcc -Os' config option [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=4b8ca7b0c8fb01ba87f9f6fa23f287e683f06346 (commit)] * Extensible Firmware Interface (EFI) support. [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=556bd742f63bdc0d0fdbfb28f907e272ed61d370 (commit)] ===== 2.6.0 ===== * Released December 18, 2003 [http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.0 changelog] 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.2)>> |
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.2 was released on 7 July 2019.
Summary: This release includes Sound Open Firmware, a project that brings open source firmware to DSP audio devices; open firmware for many Intel products is also included. This release also improves the Pressure Stall Information resource monitoring to make it usable by Android; the mount API has been redesigned with new syscalls; the BFQ I/O scheduler has gained some performance improvements; a new CLONE_PIDFD flag lets clone(2) return pidfs usable by pidfd_send_signal(2); Ext4 has gained support for case-insensitive name lookups; there is also a new device mapper target that simulates a device that has failing sectors and/or read failures; open source drivers for the ARM Mali t4xx and newer 6xx/7xx have been added. As always, there are fixes for the latest CPU bug (MDS) and many other new drivers and improvements.
Contents
-
Coolest features
- Inclusion of Sound Open Firmware
- Improved Presure Stall Information for better resource monitoring
- New mount API
- Significant performance improvements in the BFQ I/O scheduler
- New GPU drivers for ARM Mali devices
- More CPU bug protection, and "mitigations" boot option
- Let clone(2) return pidfs
- Optional support for case-insensitive names in ext4
- Add freezer controller for cgroups v2
- Add device mapper dust target
- 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
- 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)
- Leds
- DMA engines
- Cryptography hardware acceleration
- PCI
- Thunderbolt
- Clock
- PHY ("physical layer" framework)
- EDAC (Error Detection And Correction)
- Various
- List of feature merges
- Other news sites
1. Coolest features
1.1. Inclusion of Sound Open Firmware
While many audio DSP devices have open source drivers, their firmware has remained closed and shipped as binary files. As a result, firmware issues have often been difficult to address. The Sound Open Firmware -SOF- project, backed by Intel and Google, has been created to improve this situation by providing a open source platform to create open source firmware for audio DSPs. Not only SOF will allow users to have open source firmware, it will allow them to personalize their own firmware, or even use the power of the DSP processors in their sound cards in imaginative ways. This release includes the SOF core, plus open source firmware from Intel for many of their mainstream products: Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake and IceLake
Recommended LWN article: The Sound Open Firmware project launches
Project site: https://www.sofproject.org
Instructions in the ALSA website: https://www.alsa-project.org/main/index.php/Firmware
1.2. Improved Presure Stall Information for better resource monitoring
Pressure stall information were added to Linux 4.20 as a way to quantify resource pressure in the system in a better way than the traditional load average. PSI aggregates and reports the overall wallclock time in which the tasks in a system (or cgroup) wait for cpu, io or memory.
This release lets users to configure sensitive thresholds and use poll() and friends to be notified when a certain pressure thresold is breached within a user-defined time window. With this mechanism, Android can monitor for, and ward off, mounting memory shortages before they cause problems for the user. For example, using memory stall, monitors in userspace like the low memory killer daemon (lmkd) can detect mounting pressure and kill less important processes before device becomes visibly sluggish. In memory stress testing psi memory monitors produce roughly 10x less false positives compared to vmpressure.
Recommended LWN article: Pressure stall monitors
1.3. New mount API
The mount(2) system call is in charge of mounting file systems. It does its job well, but as new mount functionality was added over the years, it had to be implemented on top of the existing interface, which was not designed for complex scenarios and has thus accumulated a lot of baggage (see this email for details). The current mount(2) interface is actually six or seven different interfaces rolled into one, and weird combinations of flags make it do different things beyond the original specification of the system call. It's not just aesthethics; it's not easy for applications and users to understand the errors returned, it is not geared for the specification of multiple sources such as overlayfs need, you can't mount a file system into another mount namespace, and it doesn't allow for other funcionality that have to be implemented with hacks such as shiftfs.
Linux developers decided to redesign the entire mount API in this release, which has resulted in the addition of six new syscalls: fsopen(2), fsconfig(2), fsmount(2), move_mount(2), fspick(2), and open_tree(2). These syscalls allow developers write code such as this:
fd = fsopen("nfs"); fsconfig(fd, FSCONFIG_SET_STRING, "option", "val", 0); fsconfig(fd, FSCONFIG_CMD_CREATE, NULL, NULL, 0); mfd = fsmount(fd, MS_NODEV); move_mount(mfd, "", AT_FDCWD, "/mnt", MOVE_MOUNT_F_EMPTY_PATH);
or reconfigure a superblock:
fd = fspick(AT_FDCWD, "/nfs/foo", FSPICK_NO_AUTOMOUNT); fsconfig(fd, FSCONFIG_SET_FLAG, "noac", NULL, 0); fsconfig(fd, FSCONFIG_CMD_RECONFIGURE, NULL, NULL, 0);
Recommended LWN article: Six (or seven) new system calls for filesystem mounting
1.4. Significant performance improvements in the BFQ I/O scheduler
Some performance tweaks to the BFQ I/O scheduler have been done, which have improved the application start-up times under load by up to 80%, drastically increased the performance and decreased the execution time. For more details, see the benchmarks or the following article:
Recommended LWN article: Improving the performance of the BFQ I/O scheduler
1.5. New GPU drivers for ARM Mali devices
This release has two exciting community drivers for ARM Mali accelerators. Since ARM has never been open source friendly on the GPU side of the house, the community has had to create open source drivers for the Mali GPUs. Lima covers the older t4xx and panfrost the newer 6xx/7xx series. Well done to all involved and hopefully this will help ARM
1.6. More CPU bug protection, and "mitigations" boot option
This release adds bug infrastructure to deal with the Microarchitectural Data Sampling (MDS) hardware vulnerability, which allows unprivileged speculative access to data which is available in various CPU internal buffers. This new set of misfeatures has the following variants: Microarchitectural Store Buffer Data Sampling (MSBDS, CVE-2018-12126), Microarchitectural Fill Buffer Data Sampling (MFBDS, CVE-2018-12130), Microarchitectural Load Port Data Sampling (MLPDS, CVE-2018-12127), Microarchitectural Data Sampling Uncacheable Memory (MDSUM, CVE-2019-11091). For more details see the documentation and admin guide
Also, in order to help users to deal with the ever increasing amount of CPU bugs across different architectures, the kernel boot option mitigations= has been added. It's a set of curated, arch-independent options (for now x86, PowerPC and s390), to make more easy to enable/disable protections regardless of what system they are running
1.7. Let clone(2) return pidfs
This release adds the CLONE_PIDFD flag to clone(2). This lets users to get pids at process creation time that are usable with the pidfd_send_signal(2) syscall. Due to the design of Unix, sending signals to processes or gathering /proc information is not always safe due to the possibility of PID reuse; pidfds let Linux avoid this problem, and this new clone(2) flag makes even easier to get pidfs, thus providing an easy way to signal and process PID metadata safely.
1.8. Optional support for case-insensitive names in ext4
This release implements the actual support for case-insensitive file name lookups in ext4, based on the feature bit and the encoding stored in the superblock. A filesystem that has the casefold feature set is able to configure directories with chattr +F (EXT4_CASEFOLD_FL) attribute, enabling lookups to succeed in that directory in a case-insensitive fashion, i.e: match a directory entry even if the name used by userspace is not a byte per byte match with the disk name, but is an equivalent case-insensitive version of the Unicode string.
The feature is configured as an inode attribute applied to directories and inherited by its children. This attribute can only be enabled on empty directories for filesystems that support the encoding feature, thus preventing collision of file names that only differ by case.
Recommended LWN article: Case-insensitive ext4
1.9. Add freezer controller for cgroups v2
Cgroup v1 implements the freezer controller, which provides an ability to stop the workload in a cgroup and temporarily free up some resources (cpu, io, network bandwidth and, potentially, memory) for some other tasks. Cgroup v2 lacked this functionality, until this release.
Unlike with the cgroup v1 version, there is no separate controller, which has to be turned on, the functionality is always available and is represented by cgroup.freeze and cgroup.events cgroup control files. Writing "1" to the cgroup.freeze file will cause freezing of the cgroup and all descendant cgroups and all their belonging processes will be stopped and will not run until the cgroup will be explicitly unfrozen. Freezing may take some time; when this action is completed, the "frozen" value in the cgroup.events control file will be updated to "1". There are other differences required to conform the cgroup v2 interface design principles.
1.10. Add device mapper dust target
This release adds a Device Mapper 'dust' target. This target simulates a device that has failing sectors and/or read failures, and adds the ability to enable the emulation of the read failures at an arbitrary time. It is, thus, aimed at storage developers and sysadmins that want to test their storage stack. At a given time, the user can send a message to the target to start failing read requests on specific blocks. When the failure behavior is enabled, reads of blocks configured "bad" will fail with EIO.
2. Core (various)
(FEATURED) Add mitigations= boot option. It's a set of curated, arch-independent options (for now x86, PowerPC and s390), to make more easy to enable/disable protections regardless of what system they are running commit, commit, commit, commit, commit
(FEATURED) clone(2): add CLONE_PIDFD. This lets users of clone(2) to get pids at process creation time that are usable with the pidfd_send_signal(2) syscall, thus providing an easy way to access without races to process metadata through /proc/<pid> commit, commit, commit, commit, commit
- io_uring
(FEATURED) pressure stall monitors: Presure stall monitors were added in Linux 4.20 as a way to quantify resource pressure in the system. This release lets users to configure sensitive latency thresholds and use poll() and friends to be notified when these thresolds are breached. With these patches applied, Android can monitor for, and ward off, mounting memory shortages before they cause problems for the user. For example, using memory stall monitors in userspace low memory killer daemon (lmkd) we can detect mounting pressure and kill less important processes before device becomes visibly sluggish commit, commit, commit, commit, commit, commit, commit
(FEATURED) Add new mount syscalls commit, commit, commit, commit, commit, commit, commit, commit, commit, commit,
(FEATURED) cgroups: implement freezer for cgroup v2. It provides similar functionality as v1 freezer, but the interface conforms to the cgroup v2 interface design principles, and it provides a better user experience: tasks can be killed, ptrace works, there is no separate controller, which has to be enabled, etc commit, commit, commit, commit, commit, commit, commit, commit, commit
cgroup: expose pressure stall information metrics on root cgroup commit
eventfd: To provide the way to find endpoints of an eventfd file, this patch adds "eventfd-id" field to /proc/PID/fdinfo of eventfd as identifier commit
gcov: clang support commit
kbuild: allow Kbuild to start from any directory commit
Cpu/hotplug: Create SMT sysfs interface for all arches, so user space has a consistent way to detect whether SMT is enabled commit
- locking
rwsem unification and simpler micro-optimizations to prepare for more intrusive (and more lucrative) scalability improvements in the future commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
static_key: improve rate limited labels commit, commit, commit
rcu: Allow rcu_nocbs=all to specify all CPUs commit
rcu: Avoid unnecessary softirq when system is idle commit
lockref: Limit number of cmpxchg loop retries to avoid excessive looping commit
task scheduler: Allow CPU0 to be nohz full commit, commit, commit, commit, commit
tty: Add NULL TTY driver that discards all writes. It can be chosen on the command line in the standard way, i.e. with console=ttynull commit
objtool: Teach objtool to validate the UACCESS (SMAP, PAN) rules merge
GDB scripts: Add a timer list command commit, add hlist utilities commit, add kernel config dumping command commit, add rb tree iterating utilities commit, initial clk support: lx-clk-summary commit
IPC/mqueue: optimize msg_get() commit
ktest: introduce grub2bls REBOOT_TYPE option commit
Allow all arches to enable CONFIG_OPTIMIZE_INLINING commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
All-arch unification of internal TLB flushing APIs commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Optionally allow to provide kernel headers with the kernel as an archive through proc (/proc/kheaders.tar.xz file) commit
Introduce the Counter subsystem for supporting counter devices. In the context of the Generic Counter interface, a counter is defined as a device that reports one or more "counts" based on the state changes of one or more "signals" as evaluated by a defined "count function" commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
panic: add a panic_print option to replay the dmesg in buffer during a panic, some of which they may have never seen due to the loglevel setting commit
3. File systems
- BTRFS
qgroups: last speed up in the series to address the slowness, there should be no overhead comparing balance with and without qgroups commit, commit, commit, commit, commit, commit, commit, commit, commit
Improve performance on fsync of files with multiple hardlinks commit
btrfs send tries harder to find ranges to clone commit
Better checks to catch RAM corruption on data before it gets written to disk commit, commit, commit, commit, commit, commit, commit, commit, commit
tree-checker: Allow error injection for tree-checker commit
- XFS
Introduce a new online health reporting infrastructure and ioctl for userspace to query a filesystem's metadata health status after online fsck checks the filesystem commit, commit, commit, commit, commit, commit, commit, commit
Enhances the online scrub and repair code to report their findings to the health tracking subsystem commit, commit, commit, commit, commit
Add online scrub for superblock counters. The online metadata checking code is feature complete with the addition of checks for the global fs counters, though it'll remain EXPERIMENTAL for now commit, commit, commit, commit, commit
- EXT4
- CEPH
- CIFS
- FUSE
- NFS
- ORANGEFS
Implement xattr cache commit
- OVERLAYFS
- UBIFS
Limit number of xattrs per inode commit
- AFS
4. Memory management
Heterogeneous memory node attributes: Platforms may provide multiple types of cpu attached system memory. The memory ranges for each type may have different characteristics that applications may wish to know about when considering what node they want their memory allocated from. This release provides the attributes from such systems that are useful for applications to know about, and readily usable with existing tools and libraries commit, commit, commit, commit, commit, commit, commit, commit, commit
Make mincore(2) more conservative, to avoid exposing information about pagecache / memory mapping state, even about memory not strictly belonging to the process executing the syscall, opening possibilities for sidechannel attacks commit
userfaultfd: Add a global sysctl vm.unprivileged_userfaultfd to control whether userfaultfd is allowed by unprivileged users commit
Randomize free memory. Randomization of the page allocator improves the average utilization of a direct-mapped memory-side-cache commit, commit, commit
Add FOLL_LONGTERM to GUP fast, which lets it be used in situations such as DAX commit, commit, commit, commit, commit, commit, commit
slab: remove /proc/slab_allocators commit
z3fold: support page migration commit
5. Block layer
Improve DM snapshot target's scalability by using finer grained locking commit, commit, commit, commit, commit, commit
Add ability for DM integrity to use a bitmap mode, that tracks regions where data and metadata are out of sync, instead of using a journal, for improved performance commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
(FEATURED) Add testing-only DM dust target which simulates a device that has failing sectors and/or read failures commit
(FEATURED) BFQ: performance improvements commit, commit, commit, commit, commit, commit
block: remove CONFIG_LBDAF commit
6. Tracing, perf and BPF
- perf
record: Allow compression of perf ring buffer with option -z, resulting in ~3-5x perf.data file size reduction on variety of tested workloads commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
stat: Add a 'percore' event qualifier, e.g.: -e cpu/event=0,umask=0x3,percore=1/ that sums up the event counts for both hardware threads in a core. It is possible to do that now with --per-core, but it's often useful to do this together with other metrics that are collected per hardware thread commit, commit, commit
perf list: Output tool events commit
record: Implement --mmap-flush=<number> option to specify the minimal number of bytes that is extracted from mmaped kernel buffer to store into a trace. The default option value is 1 byte what means every time trace writing thread finds some new data in the mmaped buffer the data is extracted, possibly compressed and written to a trace commit
scripts: exported-sql-viewer.py: Add context menu commit, add copy to clipboard commit
perf stat: Implement duration_time as a proper event commit
perf trace: Add 'string' event alias to select syscalls with string args commit
- BPF
kbuild: add ability to generate BTF type info for vmlinux and kernel modules. The intent is to record compact type information of all types used inside kernel, in order to enables BPF's compile-once-run-everywhere approach, in which tracing programs that are inspecting kernel's internal data can be compiled on a system running some kernel version, but would be possible to run on other kernel versions (and configurations) without recompilation, even if the layout of structs changed and/or some of the fields were added, removed, or renamed commit
Add global data support for BPF. The kernel has been extended to add proper infrastructure that allows for full .bss/.data/.rodata sections on BPF loader commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add a new program type BPF_PROG_TYPE_CGROUP_SYSCTL and attach type BPF_CGROUP_SYSCTL. BPF_CGROUP_SYSCTL hook is placed before calling to sysctl's proc_handler so that accesses (read/write) to sysctl can be controlled for specific cgroup and either allowed or denied, or traced commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
New set of arguments to bpf_attr for BPF_PROG_TEST_RUN: ctx_in/ctx_size_in - input context and ctx_out/ctx_size_out - output context commit, commit, commit,
Add BPF sk local storage. It attempts to make bpf's network programming more intuitive to do (together with memory and performance benefit) commit, commit, commit, commit, commit, commit, commit
Support variable offset stack access from helpers commit, commit
BPF tc tunneling: it allows for dynamic tunneling, choosing the tunnel destination and features on-demand commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Allow checking SYN cookies from XDP and tc cls act commit, commit, commit, commit, commit, commit, commit, commit
Extend bpf_skb_adjust_room growth to mark inner MAC header so that L2 encapsulation can be used for tc tunnels commit, commit, commit, commit
Improve verifier scalability commit, commit, commit, commit, commit, commit, commit, commit, commit
Add an opt-in interface for tracepoints to expose a writable context to BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE programs that are attached, while supporting read-only access from existing BPF_PROG_TYPE_RAW_TRACEPOINT programs, as well as from non-BPF-based tracepoints commit, commit, commit, commit, commit
Make bpf_skb_ecn_set_ce callable from BPF_PROG_TYPE_SCHED_ACT commit
Support BPF_PROG_QUERY for BPF_FLOW_DISSECTOR attach_type commit, commit
bpftool: Support sysctl hook commit
- tracing
Introduce a new ftrace file, tracing/error_log, for ftrace commands to log errors. This is useful for allowing more complex commands such as hist trigger and kprobe_event commands to point out specifically where something may have gone wrong without forcing them to resort to more ad hoc methods such as tacking error messages onto existing output files commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
tracing: Kernel access to Ftrace instances commit
7. Virtualization
- virtio
- KVM
hv_sock: Add support for delayed close commit
8. Cryptography
ecrdsa: add EC-RDSA (GOST 34.10) algorithm commit
simd: support wrapping AEAD algorithms commit
testmgr: add panic_on_fail module parameter commit
9. Security
security: Create "kernel hardening" config area commit
ntp: Audit NTP parameters adjustment commit
tomoyo: Add a kernel config option for fuzzing testing commit
tls: Add support of AES128-CCM based ciphers commit
Implement Clang's stack initialization commit
10. Networking
- TCP
IPv4: Enable support for IPv6 gateway with IPv4 routes commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- IPv6
Add icmp_echo_ignore_anycast ioctl for ICMPv6. It makes the kernel ignore all ICMP ECHO requests destined to anycast address commit
Add icmp_echo_ignore_multicast ioctl for ICMPv6. It makes the kernel ignore all ICMP ECHO requests destined to multicast address commit
Add rate limit mask for ICMPv6 messages commit
- batman-adv
Support binding vlan dev link state to vlan member bridge ports commit, commit, commit, commit, commit
Switch IP ID generator to siphash commit
ethtool: add support for Fast Link Down as new PHY tunable commit
- packet scheduler
Foo over UDP: Support binding FoU socket commit
- High-availability Seamless Redundancy
ipvs: allow tunneling with gue encapsulation commit
WiFi
- Netfilter
netlink strict validation commit, commit, commit, commit, commit
openvswitch: Add timeout support to ct action commit
socket: implement 64-bit timestamps commit
taprio: adds support for changing the running schedules during "runtime" commit, commit, commit, commit
- tipc
tun: Add ioctl TUNGETDEVNETNS cmd to allow obtaining real net ns of tun device commit
vlan: disable SIOCSHWTSTAMP in container commit
macvlan: disable SIOCSHWTSTAMP in container commit
Support ESP offload in combination with gso partial commit
- RDMA
- netdevsim
11. Architectures
11.1. ARM
New SoCs
- New boards
coresight: Support static funnel commit
Add PCI ATS support to Arm SMMUv3 commit, commit, commit, commit, commit, commit, commit, commit
perf: add a driver for the SMMUv3 PMU into the perf framework commit, commit, commit
11.2. ARM64
Introduces a DC CVADP instruction which cleans the data cache to the point of deep persistence commit, commit, commit, commit, commit, commit
Expose SVE2 features for userspace commit
Add system vulnerability sysfs entries commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- KVM
Implements support for allowing KVM guests to use the Arm Scalable Vector Extension (SVE) 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 ARMv8.3 pointer authentication for kvm guest commit, commit, commit, commit
perf: support for perf event modifiers :G and :H which allows for filtering of PMU events between host and guests when used with KVM commit, commit, commit, commit, commit, commit, commit, commit
perf vendor events: Add Cortex-A57 and Cortex-A72 events commit
11.3. X86
Introduce x86-64 IRQ/exception/debug stack guard pages to detect stack overflows immediately and deterministically 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) Add bug infrastructure to deal with the Microarchitectural Data Sampling (MDS) hardware vulnerability, which allows unprivileged speculative access to data which is available in various CPU internal buffers. This new set of misfeatures has the following variants: Microarchitectural Store Buffer Data Sampling (MSBDS, CVE-2018-12126), Microarchitectural Fill Buffer Data Sampling (MFBDS, CVE-2018-12130), Microarchitectural Load Port Data Sampling (MLPDS, CVE-2018-12127), Microarchitectural Data Sampling Uncacheable Memory (MDSUM, CVE-2019-11091) 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
Optimize when to load FPU registers: only when returning to userspace and not on every context switch (while the task remains in the kernel). By this optimisation we can avoid loading the registers if the task stays in kernel and does not return to userland, and make kernel_fpu_begin() cheaper 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
Sysfs interface to set the Performance and Energy Bias Hint (EPB) commit, commit
- platforms
chrome: Add CrOS USB PD logging driver commit
chrome: Add support for v1 of host sleep event commit
chrome: cros_ec: Add EC host command support using rpmsg commit
chrome: wilco_ec: Add h1_gpio status to debugfs commit
Add support for Basin Cove power button commit
asus-wmi: Add fn-lock mode switch support commit
mlx-platform: Add support for tachometer speed register commit
perf: Add Icelake support (kernel only, except Topdown) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
perf: Add Tremont core PMU support commit
perf: Add support for recording and printing XMM registers available, for instance, on Icelake commit
perf vendor events intel: Update Bonnell to V4 commit, update Broadwell events to v23 commit, update Broadwell-DE events to v7 commit, update BroadwellX events to v14 commit, update Goldmont to v13 commit, update GoldmontPlus to v1.01 commit, update Haswell events to v28 commit, update HaswellX events to v20 commit, update IvyBridge events to v21 commit, update IvyTown events to v20 commit, update JakeTown events to v20 commit, update KnightsLanding events to v9 commit, update SandyBridge events to v16 commit, update Silvermont to v14 commit, update Skylake events to v42 commit, update SkylakeX events to v1.12 commit, update metrics from TMAM 3.5 commit
- Intel trace hub
KVM: Implement HWCR support commit
KVM: Introduce a new guest mapping interface commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
hyper-v: Implement EOI assist optimization commit
Inject a PMI for KVM Guest when ToPA buffer is filled commit, commit
XEN: Add "xen_timer_slop" command line option commit
11.4. CSKY
ftrace: Add dynamic function tracer (include graph tracer) commit
Add page fault perf event support commit
Add perf callchain support commit
Add support for perf registers sampling commit
Support dynamic start physical address commit
Add support for libdw commit
Add support for perf unwind-libdw commit
11.5. MIPS
eBPF: Initial support for MIPS32 architecture commit
11.6. PARISC
Convert page table updates to use per-pagetable spinlocks which overall improves performance on SMP machines a lot commit
Add KGDB support commit
11.7. POWERPC
Support for Kernel Userspace Access/Execution Prevention (like SMAP/SMEP/PAN/PXN) on some 64-bit and 32-bit CPUs. This prevents the kernel from accidentally accessing userspace outside copy_to/from_user(), or ever executing userspace commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
KVM: Book3S HV: add XIVE native exploitation mode commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
32 bit: Add KASAN support commit
32 bit: A fast path entry for syscalls on 32-bit CPUs, for a 12-17% speedup in the null_syscall benchmark commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Warn if W+X pages found on boot commit
Show powerpc_security_features in debugfs commit
Add force enable of DAWR on P9 option commit
11.8. RISCV
11.9. S390
Add support for kernel address space layout randomization (KASLR) commit
Support relocatable kernel commit
Add support for kernel image signature verification commit
KVM: new guest facilities commit, commit, commit, commit, commit, commit, commit
KVM: Add halt_poll_max_steal to set the maximum percentage of steal time to allow polling commit
Add support for the CPU-Measurement Facility counter second version number 6 commit, commit
crypto: use TRNG for seeding/reseeding commit
ipl: Provide has_secure sysfs attribute commit
qeth: add TX multiqueue support for IQD devices commit
qeth: add TX multiqueue support for OSA devices commit
Protected virtualization guest support commit
Report new CPU capabilities commit
PCI: Add parameter to disable usage of MIO instructions commit
Add parameter to force floating irqs commit
Show statistics for MSI IRQs commit
vfio-ccw: support hsch/csch commit, commit, commit, commit, commit, commit
11.10. XTENSA
Add exclusive atomics support commit
11.11. ARC
HSDK platform updates commit, commit, commit, commit, commit
Kill applications trying to access kernel virtual space commit
12. Drivers
12.1. Graphics
- Userspace DRM API
Initial merge of timeline sync objects. Timeline syncobj gives user more flexibility and convenience to do sychronization commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Expose FB_DAMAGE_CLIPS to atomic aware userspace only commit
Add Colorspace connector property interface to program colorspace to sink devices. Modern sink devices support more than 1 type of colorspace like 601, 709, BT2020 etc. This helps to switch based on content type which is to be displayed commit, commit, commit
Enable P0xx (planar), Y2xx and Y4xx (packed) pixel formats commit, commit, commit, commit, commit, commit
fourcc: Add AFBC yuv fourccs for Mali commit, commit, commit, commit, commit, commit, commit, commit
- New drivers
- i915
Updated Icelake PCI IDs commit
Elkhartlake (Gen11) support commit, commit, commit, commit, commit, commit
gvt: Enable async flip on plane surface mmio writes, some 3D applications have significant performance improvement commit
Add support for Gen 11 pipe color features commit, commit, commit
Implement HDCP2.2 commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
DP MST property addtions commit, commit, commit, commit, commit, commit
- amdgpu
- Use HMM for userptr
vega20 experimental smu11 support merge
Add initial RAS (Reliability, Availability, Serviceability) support to amdgpu on supported boards. Features include SRAM and VRAM ECC, bad page tracking, and error containment commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
BACO (Bus Active, Chip Off) support for vega12 commit, commit, commit
NV12 planes support commit
colorspace properties for planes commit
Expose generic SDP message access interface commit
Expose support for DRM_FORMAT_RGB565 commit
Expose support for alpha blending on overlays commit
Add sysfs files for returning VRAM/GTT info2 commit
Enable XGMI mapping for peer device commit
Add sysfs entries for xgmi hive commit
amdkfd: Add missing Polaris10 ID commit
Add debugfs dpcd interface commit
Add debugfs entry for amdgpu_dm_visual_confirm commit
Generic SDP message access in debugfs commit
- panel
- msm
- meson
- malidp
- omapdrm
- nouveau
- rockchip
rk3066 hdmi support commit
- sun4i
DSI burst mode support commit
- v3d
v3d v4.2 support commit
- rcar-du
Display writeback support commit
- vc4
Add a debugfs entry to disable/enable the load tracker commit
- cirrus
Rewrite and modernize driver commit
backlight: lm3630a: Add firmware node support commit
Add library for shmem backed GEM objects commit
12.2. Storage
ahci: qoriq: add ls1028a platforms support commit
ahci: qoriq: add lx2160 platforms support commit
nvmet-tcp: implement C2HData SUCCESS optimization commit
- SCSI
mpt3sas: Load balance to improve performance and avoid soft lockups commit
qedf: Add driver state to 'driver_stats' debugfs node commit
qla2xxx: qla2xxx: Add support for ISP28XX (Gen7) adapter commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
smartpqi: add H3C controller IDs commit
target: Add device product id and revision configfs attributes commit
ufs-cdns: Add support for UFSHCI with M31 PHY commit
ufs-mediatek: Add UFS support for Mediatek SoC chips commit
12.3. Drivers in the Staging area
spi: mt7621: Move SPI driver out of staging commit
iio: ad7780: moving ad7780 out of staging commit
erofs: support IO read error injection commit
iio: ad7780: add gain & filter gpio support commit
most: enable configfs support commit
Add Fieldbus Device subsystem commit
fieldbus: anybus-s: support HMS Anybus-S bus commit
fieldbus: anybus-s: support the Arcx anybus controller commit
fieldbus: support HMS Profinet IRT industrial controller commit
kpc2000: add initial set of Daktronics drivers commit
kpc2000: Add DMA driver commit
media: cedrus: Add support for H6 commit
media: zoran: remove deprecated driver commit
m57621-mmc: delete driver from the tree commit
Remove mt7621-eth commit
rtlwifi: delete the staging driver commit
12.4. Networking
- Bluetooth
hfi1: Add debugfs to control expansion ROM write protect commit
Add the Elastic Fabric Adapter (EFA) driver commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
ipoib: Allow user space differentiate between valid dev_port commit
Allow FDB, RAW flows and DEVX on representors together with small fixes commit, commit, commit, commit, commit, commit
aquantia: Implement hwmon api for chip temperature commit, commit
bnx2x: Add support for detection of P2P event packets commit
- bnxt_en
cxgb4/cxgb4vf: Display advertised FEC in ethtool commit
dpaa2-eth: Add flow steering support without masking commit
- Distributed switch architecture
enetc: Add missing link state info for ethtool commit
hns3: add some DFX info for HNS3 driver commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- i40e
- ice
- igc
- iwlwifi
Add support for 6-7 GHz channels commit
dbg: add DRAM monitor support for AX210 device family commit
dbg_ini: add lmac and umac error tables dumping support commit
dbg_ini: add periodic trigger support commit
for AX210 device support radio GF4 commit
mvm: enable HT/VHT IBSS commit
mvm: support multiple BSSID commit
mvm: support v2 of the WoWLAN patterns command commit
- mlx5
- mlx5e
Add the Support for VLAN modify action and replaces TC VLAN pop and push actions with VLAN modify commit, commit, commit
Offload TC e-switch rules with egress/ingress VLAN devices commit, commit
Add Geneve tunnel stateless offload support commit
XDP, Inline small packets into the TX MPWQE in XDP xmit flow commit
ethtool, Add support for EEPROM high pages query commit
- mlxsw
- mt76
mvneta: Add 2500BaseT support commit
- mvpp2
mwifiex: add support for SD8987 chipset commit
- nfp
- phy
Move Omega PHY entry to Cygnus PHY driver commit
Add amlogic g12a mdio mux support commit
Add support for reset-controller commit
aquantia: add SGMII statistics commit
aquantia: add downshift support commit
marvell: add PHY tunable fast link down support for 88E1540 commit
meson-gxl: add g12a support commit
mscc: add support for VSC8514 PHY commit
- qtnfmac
rsi: add new device model for 9116 commit
rt2x00: add RT3883 support commit
rtw88: new Realtek 802.11ac driver commit
tg3: allow ethtool -p to work for NICs in down state commit
12.5. Audio
aloop: Support S24 sample formats commit
firewire-motu: add support MOTU 8pre !FireWire commit
hda/intel: add !CometLake PCI IDs commit
hda/realtek: Support low power consumption for ALC256 commit and ALC295 commit
oxfw: allow PCM capture for Stanton SCS.1m commit
- ALSA System on Chip
(FEATURED) Add support for Sound Open Firmware for the common DSP framework commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Sound Open Firmware (SOF) - Intel support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Intel: add sof-rt5682 machine driver commit
Intel: common: add Geminilake Realtek+Maxim machine driver entry commit
Intel: skl_hda_dsp_generic: add DMIC support commit
Mediatek: MT8183: Add machine driver with DA7219 commit
Mediatek: MT8183: Add machine driver with TS3A227 commit
Mediatek: MT8183: change supported formats of DL2 and UL1 commit
cs42l51: add reset, regulators, master mode, power management, adc volume control commit, commit, commit, commit, commit, commit
es8316: Add support for inverted jack detect commit
fsl: Add NXP AUDMIX device and machine drivers commit, commit
lochnagar: Add driver to support Lochnagar 2 sound card commit
mchp-i2s-mcc: add driver for I2SC Multi-Channel Controller commit
rt5651: Add support for active-high jack detect commit
rt5677-spi: Add ACPI ID commit
- sprd
- tlv320aic31xx
wm_adsp: Add support for new Halo core DSPs commit
12.6. Tablets, touch screens, keyboards, mouses
Add KEY_KBD_LAYOUT_NEXT, a key to cycle through a set of keyboard layouts commit, commit
Add a driver for GPIO controllable vibrators commit
Add support for Azoteq IQS550/572/525 commit
goodix: add GT5663 CTP support commit
qt1050: add Microchip AT42QT1050 support commit
sun4i-a10-lradc-keys: add support for A83T commit
max77650: Add onkey support commit
- HID
Add driver for U2F Zero built-in LED and RNG commit
intel-ish-hid: Add Comet Lake PCI device ID commit
intel-ish-hid: ISH firmware loader client driver commit
logitech: Handling of non DJ receivers in hid-logitech-dj 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
logitech-dj: add support for the Logitech MX5500's Bluetooth Mini-Receiver commit
logitech-hidpp: add support for the MX5500 keyboard commit
logitech-hidpp: Add support for the S510 remote control commit
macally: Add support for Macally ikey keyboard commit
12.7. TV tuners, webcams, video capturers
Media Device Allocator internal API, which allows multiple drivers share a media device. It solves a very common use-case for media devices where one physical device (an USB stick) provides both audio and video commit, commit, commit, commit, commit
v4l: add I / P frame min max QP definitions commit
user api: Add MEDIA_BUS_FMT_BGR888_3X8 media bus format commit
vicodec: Add support for stateless decoder commit
atmel-isc: Add support for BT656 with CRC decoding commit
dvb: Add support for the Avermedia TD310 commit
platform: meson: Add Amlogic Meson G12A AO CEC Controller driver commit
rcar-csi2: Enable support for r8a774a1 commit
rcar-vin: Enable support for r8a774a1 commit
st-mipid02: MIPID02 CSI-2 to PARALLEL bridge driver commit
12.8. Universal Serial Bus
usb/hcd: Send a uevent signaling that the host controller had died commit
xhci: add Immediate Data Transfer support, which allow the HCD to copy small chunks of data (up to 8bytes) directly into its output transfer TRBs. This avoids the somewhat expensive DMA mappings that are performed by default on most URBs submissions commit
gadget: f_ncm: Add OS descriptor support commit
dwc3: Add Amlogic G12A DWC3 glue commit
host: xhci-tegra: Add Tegra186 XUSB support commit
mtu3: add debugfs interface files commit
mtu3: supports new QMU format commit
typec: Add driver for NVIDIA Alt Modes commit
typec: ucsi: Support for DisplayPort alt mode commit
typec: ucsi: ccg: add firmware flashing support commit
usb-storage: Add new ID to ums-realtek commit
serial: pl2303: add Allied Telesis VT-Kit3 commit
serial: option: add Telit 0x1260 and 0x1261 compositions commit
serial: option: add support for Simcom SIM7500/SIM7600 RNDIS mode commit
12.9. Serial Peripheral Interface (SPI)
bcm2835aux: add driver stats to debugfs commit
dw: Add support for an optional interface clock commit
imx: add module parameter to control DMA use commit
lpspi: Add i.MX8 boards support for lpspi commit
lpspi: add dma mode support commit
lpspi: enable runtime pm for lpspi commit
pxa2xx: Add support for Intel Comet Lake commit
spi-mem: Add support for Zynq QSPI controller commit
tegra114: add 3 wire transfer mode support commit
tegra114: add dual mode support commit
12.10. Watchdog
bd70528: Initial support for ROHM BD70528 watchdog block commit
imx_sc: Add i.MX system controller watchdog support commit
12.11. Serial
serial: f81232: add high baud rate support commit
serial: Add Milbeaut serial control commit
serial: sprd: Add DMA mode support commit
12.12. ACPI, EFI, cpufreq, thermal, Power Management
ACPI/IORT: Add support for the SMMU Performance Monitor Counter Group information from ACPI commit
cpufreq: qoriq: Add ls1028a chip support commit
cpufreq: qoriq: add support for lx2160a commit
thermal: Add some functionalities for Tegra soctherm commit, commit, commit, commit, commit, commit, commit, commit
thermal: tsens: Add generic support for TSENS v1 IP commit
thermal: Introduce Amazon's Annapurna Labs Thermal Driver commit
thermal: rockchip: Support the PX30 SoC in thermal driver commit
12.13. Real Time Clock (RTC)
Add ASPEED RTC driver commit
ds1672: remove sysfs debug interface commit
pcf85063: add alarm, nvram, offset correction and microcrystal rv8263 support commit, commit, commit, commit, commit
12.14. Voltage, current regulators, power capping, power supply
- Power
Add over-current health state commit
Add standard, adaptive and custom charge types commit
Add new properties for start/end charge threshold commit, commit
UCS1002 Programmable USB Port Power Controller commit
Ingenic JZ47xx Battery Fuel Gauge commit
AXP20x USB Power: Add AXP813 support commit
AT91 poweroff: Add SAM9X60 support commit
OLPC battery: Add XO-1.5 and XO-1.75 support commit
gpio-charger: Add support for charger status commit
max77650: Add support for battery charger commit
regulator: Add support for stm32 power regulators commit
12.15. Pin Controllers (pinctrl)
lochnagar: Add support for the Cirrus Logic Lochnagar commit
mediatek: Add MT8516 Pinctrl driver commit
Add pinctrl support for BM1880 SoC commit
Add STMFX GPIO expander Pinctrl/GPIO driver commit
12.16. Multi Media Card (MMC)
12.17. Memory Technology Devices (MTD)
afs: add v2 partition parsing commit
rawnand: atmel: add sam9x60 nand controller support commit
rawnand: ingenic: Add support for the JZ4725B commit
rawnand: ingenic: Add support for the JZ4740 commit
spi-nor: intel-spi: Add support for Intel Comet Lake SPI serial flash commit
12.18. Industrial I/O (iio)
accel: add support to LIS2DE12 commit
accel: kxcjk1013: Add KIOX0008 ACPI Hardware-ID commit
adc: Add driver for the TI ADS8344 A/DC chips commit
adc: ad7616: Add support for AD7616 ADC commit
adc: lpc32xx: Add scale feature commit
adc: stm32-dfsdm: add support for buffer modes commit and scan mode commit
counter: stm32-lptimer: Add power management support commit
gyro: add core driver for fxas21002c commit
gyro: fxas21002c: add i2c driver commit and spi driver commit
imu: adis16480: Add support for ADIS1649x family of devices commit
imu: adis16480: Add support for external clock commit
imu: st_lsm6dsx: add support to LSM6DSOX commit
imu: st_lsm6dsx: add support to LSM6DSR commit
light: vcnl4000 add support for the VCNL4040 proximity and light sensor commit
temperature: Add MAX31856 thermocouple support commit
srf04.c: add maxbotix ultrasonic sensors commit
12.19. Multi Function Devices (MFD)
Add ST Multi-Function eXpander (STMFX) core driver commit
Add new driver for MAX77650 PMIC commit
altera-sysmgr: Add SOCFPGA System Manager commit
axp20x: Add USB power supply mfd cell to AXP803 commit and AXP813 commit
cros_ec: Add host_sleep_event_v1 command commit
intel-lpss: Add Intel Comet Lake PCI IDs commit
max77620: Support Maxim 77663 commit
sec: Add support for the RTC on S2MPA01 commit
syscon: Add optional clock support commit
12.20. Pulse-Width Modulation (PWM)
pwm: Add i.MX TPM PWM driver support commit
12.21. Inter-Integrated Circuit (I2C)
i2c-piix4: Add Hygon Dhyana SMBus support commit
Add drivers for the AMD PCIe MP2 I2C controller commit
at91: added slave mode support commit
designware: Add support for an interface clock commit
iproc: Add slave mode support commit
iproc: add NIC I2C support commit
iproc: add polling support commit
mediatek: Add i2c support for MediaTek MT8183 commit
12.22. Hardware monitoring (hwmon)
Add support for samples attributes to ABI commit
ina3221: Add averaging mode support commit and voltage conversion time settings commit
lm75: Add support for TMP75B commit
max6650: add thermal cooling device capability commit
mlxreg-fan: Add support for fan capability registers commit
pmbus/ir38064: Add driver for Infineon IR38064 Voltage Regulator commit
pmbus/isl68137: Add driver for Intersil ISL68137 PWM Controller commit
pwm-fan: Add RPM support via external interrupt commit
lochnagar: Add Lochnagar 2 hardware monitoring driver commit
12.23. General Purpose I/O (gpio)
Add driver for Mellanox BlueField GPIO controller commit
ixp4xx: Add driver for the IXP4xx GPIO commit
max77650: Add GPIO support commit
12.24. Leds
12.25. DMA engines
12.26. Cryptography hardware acceleration
cavium/nitrox - Added rfc4106(gcm(aes)) cipher support commit
ccp: introduce SEV_GET_ID2 command commit
ccree: add CID and PID support commit
ccree: add SM4 protected keys support commit
ccree: add support for sec disabled mode commit
mxc-scc: Remove broken driver commit
12.27. PCI
al: Add Amazon Annapurna Labs PCIe host controller driver commit
keystone: Add support for PCIe EP commit and PCIe RC in AM654x Platforms commit
12.28. Thunderbolt
Bring same kind of functionality for older Apple systems than we have in PCs. Software connection manager is used on Apple hardware with Light Ridge, Cactus Ridge or Falcon Ridge controllers to create PCIe tunnels when a Thunderbolt device is connected. Currently only one PCIe tunnel is supported. On newer Alpine Ridge based Apple systems the driver starts the firmware which then takes care creating tunnels. These patches improve the connection manager to bring full PCIe daisy chains (up to 6 devices), Display Port tunneling and P2P networking. It also adds support for Titan Ridge based Apple systems 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 support for DMA tunnels commit
Add support for Display Port tunnels commit
Add support for XDomain connections commit
Add XDomain UUID exchange support commit
12.29. Clock
analogbits: add Wide-Range PLL library commit
at91: add support for the sam9x60 clocks handled by the PMC commit, commit, commit, commit
imx: pllv4: add fractional-N pll support commit
lochnagar: Add support for the Cirrus Logic Lochnagar commit
mediatek: Add MT8183 clock support commit
mediatek: add clock driver for MT8516 commit
meson: axg-audio: add g12a support commit
qcom: Add QCS404 TuringCC commit
renesas: r8a774c0: Add Z2 clock commit
sifive: add a driver for the SiFive FU540 PRCI IP block commit
stm32: Introduce clocks of STM32F769 board commit
milbeaut: Add Milbeaut M10V clock controller commit
clocksource/drivers/ixp4xx: Add driver commit
12.30. PHY ("physical layer" framework)
Add usb phy support for hi3660 Soc of Hisilicon commit
amlogic: Add Amlogic G12A USB3 + PCIE Combo PHY Driver commit
amlogic: add Amlogic G12A USB2 PHY Driver commit
qcom-qmp: Add msm8998 PCIe QMP PHY support commit
rcar-gen3-usb2: Add support for r8a77470 commit
renesas: phy-rcar-gen2: Add support for r8a77470 commit
sr-usb: Add Stingray USB PHY driver commit
tegra: xusb: Add Tegra186 support commit, add support for power supplies commit
ti: Add a new SERDES driver for TI's AM654x SoC commit
12.31. EDAC (Error Detection And Correction)
12.32. Various
extcon: intel-cht-wc: Enable external charger commit
fpga manager: Adding FPGA Manager support for Xilinx zynqmp commit
- habanalabs
mailbox: Add support for Armada 37xx rWTM mailbox commit
mei: expose device state in sysfs commit
mtip32xx: remove trim support commit
nvmem: Add driver for STM32 factory-programmed read only mem commit
nvmem: imx-ocotp: add support for imx8mq commit
nvmem: stm32: add support for STM32MP15 BSEC to control OTP data commit
of: address: Add support for the parent DMA bus commit
platform/mellanox: Add !TmFifo driver for Mellanox BlueField Soc commit
pps: pps-gpio PPS ECHO implementation commit
soc: imx: Add generic i.MX8 SoC driver commit
soc: ti: Add MSI domain bus support for Interrupt Aggregator commit
irqchip/ti-sci-inta: Add msi domain support commit
irqchip/ti-sci-inta: Add support for Interrupt Aggregator driver commit
irqchip/ti-sci-intr: Add support for Interrupt Router driver commit
irqchip: Add driver for IXP4xx commit
tty: rocket: Remove RCPK_GET_STRUCT ioctl commit and deprecate the rp_ioctl commit
13. List of feature merges
14. Other news sites
LWN's merge summary part 1, part 2, Statistics from the 5.2 kernel — and before
Phoronix Linux 5.2 feature overview