67705
Comment:
|
880
Linux 5.6, better late than never
|
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!''' * 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)] * 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)] * 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)] * 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)] * 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)] * 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)] * 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)] |
You can discuss the latest Linux kernel changes on the [[http://forum.kernelnewbies.org/list.php?4|New Linux Kernel Features Forum]]. |
Line 34: | 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.6)>> |
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.6 has been released on Sun, 29 Mar 2020.
Summary: This release adds Wireguard, an fast and secure VPN design that aims to replace other VPNs; initial support for USB 4; support for time namespaces; asynchronous SSD trimming in Btrfs; initial merge of the Multipath TCP support; support for VirtualBox guest shared folders; a simple file system to expose the zones of zoned storage devices as files; boot-time tracing, which lets to trace the boot-time process with all the features of ftrace; and bootconfig, created to configure boot-time tracing, which lets to extend the command line in a file attached to initrds. As always, there are many other new drivers and improvements.
Contents
-
Prominent features
- WireGuard, a faster, simpler, secure VPN
- Initial USB 4 support
- Time Namespaces
- Btrfs asynchronous SSD trimming
- Initial support for MultiPath TCP
- Support for VirtualBox guest shared folders
- Zonefs, a file system for zoned storage devices
- A new pidfd syscall, pidfd_getfd(2)
- Extra Boot Config, for more complex boot configuration, and Boot tracing
- DMA-BUF Heaps, a replacement for Android ION
- Core (various)
- File systems
- Memory management
- Block layer
- Tracing, perf and BPF
- Virtualization
- Power management
- Cryptography
- Security
- Networking
- Architectures
-
Drivers
- Graphics
- Power Management
- 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
- Device Voltage and Frequency Scaling
- Voltage, current regulators, power capping, power supply
- Real Time Clock (RTC)
- Pin Controllers (pinctrl)
- Multi Media Card (MMC)
- Memory Technology Devices (MTD)
- Industrial I/O (iio)
- Multi Function Devices (MFD)
- Pulse-Width Modulation (PWM)
- Inter-Integrated Circuit (I2C + I3C)
- Hardware monitoring (hwmon)
- General Purpose I/O (gpio)
- Leds
- DMA engines
- Hardware Random Number Generator (hwrng)
- Cryptography hardware acceleration
- PCI
- Thunderbolt
- Clock
- PHY ("physical layer" framework)
- Various
- List of Pull Requests
- Other news sites
1. Prominent features
1.1. WireGuard, a faster, simpler, secure VPN
WireGuard is a layer 3 secure networking tunnel. It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache, and it intends to be considerably more performant than OpenVPN. Extensive documentation and description of the protocol and considerations, along with formal proofs of the cryptography, are available at wireguard.com
WireGuard aims to be as easy to configure and deploy as SSH. A VPN connection is made simply by exchanging very simple public keys – exactly like exchanging SSH keys – and all the rest is transparently handled by WireGuard. It is even capable of roaming between IP addresses. There is no need to manage connections, be concerned about state, manage daemons, or worry about what's under the hood. WireGuard presents an extremely basic yet powerful interface.
WireGuard uses state-of-the-art cryptography, like the Noise protocol framework, Curve25519, ChaCha20, !Poly1305, BLAKE2, SipHash24, HKDF, and secure trusted constructions. It makes conservative and reasonable choices and has been reviewed by cryptographers.
A combination of extremely high-speed cryptographic primitives and the fact that WireGuard lives inside the Linux kernel means that secure networking can be very high-speed. It is suitable for both small embedded devices like smartphones and fully loaded backbone routers.
Project site: wireguard.com
Technical whitepaper: wireguard.pdf
Recommended LWN articles: Virtual private networks with WireGuard, Whither WireGuard?, WireGuard and the crypto API
1.2. Initial USB 4 support
USB4 is a new version of the USB standard. Rather than an evolution of previous versions, this fourth version is pretty much the Thunderbolt 3 protocol, with a few changes. It is compatible with Thunderbolt 3, and backwards compatible with USB 3.2 and USB 2.0.
Linux already supported Thunderbolt 3; this release modifies the Thunderbolt stack to add initial Linux support for USB 4, at the same level as it had for Thunderbolt 3 devices, and support for USB 3.x tunnels.
1.3. Time Namespaces
This release adds another per-process namespace to kernel: a time namespace. This namespace is required mainly in the context of checkpoint/restore functionality, where monotonic and boottime clocks, widely used to measure time slices and set timers, have to be guaranteed that they never go backwards when a container is migrated to another machine. A time namespace can provide the correct behavior by having per-namespace offsets for those clocks, and it can also be useful for developer to test different time ranges without needing to reboot. As other namespaces, a new time namespace can be used by issuing a unshare(CLONE_NEWTIME) system call, or other namespace related system calls such as clone3() or setns().
Recommended LWN article: Time namespaces
1.4. Btrfs asynchronous SSD trimming
Solid-State storage drives benefit from being told when a disk block goes unused, for performance and wear-leveling reasons. This operation, called discard or trim, is done automatically by Btrfs: When a file is deleted, Btrfs notifies the drive that the blocks which belonged to the file are no longer being used. However, these notifications were done sychronously: the trim notifications were sent before ending the delete operation, which harms performance.
In this release, these notifications will be sent asynchronously. The actual discard IO requests have been moved out of transaction commit to a worker thread, improving commit latency.
1.5. Initial support for MultiPath TCP
MultiPath TCP (MPTCP) is a mechanism that allows to use multiple network links for a single TCP connection. For example, with MPTCP a phone could use both the WiFi and the 3G links for a single connection. This makes possible for the phone user to use the available bandwith in both links, or get disconnected from the WiFi network and keep using the 3G connection, without the connection being closed. MPTCP is also used in data centers, for performance and reliability reasons.
MPTCP is not a new technology, it has been available for a long time, and a Linux implementation has existed for over a decade, but it's only now that is getting upstreamed. In this release, only a part of the initial work is being introduced: MPTCP connection establishment, writing & reading MPTCP options on data packets, a sysctl to allow MPTCP per-namespace, and self tests. This is sufficient to establish and maintain a connection with a MPTCP peer, but will not yet allow or initiate establishment of additional MPTCP subflows. Other features will be introduced in the next versions.
Project page: www.multipath-tcp.org
Recommended LWN article: Upstreaming multipath TCP
1.6. Support for VirtualBox guest shared folders
VirtualBox hosts can share folders with guests, this release adds a new file system, vboxsf (for VirtualBox Shared Folder), which implements the Linux-guest side of this, allowing folders exported by the host to be mounted under Linux.
Note that this is a Virtualbox-specific solution, a more generic approach can be found in the form of virtio-fs
1.7. Zonefs, a file system for zoned storage devices
Zoned storage devices are divided into zones. Zones may have different types: Conventional zones, which have no access constraints; and Sequential zones, where reads can be random but must be written sequentially, and must be erased with a special command (zone reset) before rewriting.
This release adds zonefs, a very simple file system exposing zones of a zoned block device as files. Unlike a regular file system with zoned block device support, zonefs does not hide the sequential write constraint of zoned block devices to the user. The goal of zonefs is to simplify the implementation of zoned block device support in applications by replacing raw block device file accesses with a richer file API, avoiding relying on direct block device file ioctls which may be more obscure to developers.
Recommended LWN article: Accessing zoned block devices with zonefs
1.8. A new pidfd syscall, pidfd_getfd(2)
This release adds pidfd_getfd(2), another system call of the pidfd family, designed for safe PID handling. This syscall allows for the retrieval of file descriptors from other processes, based on their pidfd. This is possible using ptrace, and injection of parasitic code to inject code which leverages SCM_RIGHTS to move file descriptors between a tracee and a tracer. Unfortunately, ptrace comes with a high cost of requiring the process to be stopped, and breaks debuggers. This does not require stopping the process under manipulation.
One reason to use this is to allow sandboxers to take actions on file descriptors on the behalf of another process. For example, this can be combined with seccomp-bpf's user notification to do on-demand fd extraction and take privileged actions. One such privileged action is binding a socket to a privileged port.
Recommended LWN article: Grabbing file descriptors with pidfd_getfd()
1.9. Extra Boot Config, for more complex boot configuration, and Boot tracing
Extra boot config allows admin to pass a tree-structured key-value list when booting up the kernel. It allows to expand the kernel command line in an efficient way, by appending additional boot configuration to a initrd file with a new tool, found at tools/bootconfig. This functionality has been implemented mainly for the use of boot tracing, which has also been added in this release.
With boot-time tracing is possible now to trace the boot-time process including device initialization with full features of ftrace including per-event filter and actions, histograms, kprobe-events and synthetic-events, and trace instances. This funcionality requires very verbose configuration, and the kernel command line is not enough, which is the reason behind the creation of the bootconfig functionality.
Bootconfig documentation: admin-guide/bootconfig.html
Boot-time tracing: trace/boottime-trace.html
1.10. DMA-BUF Heaps, a replacement for Android ION
This release adds dma-buf heaps, a framework which allows a unified userspace interface for dma-buf exporters, allowing userland to allocate specific types of memory for use in dma-buf sharing. Each heap is given its own device node, which a user can allocate a dma-buf fd from using the DMA_HEAP_IOC_ALLOC. This feature is an evoluton of the Android ION implementation, and the expectation is that people will eventually migrate to it.
Recommended LWN article: Destaging ION
2. Core (various)
(FEATURED) Introduce Time Namespaces, primarily to facilitate container migration 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
A mechanism to shield isolated tasks from managed interrupts: When the generated affinity mask of an interrupt spaws both housekeeping and isolated CPUs the interrupt could be routed to an isolated CPU which would then be disturbed by I/O submitted by a housekeeping CPU. A new sub-parameter managed_irq for the boot option isolcpus and the corresponding logic in the interrupt affinity selection code has been added, this mechanism ensures that as long as one housekeeping CPU is online in the assigned affinity mask the interrupt is routed to a housekeeping CPU commit
- io_uring
Support for fallocate(2), openat(2), and close(2) commit, commit, commit, commit, commit, commit
Add non-vectored read(2)/write(2) commands commit and allow current file position offset reads/writes commit
Add support for epoll manipulation through io_uring, in particular epoll_ctl(2) commit, commit, commit
Support for madvise(2) and fadvise(2) commit, commit, commit
Add support for send(2) and recv(2) commit
Faster ring quiesce for fileset updates commit
The application currently has no way of knowing if a given opcode is supported or not without having to try and issue one and see if we get -EINVAL or not. Add IORING_REGISTER_PROBE which fills in a structure with info on what it supported or not commit
Add support for max-sized clamping. Some applications like to start small in terms of ring size, and then ramp up as needed. This is a bit tricky to do currently, since we don't advertise the max ring size. This release adds IORING_SETUP_CLAMP. If set, and the values for SQ or CQ ring size exceed what we support, then clamp them at the max values instead of returning -EINVAL commit
io_uring defaulted to always doing inline submissions, if at all possible. But for larger copies, even if the data is fully cached, that can take a long time. Add an IOSQE_ASYNC flag that the application can set on the SQE - if set, the kernel will ensure that we always go async for those kinds of requests commit, commit
Support for io-wq backend sharing between "sibling" rings commit, commit
Add IORING_REGISTER_EVENTFD_ASYNC, which works just like IORING_REGISTER_EVENTFD, except it only triggers eventfd notifications for events that happen from async completions (IRQ, or io-wq worker completions). Any completions inline from the submission itself will not trigger notifications commit
Improve poll completion performance commit
(FEATURED) Extra Boot Config: Extra boot config allows admin to pass a tree-structured key-value list when booting up the kernel. This expands the kernel command line in an efficient way. Each key is described as a dot-jointed-words. And user can write the key-words in tree style commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
kunit: support building core/tests as modules commit, commit, commit, commit, commit, commit
open: introduce openat2(2) syscall, as a more robust version of the original openat(2) along with a few extensions that allow for safer path resolution commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
(FEATURED) Add a new pidfd syscall, pidfd_getfd(2). It introduces a mechanism to get file descriptors from other processes via pidfd. Although this can be achieved using SCM_RIGHTS, and parasitic code injection, this offers a more straightforward mechanism, with less overhead and complexity commit, commit, commit, commit
- Task scheduler
pipe: use exclusive waits when reading or writing to avoid a nasty thundering herd problem when there are lots of readers waiting for data on a pipe commit
- Build
- Documentation:
3. File systems
- VBOXSF
(FEATURED) Add VirtualBox guest shared folder (vboxfs) support. It allows folders exported by the VirtualBox host to be mounted under Linux commit
- ZONEFS
- BTRFS
(FEATURED) Asynchronous discard support, enabled with mount option discard=async. Freed extents are not discarded immediatelly, but grouped together and trimmed later by a separate worker thread, improving commit latency. IO rate and request size can be tuned by sysfs files commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Export device state info in sysfs, eg. missing, writeable commit, commit, commit
integrity checking: check leaf chunk item size, cross check against number of stripes commit and verify location key for DIR_ITEM/DIR_INDEX commit
- CIFS
Optimize opendir and save one roundtrip commit, commit, commit, commit
Add extended attribute "system.cifs_ntsd" (and alias "system.smb3_ntsd") to allow for setting owner and DACL in the security descriptor. This is in addition to the existing "system.cifs_acl" and "system.smb3_acl" attributes that allow for setting DACL only. Add support for setting creation time and dos attributes commit
Add support for fallocate mode 0 for non-sparse files commit
Add SMB3 change notification support commit
- EXT4
Scale performance of direct IO mixed read/write workload commit, commit, commit
Optimize ext4 DIO overwrites commit
Export information about first/last errors via /sys/fs/ext4/<dev> commit
Simulate various I/O and checksum errors when reading metadata, for debugging commit, commit
Allow ZERO_RANGE on encrypted files commit
- NFS
Add softreval mount option to let clients use cache if server goes down commit
Support (client and server) for NFSv4.2 "inter" Server-Side Copy, ie. copy offload between different NFS servers. To use it, client and both servers must have support, the target server must be able to access the source server over NFSv4.2, and the target server must have the inter_copy_offload_enable module parameter set commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Allow to compile without UDP protocol support commit
- FSCRYPT
- FS-VERITY
- F2FS
- ADFS
- UBIFS
Add support for FS_ENCRYPT_FL commit
4. Memory management
(FEATURED) DMA-BUF Heaps commit, commit, commit, commit, commit
memcg: Port hugetlb controller for cgroupsv2. The HugeTLB controller allows to limit the HugeTLB usage per control group and enforces the controller limit during page fault commit
prctl: Add PR_GET_IO_FLUSHER/PR_SET_IO_FLUSHER to support controlling memory reclaim. Daemons can use it after they have done their initial setup, and before they start to do allocations that are in the IO path. Both userspace block and FS threads can use it to avoid the allocation recursion and try to prevent from being throttled while writing out data to free up memory commit
Generic page table walk and kernel page table dump (ptdump) via debugfs commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Explicit user-space page pinning via pin_user_pages(), prerequisite to solving the problem of proper interactions between file-backed pages, and [R]DMA activities. See this LWN article. commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Fix the access of uninitialized memmaps when shrinking zones/nodes and when removing memory commit, commit, commit, commit, commit, commit
zswap: add allocation hysteresis and /sys/kernel/debug/zswap/accept_threhsold_percent commit
zram: try to avoid worst-case scenario when comparing pages that differ in last few bytes, by checking last int of a page first commit
5. Block layer
- md
- dm
zoned: support zone sizes smaller than 128MiB commit
crypt: Implement Elephant diffuser for Bitlocker compatibility commit
writecache: improve performance of large linear writes on SSDs commit
Add DM multipath queue_if_no_path_timeout_secs module param to allow timeout if path isn't reinstated. This allows users a kernel safety-net against IO hanging indefinitely commit
bcache: add readahead cache policy options via sysfs interface commit
6. Tracing, perf and BPF
- BPF
Introduce the BPF dispatcher, a mechanism to avoid indirect calls and helps to avoid repotlines performance hit. Recommended LWN article. commit, commit, commit, commit, commit, commit
Introduce BPF STRUCT_OPS. It is an infra to allow implementing some specific kernel's function pointers in BPF. The first use case included in this series is to implement TCP congestion control algorithm in BPF (i.e. implement struct tcp_congestion_ops in BPF) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Introduce batch ops that can be added to bpf maps to lookup/lookup_and_delete/update/delete more than 1 element at the time commit, commit, commit, commit, commit, commit, commit, commit, commit
Emit audit messages upon successful prog load and unload commit
Program extensions or dynamic re-linking commit, commit, commit
Introduce static vs global functions and function by function verification, another step toward dynamic re-linking commit, commit, commit, commit, commit, commit
Support for replacing cgroup-bpf programs attached with BPF_F_ALLOW_MULTI flag so that any program in a list can be updated to a new version without service interruption and order of programs can be preserved commit, commit, commit, commit, commit, commit
Implements a new BPF feature probe, which increases the maximum program size to 1M commit, commit
bpftool: Support dumping a map with btf_vmlinux_value_type_id commit, commit, commit, commit, commit
libbpf: introduces an alternative and complimentary to existing libbpf API interface for working with BPF objects, maps, programs, and global data from userspace side. This approach is relying on code generation. bpftool produces a struct (a.k.a. skeleton) tailored and specific to provided BPF object file. It includes hard-coded fields and data structures for every map, program, link, and global data present. Altogether this approach significantly reduces amount of userspace boilerplate code required to open, load, attach, and work with BPF objects commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
libbpf: Add libbpf-provided extern variables support commit, commit, commit, commit
libbpf: Add bpf_link__disconnect() API to preserve underlying BPF resource commit
libbpf: Support CO-RE relocations for LDX/ST/STX instructions commit
bpftool: match several programs with same tag commit, commit, commit
libbpf: Add support for flexible array accesses in a relocatable manner in BPF CO-RE commit, commit
- perf
libperf: Add man pages commit
perf probe: adds support for user-space strings when type 'ustring' is specified commit
perf report/top: Add 'k' hotkey to zoom directly into the kernel map commit
perf report/top: Add menu entry for toggling callchain expansion commit
perf sched timehist: Add support for filtering on CPU commit
perf tools: Support --prefix/--prefix-strip commit
Add runqslower tool to tools/bpf commit
- tracing
(FEATURED) Boot-time tracing support following boot config. It can setup new kprobe and synthetic events, more complicated event filters and trigger actions including histogram via supplemental kernel cmdline commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add support for in-kernel dynamic event API commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
7. Virtualization
Xen-netback: support dynamic unbind/bind commit
hv_utils: Add the support of hibernation commit, commit, commit, commit
8. Power management
suspend: Add sysfs attribute to control the "sync on suspend" behavior commit
ACPI: fan: Expose fan performance state information commit
cpuidle: Allow idle states to be disabled by default. In certain situations it may be useful to prevent some idle states from being used by default while allowing user space to enable them later on commit
thermal: Introduce the cpu idle cooling driver, a new method to cool down a CPU by injecting idle cycles at runtime. It has some similarities with the intel power clamp driver but it is actually designed to be more generic and relying on the idle injection powercap framework. Also rename the cpu_cooling device to cpufreq_cooling device commit, commit, commit
9. Cryptography
poly1305: add new 32 and 64-bit generic versions commit
shash: allow essiv and hmac to use OPTIONAL_KEY algorithms commit
10. Security
random: Add getentropy(..., GRND_INSECURE), this causes getentropy to always return something, but without cryptographical guarantees. Also, remove the blocking pool and make /dev/random work just like getentropy(..., 0) and make GRND_RANDOM a no-op. Linux's blocking pool has outlived its usefulness, the Linux CRNG generates output that is good enough to use even for key generation. The blocking pool is not stronger in any material way, and keeping it around requires a lot of infrastructure of dubious value. Recommended LWN article: Removing the Linux /dev/random blocking pool. commit, commit, commit, commit, commit, commit, commit, commit
KEYS: Measure keys when they are created or updated. Currently they are not measured, therefore an attestation service, for instance, would not be able to attest whether or not the trusted keys keyring(s), for instance, contain only known good (trusted) keys. A new IMA policy function KEY_CHECK has been added to measure keys. keyrings option can be specified for KEY_CHECK to limit measuring the keys loaded onto the specified keyrings only. uid can be specified to further restrict key measurement for keys created by specific user commit, commit, commit, commit, commit, commit
- SELinux
Deprecate disabling SELinux and runtime commit
Implement a SELinux hook for lockdown. If the lockdown module is also enabled, then a denial by the lockdown module will take precedence over SELinux, so SELinux can only further restrict lockdown decisions commit
Allow per-file labelling for binderfs commit
Caching a certain number (compile-time configurable) of recently used context strings to speed up repeated translations of the same context commit
sidtab reverse lookup hash table, it reduces the time needed to add a new sidtab entry commit
Add a new sysfs file for querying TPM major version commit
11. Networking
(FEATURED) WireGuard secure network tunnel commit
Add support to do GRO/GSO by chaining packets of the same flow. This avoids the overhead to merge payloads into one big packet, and on the other end, if GSO is needed it avoids the overhead of splitting the big packet back to the native form commit, commit, commit, commit
Add offload indication to IPv4 and IPv6 routes so that mlxsw driver do not have to handle identical routes itself commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
unix sockets: Show number of scm files in /proc/self/fdinfo/. This may be useful to determine, that socket should be investigated or which task should be killed to put a reference counter on a resource commit, commit
- TCP
(FEATURED) Add initial support for Multi Path TCP protocol. This set adds MPTCP connection establishment, writing & reading MPTCP options on data packets, a sysctl to allow MPTCP per-namespace, and self tests. This is sufficient to establish and maintain a connection with a MPTCP peer, but will not yet allow or initiate establishment of additional MPTCP subflows. Future versions will include more features commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit; InitiaL MPTCP support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Using IPv6 flow-label to swiftly route around avoid congested or disconnected network path can greatly improve TCP reliability. New SNMP counters and a OPT_STATS counter have been added to track both host-level and connection-level statistics. Network administrators can use these counters to evaluate the impact of this new ability better commit
Introduces a sysctl knob net.ipv4.tcp_no_ssthresh_metrics_save that disables TCP ssthresh metrics cache by default. Other parts of TCP metrics cache, e.g. rtt, cwnd, remain unchanged commit
TCP: Add support for L3 domains to MD5 auth. With VRF, the scope of network addresses is limited to the L3 domain the device is associated. MD5 keys are based on addresses, so proper VRF support requires an L3 domain to be considered for the lookups commit, commit, commit, commit, commit, commit, commit, commit, commit
- netfilter
Set implementation for arbitrary concatenation of ranges commit, commit, commit, commit, commit, commit
Add support for shifts to nft_bitwise in order to allow nftables to do bit shifts commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
nft_meta: add support for slave device matching commit, commit, commit, commit, commit, commit, commit, commit, commit
nft_tunnel: dump ERSPAN_VERSION commit and OPTS_ERSPAN/VXLAN commit
- Packet scheduler
Add Flow Queue Proportional Integral controller Enhanced (FQ-PIE) active queue Management algorithm. It is an enhancement over the PIE algorithm. It integrates the PIE aqm with a deficit round robin scheme commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add a new Qdisc, ETS, which is based on 802.1Q-2014 wording. The new Qdisc operates like the PRIO / DRR combo would when configured as per the standard. The strict classes, if any, are tried for traffic first. When there's no traffic in any of the strict queues, the ETS ones (if any) are treated in the same way as in DRR commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- Bluetooth
- RDMA
Add an ioctl command to allocate an async event file followed by a new ioctl command to get a device context commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add kernel capability flags to differentiate between current FW in kernel that supports both ldpm and edpm commit
ipsec: add TCP encapsulation support of IKE and ESP messages (RFC 8229) commit, commit, commit, commit, commit, commit
- bridge
ethtool: netlink based interface for ethtool. It aims to address some long known issues with the ioctl interface, mainly lack of extensibility, raciness, limited error reporting and absence of notifications. The goal is to allow userspace ethtool utility to provide all features it currently does but without using the ioctl interface. The interface uses generic netlink family "ethtool" and provides multicast group "monitor" which is used for notifications. Documentation for the interface is in Documentation/networking/ethtool-netlink.rst commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Adds support for PTP (IEEE 1588) P2P one-step time stamping along with a driver for a hardware device that supports this commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
ncsi: Support for multi host mellanox card commit
openvswitch: New MPLS actions for layer 2 tunnelling commit, commit, commit
pptp: support sockets bound to an interface commit
QRTR flow control improvements commit, commit, commit, commit, commit
smc: allow unprivileged users to read pnet table commit
tipc: introduce variable window congestion control commit, commit, commit
xdp: Introduce bulking for non-map XDP_REDIRECT commit, commit, commit
vsock: add local transport support (vsock_loopback) to handle local communication. This could be useful to test vsock core itself and to allow developers to test their applications without launching a VM commit, commit, commit, commit, commit, commit
12. Architectures
- ARM
Device Tree Sources: New SoCs
Atmel/Microchip SAM9X60 (ARM926 SoC) commit
OMAP 37xx gets split into AM3703/AM3715/DM3725, who are all variants of it with different GPU/media IP configurations commit
ST stm32mp15 SoCs (1-2 Cortex-A7, CAN, GPU depending on SKU) commit
ST Ericsson ab8505 (variant of ab8500) and db8520 (variant of db8500) commit, commit
Unisoc SC9863A SoC (8x Cortex-A55 mobile chipset w/ GPU, modem) commit
Qualcomm SC7180 (8-core 64bit SoC, unnamed CPU class) commit
- Device Tree Sources: New boards
Allwinner Emlid Neutis SoM (H3 variant) commit
Allwinner Libre Computer ALL-H3-IT and ALL-H5-CC commit, commit
Allwinner PineH64 Model B commit
Amlogic Libretech Amlogic GX PC (s905d and s912-based variants) commit
Atmel/Microchip Kizboxmini, sam9x60 EK, sama5d27 Wireless SOM (wlsom1) commit
Marvell Armada 385-based SolidRun Clearfog GTR commit
NXP Gateworks GW59xx boards based on i.MX6/6Q/6QDL commit, commit, commit, commit
NXP Tolino Shine 3 eBook reader (i.MX6sl) commit
NXP Embedded Artists COM (i.MX7ULP) commit
NXP SolidRun Clearfog CX/ITX and HoneyComb (LX2160A-based systems) commit
NXP Google Coral Edge TPU (i.MX8MQ) commit
Rockchip Radxa Dalang Carrier (supports rk3288 and rk3399 SOMs) commit
Rockchip Radxa Rock Pi N10 (RK3399Pro-based) commit
Rockchip VMARC RK3399Pro SOM commit
ST Reference boards for stm32mp15 commit
ST Ericsson Samsung Galaxy S III mini (GT-I8190) commit, commit, commit, commit, commit
ST Ericsson HREF520 reference board for DB8520 commit
TI OMAP Gen1 Amazon Echo (OMAP3630-based) commit
Qualcomm Inforce 6640 Single Board Computer (msm8996-based) commit
Qualcomm SC7180 IDP (SC7180-based) commit
New Evaluation Kit the SAMA5D27-WLSOM1-EK. It's based on the Microchip WireLess SoM which contains the SAMA5D27 LPDDR2 2Gbits SiP commit
Add support for the Videostrong KII Pro tv box which is based on the gxbb-p201 reference design commit
Add EK874 board with idk-2121wr display support commit
Add Thor96 board from Einfochips. This board is one of the 96Boards Consumer Edition platform powered by the NXP i.MX8MQ SoC commit
- ARM 64
locking: Use optimized spinning loop commit
Add support for Armv8.5 E0PD, which benefits KASLR in the same way as KPTI but without the overhead. This allows KPTI to be disabled on CPUs that are not affected by Meltdown, even is KASLR is enabled commit, commit, commit, commit
Initial support for the Armv8.5 RNG instructions, which claim to provide access to a high bandwidth, cryptographically secure hardware random number generator. As well as exposing these to userspace, we also use them as part of the KASLR seed and to seed the crng once all CPUs have come online commit, commit
Advertise a bunch of new instructions to userspace, including support for Data Gathering Hint, Matrix Multiply and 16-bit floating point commit
Support for loading crash dump kernels with kexec_file_load() commit
Implement optimised checksum routine commit
12.1. X86
Add AMD-TEE driver. The AMD-TEE driver handles the communication with AMD's TEE environment. The TEE environment is provided by AMD Secure Processor. The AMD Secure Processor (formerly called Platform Security Processor or PSP) is a dedicated processor that features ARM TrustZone technology, along with a software-based Trusted Execution Environment (TEE) designed to enable third-party Trusted Applications. This feature is currently enabled only for APUs commit, commit
Intel Uncore frequency control. It allows control of uncore frequency limits on supported server platforms. Uncore frequency controls RING/LLC (last-level cache) clocks commit
- platforms
Enable thermal policy for ASUS TUF FX705DY/FX505DY commit
asus-nb-wmi: Support left round button on N56VB commit
asus_wmi: Support throttle thermal policy commit
intel-hid: Add Tiger Lake ACPI device ID commit
intel_pmc_core: Add Intel Elkhart Lake support commit
intel_pmc_core: Add Intel Tiger Lake support commit
mlx-platform: add new features for the existing Mellanox systems and introduce two new system classes commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
touchscreen_dmi: Add support for the PiPO W11 tablet commit
Add MCA and EDAC support for AMD Family 19h commit, commit, commit, commit, commit
mtrr: Require CAP_SYS_ADMIN for all access commit
resctrl: Add task resctrl information display commit
Add support for "Fast Short Rep Mov" commit
intel_th: pci: Add Elkhart Lake CPU support commit
mei: me: add comet point (lake) H device ids commit
powercap: intel_rapl: add support for JasperLake commit and TigerLake Mobile commit
- perf
- tools/power turbostat
intel-speed-select: Add support for core-power discovery commit
crypto: faster 64 bit poly1305 implementation commit, commit
- intel_idle
Allow the intel_idle driver to use C-states information from ACPI _CST on systems where the processor is not recognized by it commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Introduce states_off module parameter commit
Introduce use_acpi module parameter commit
KVM: Support AMD SVM AVIC w/ in-kernel irqchip mode commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
12.2. S390
S390 hardware compression support for kernel zlib commit, commit, commit, commit, commit, commit
Enhanced handling of secure keys and protected keys commit, commit, commit, commit, commit
pkey: Add support for key blob with clear key value commit
Support KPROBES_ON_FTRACE commit
12.3. RISCV
BPF JIT, optimizations and far jumps support commit, commit, commit, commit, commit, commit, commit, commit, commit
Add KASAN support commit
Add support for CONFIG_DEBUG_VIRTUAL commit
Add kconfig option for QEMU virt machine commit
12.4. MIPS
Ingenic: Add Ingenic X1000 support commit
Ingenic: Add YSH & ATIL CU Neo board support commit
Add MAC2008 Support commit
vdso: Support mremap() for vDSO the same way it's done for x86 and arm commit
12.5. POWERPC
vdso32 enhancement and optimisation commit, commit, commit, commit, commit, commit, commit
Enable CONFIG_VMAP_STACK on PPC32 commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add support of KASAN_VMALLOC on PPC32 commit
Add a debugfs entry to dump PHB's IODA PE state commit
Page directory freeing TLB flushing fixes commit commit commit commit commit commit commit commit commit
KVM: Book3S HV: Implement H_SVM_INIT_ABORT hcall commit
12.6. CSKY
Initial stack protector support commit
Tightly-Coupled Memory or Sram support commit
Add PCI support commit
12.7. MICROBLAZE
12.8. SPARC
Add support for folded p4d page tables commit
12.9. UML
Add an option to make serial driver non-raw commit
12.10. ARC
Preserve userspace fpu state commit
13. Drivers
13.1. Graphics
Add support for specifying a connector's panel_orientation on the kernel cmdline (rotate only supports 0/180 degrees) with panel_orientation, with one of "normal", "upside_down", "left_side_up", or "right_side_up" commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Show which of the i2c adapters is for which drm connector by providing a symbolic link in connector's sysfs directory, e.g.: /sys/class/drm/card0-HDMI-A-1/ddc -> ../../../../soc/13880000.i2c/i2c-2; this shows that card0-HDMI-A-1 uses i2c-2 and can e.g. run ddcutil commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- amdgpu
Remove experimental flag for Navi14 commit
Enable sync object timelines for vulkan commit
Enable MST DSC support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add DMCUB display microengine support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
DC OEM i2c support commit
Initial HDCP 2.x support commit
Enables BACO (Bus Active Chip Off) for power savings on Arcturus commit, commit
Use BACO for runtime PM power save commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
DCN support on POWER commit and enable KFD on POWER systems commit
powerplay: support custom power profile setting commit
Enable GPU reset by default on Navi commit and renoir commit
Enable RAS feature for the gc of Arcturus commit, commit, commit, commit
- Intel
Enable DSC commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
HDCP 2.2 for CFL commit
LMEM debugfs support commit
LMEM discontiguous object maps commit
Use LMEM for dumb buffers if possible commit
Add LMEM mmap support commit
Add second TGL PCH ID commit
Add 10bpc formats with alpha for icl+ commit
Add new EHL/JSL PCI ids commit
Expose more formats commit, commit, commit, commit, commit, commit, commit
Introduce DRM_I915_GEM_MMAP_OFFSET commit
- panel
Logic PD type 28 panel support commit
ingenic: Add support for the JZ4770 commit
Add driver for Sony ACX424AKP panel commit
Add panel driver for Leadtek LTK500HD1829 commit
xinpeng XPP055C272 commit
Add support for AUO B116XAK01 panel commit
Add support for BOE NV140FHM-N49 panel to panel-simple commit
simple: Add Satoz SAT050AT40H12R2 panel support commit
simple: Add compatible for GiantPlus GPM940B0 commit
Sharp LS020B1DD01D panels commit
Add Boe Himax8279d MIPI-DSI LCD panel commit
Add backlight support commit
- nouveau
- rockchip
- virtio-gpu
fb damage support commit
- msm
- vmwgfx
Add ioctl for messaging from/to guest userspace to/from host commit
- mediatek
- sun4i
- rcar-du
- ast
- mcde
vblank support commit
- meson
- gma500
Add pageflip support commit
- komeda
- tilcdc
Remove obsolete bundled tilcdc tfp410 driver commit
- ARC
PGU: add ARGB8888 format to supported format list commit
- edid
LVDS decoder support commit
- bridge
Add Analogix anx6345 support commit
- hisilicon/hibmc
Export VRAM MM information to debugfs commit
- mgag200
Add module parameter to pin all buffers at offset 0 commit
scheduler: improve job distribution with multiple queues commit
13.2. Power Management
EFI: Allow disabling PCI busmastering on bridges during boot commit
ACPI: DPTF: Add Tiger Lake ACPI device IDs commit
ACPI: fan: Add Tiger Lake ACPI device ID commit
- thermal
Add BCM2711 thermal driver commit
int340x: processor_thermal: Add Jasper Lake support commit
int340x_thermal: Add Tiger Lake ACPI device IDs commit
intel: intel_pch_thermal: Add Comet Lake (CML) platform support commit
qoriq: Add hwmon support commit
rockchip: Enable hwmon commit
sun8i: Add hwmon support commit
sun8i: Add thermal driver for H6/H5/H3/A64/A83T/R40 commit
13.3. Storage
- SCSI
pata_pcmia: add SanDisk High (>8G) CF card to supported list commit
13.4. Drivers in the Staging area
media: meson: vdec: add g12a platform commit
media: meson: vdec: add sm1 platform commit
media: hantro: Support color conversion via post-processing commit
media: Rockchip ISP Driver commit, commit, commit, commit, commit, commit, commit, commit, commit
rtl8188eu: Add device id for MERCUSYS MW150US v2 commit
android: Delete the 'vsoc' driver commit
octeon-usb: delete the octeon usb host controller driver commit
Remove isdn capi drivers commit
octeon: delete driver commit
13.5. Networking
- Bluetooth
hci_bcm: Additional changes for BCM4354 support commit, commit, commit, commit
btusb: Add support for 04ca:3021 QCA_ROME device commit
hci_bcm: Drive RTS only for BCM43438 commit
hci_h4: Add support for ISO packets commit
hci_h5: Add support for ISO packets commit
hci_vhci: Add support for ISO packets commit
hci_qca: Enable power off/on support during hci down/up for QCA Rome commit
- Infiniband
- RDMA
ar5523: Add USB ID of SMCWUSBT-G2 wireless adapter commit
- ath10k
- ath11k
- bcmgenet
- bnxt_en
- brcmfmac
cxgb4: add support for high priority filters commit
dpaa2-ptp: add external trigger event support commit
- dsa
- ena
- enetc
- hns3
- ice
- igc
- ionic
macsec: initial support for hardware offloading commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Adds support for Copper SFP+ modules with Clause 45 PHYs commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- mlx5
mlx5e: allow TSO on VXLAN over VLAN topologies commit
- mlxsw
Add tunnel devlink-trap support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Offload TBF commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add a new Qdisc, ETS commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
mv88e6xxx: Add serdes Rx statistics commit
netdevsim: fib: Add dummy implementation for FIB offload commit
- nfp
octeontx2-pf: Add network driver for physical function commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- phy
qed: FW 8.42.2.0 Add fw overlay feature commit
- qmi_wwan
- qtnfmac
r8152: Add MAC passthrough support to new device commit
r8169: use generic ndo_do_ioctl handler phy_do_ioctl commit
rtw88: Add wowlan support for 8822c commit, commit, commit, commit, commit, commit, commit
- stmmac
- wil6210
wlcore: mesh: Add support for RX Broadcast Key commit
13.6. Audio
soundwire: qcom: add support for SoundWire controller commit
Fix year 2038 issue for sound subsystem commit, commit, commit, commit, commit, commit, commit, commit, commit
cmipci: Allow disabling MPU port via module option commit
control: Add verification for kctl accesses commit
dice: add support for Alesis MasterControl commit
The already deprecated dimension support in ALSA control API is dropped completely now commit, commit, commit, commit
- hda
- ASoC
Adapt the recent PCM API updates to ASoC drivers commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
SOF: Intel: add codec_mask module parameter commit
Add MediaTek MT6660 Speaker Amp Driver commit
Intel: Add machine driver for da7219_max98373 commit
Intel: common: add match tables for CNL/CFL/CML w/ SoundWire commit
Intel: common: add match tables for ICL w/ SoundWire commit
Intel: common: add match tables for TGL w/ SoundWire commit
SOF: Add asynchronous sample rate converter topology support commit
SOF: Intel: add PCI ID for JasperLake commit
SOF: Intel: add module namespace support commit, commit, commit, commit, commit, commit, commit, commit
SOF: Intel: hda: Add iDisp4 DAI commit
soc-acpi: add support for SoundWire-based machines commit, commit, commit, commit, commit, commit
amd MMAP_INTERLEAVED Support commit
amd: add ACP3x TDM mode support commit
codecs: Add jz4770-codec driver commit
codecs: add wsa881x amplifier support commit
fsl_asrc: Add support for imx8qm & imx8qxp commit
gtm601: add Broadmobi bm818 sound profile commit
intel/skl/hda - export number of digital microphones via control components commit
intel: Add Broadwell rt5650 machine driver commit
intel: sof_rt5682: Add support for tgl-max98357a-rt5682 commit
qcom: sdm845: add support to DB845c and Lenovo Yoga commit
rt1015: add rt1015 amplifier driver commit
rt1308-sdw: add rt1308 SdW amplifier driver commit
rt700: add rt700 codec driver commit
rt711: add rt711 codec driver commit
rt715: add RT715 codec driver commit
sgtl5000: add multi endpoint support commit
tlv320aic31xx: Add HP output driver pop reduction controls commit
tlv320aic31xx: Add Volume Soft Stepping control commit
Add support to WCD9340/WCD9341 codec commit, commit, commit, commit, commit, commit, commit, commit
13.7. Tablets, touch screens, keyboards, mouses
tm2-touchkey - add support for Coreriver TC360 variant commit
Add IOC3 serio driver commit
ili210x - add ili2120 support commit
- HID
13.8. TV tuners, webcams, video capturers
atmel: atmel-isc-base: add support for Y10 format commit
atmel: atmel-isi: add support for mono sensors, GRAY and Y16 commit
coda: jpeg: add CODA960 JPEG encoder support commit
cx23885: Add support for AVerMedia CE310B commit
dvb: add support for TerraTec TC2 Stick (193534) commit
rc: ir-hix5hd2: add hi3796cv300-ir support commit
rtl28xxu: Add support for PROlectrix DV107669 DVB-T dongle commit
sun4i-csi: Add support for A10 CSI1 camera sensor interface commit
ti-vpe: cal: Add AM654 support commit
ti-vpe: cal: Add DRA76x support commit
ti-vpe: cal: Enable DMABUF export commit
vivid: Add touch support commit
vivid: support multiplanar touch devices commit
13.9. Universal Serial Bus
EHCI: ehci-mv: add HSIC support commit
cdns3: Add streams support to cadence USB3 DRD driver commit
cdns3: add NXP imx8qm glue layer commit
dwc3: pci: add ID for the Intel Comet Lake -V variant commit
gadget: composite: Support more than 500mA MaxPower commit
xhci-tegra: Implement basic ELPG support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
misc: iowarrior: add support for 2 OEMed devices commit
misc: iowarrior: add support for the 100 device commit
misc: iowarrior: add support for the 28 and 28L devices commit
musb: Add support for MediaTek musb controller commit
phy: show USB charger type for user commit
serial: option: add ME910G1 ECM composition 0x110b commit
serial: pl2303: add device-id for HP LD381 commit
typec: ucsi: add support for separate DP altmode devices commit
13.10. Serial Peripheral Interface (SPI)
Add HiSilicon v3xx SPI NOR flash controller driver commit
pxa2xx: Add support for Intel Comet Lake PCH-V commit
rspi: Add support for GPIO chip selects commit
rspi: Add support for multiple native chip selects commit
spi-ti-qspi: support large flash devices commit
13.11. Watchdog
it87_wdt: add IT8786 ID commit
mtk_wdt: mt8183: Add reset controller commit
mtk_wdt: mt2712: Add reset controller commit
13.12. Serial
8250: Support disabling mdelay-filled probes of 16550A variants commit
8250_exar: add support for ACCES cards commit
baudrate: SPARC supports few more baud rates commit
serial: meson_uart: Add support for kernel debugger commit
13.13. Device Voltage and Frequency Scaling
devfreq: improve devfreq statistics counting add ability to reset statistics using sysfs commit
devfreq: Add new name sysfs attribute in order to get device name commit
devfreq: Add dynamic scaling for imx8m ddr controller commit
devfreq: Add debugfs support with devfreq_summary file commit
13.14. Voltage, current regulators, power capping, power supply
- power
avs: Add support for CPR (Core Power Reduction) found in Qualcomm products commit
supply: core: Add battery internal resistance temperature table support commit
supply: bq25890_charger: Add support of BQ25892 and BQ25896 chips commit
supply: axp20x_usb_power: Allow offlining commit
supply: max17042: add MAX17055 support commit
- regulator
13.15. Real Time Clock (RTC)
at91rm9200: add sama5d4 and sama5d2 compatibles commit
bd70528: add BD71828 support commit
rv3029: add RTC_VL_READ/RTC_VL_CLEAR support commit
rv3029: add nvram support commit
13.16. Pin Controllers (pinctrl)
Ingenic: Add missing parts for X1000 and X1500 commit
Ingenic: Add pinctrl driver for X1830 commit
aspeed-g6: Add AST2600 pinconf support commit
aspeed-g6: Add support for the AST2600 USB pinmux commit
freescale: Add i.MX8MP pinctrl driver support commit
sunrisepoint: Add Coffee Lake-S ACPI ID commit
13.17. Multi Media Card (MMC)
sdhci-brcmstb: Add ability to use HS400ES transfer mode commit
sdhci-brcmstb: Add support for Command Queuing (CQE) commit
sdhci-msm: Add CQHCI support for sdhci-msm commit
sdhci: add support for using external DMA devices commit
13.18. Memory Technology Devices (MTD)
spi-nor: Add support for at25sl321 commit
spi-nor: Add support for mx25r3235f commit
spi-nor: Add support for sst26vf016b commit
spi-nor: Add support for w25q32jwm commit
spi-nor: add Gigadevice gd25lq128d support commit
spi-nor: intel-spi: Add support for Intel Comet Lake-V SPI serial flash commit
spi-nor: intel-spi: Add support for Intel Jasper Lake SPI serial flash commit
spinand: add support for Toshiba TC58CVG2S0HRAIJ commit
13.19. Industrial I/O (iio)
max31856: provide more configuration options, also extending IIO core commit, commit, commit, commit, commit, commit, commit, commit, commit
accel: Add driver for the BMA400 commit
accel: bma180: BMA254 support commit
accel: bma180: Basic regulator support commit
adc: Add support for AD7091R5 ADC commit
adc: ad7923: Add support for the ad7908/ad7918/ad7928 commit
adc: new driver to support Linear technology's ltc2496 commit
imu: adis16480: Add support for ADIS16490 commit
imu: inv_mpu6050: add fifo temperature data support commit
imu: inv_mpu6050: add support of MPU9150 magnetometer commit
ping: add parallax ping sensors commit
pressure: Add driver for DLH pressure sensors commit
13.20. Multi Function Devices (MFD)
ab8500-core: Add device tree support for AB8505 commit
bd71828: Add power-key support commit
bd71828: Support ROHM BD71828 PMIC - core commit
da9062: add support for the DA9062 GPIOs in the core commit
intel-lpss: Add Intel Jasper Lake PCI IDs commit
ioc3: Add driver for SGI IOC3 chip commit
wcd934x: Add support to wcd9340/wcd9341 codec commit
13.21. Pulse-Width Modulation (PWM)
sun4i: Add support for H6 PWM commit
13.22. Inter-Integrated Circuit (I2C + I3C)
- i3c
master: cdns: add data hold delay support commit
- I2C
13.23. Hardware monitoring (hwmon)
Add support for enable attributes to hwmon core commit
Add intrusion templates commit
Driver for MAX31730 commit
Driver for disk and solid state drives with temperature sensors commit
adm1177: Add ADM1177 Hot Swap Controller and Digital Power Monitor driver commit
k10temp: Add debugfs support commit
k10temp: Display up to eight sets of CCD temperatures commit
k10temp: Report temperatures per CPU die commit
k10temp: Show core and SoC current and voltages on Ryzen CPUs commit
pmbus/ibm-cffps: Add new manufacturer debugfs entries commit
pmbus/ibm-cffps: Add the VMON property for version 2 commit
pmbus/ucd9000: Add support for UCD90320 Power Sequencer commit
pmbus: Add MAX20796 to devices supported by generic pmbus driver commit
pmbus: Add support for vid mode calculation per page bases commit, commit, commit, commit, commit
pmbus: Driver for MAX20730, MAX20734, and MAX20743 commit
w83627ehf: remove nct6775 and nct6776 support commit
13.24. General Purpose I/O (gpio)
Add support for the Xylon LogiCVC GPIOs commit
bd71828: Initial support for ROHM BD71828 PMIC GPIOs commit
sifive: Add GPIO driver for SiFive SoCs commit
wcd934x: Add support to wcd934x gpio controller commit
13.25. Leds
lm3692x: Allow to configure over voltage protection commit
tps6105x: add driver for MFD chip LED mode commit
13.26. DMA engines
Create symlinks between DMA channels and slaves, because currently it is not easy to find out which DMA channels are in use, and which slave devices are using which channels commit
JZ4780: Add support for the X1830 commit
fsl-edma: Add eDMA support for QorIQ LS1028A platform commit
hisilicon: Add Kunpeng DMA engine support commit
idxd driver for Intel Data Streaming Accelerator commit, commit, commit, commit, commit, commit, commit, commit, commit
PLX Switch DMA Engine Driver commit, commit, commit, commit, commit
sun4i: Add support for cyclic requests with dedicated DMA commit
Add Texas Instruments UDMA support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
13.27. Hardware Random Number Generator (hwrng)
iproc-rng200 - Add support for BCM2711 commit
13.28. Cryptography hardware acceleration
caam: Add support for i.MX8M Mini commit
caam: add support for i.MX8M Nano commit
caam: add support for i.MX8M Plus commit
ccp: add TEE support for Raven Ridge commit
chtls: Add support for AES256-GCM based ciphers commit
hisilicon: Add aead support on SEC2 commit
sun4i-ss: add the A33 variant of SS commit
13.29. PCI
P2PDMA: Add Intel SkyLake-E to the whitelist commit
brcmstb: Add Broadcom STB PCIe host controller driver commit
brcmstb: Add MSI support commit
dwc: intel: PCIe RC controller driver commit
qcom: Add support for SDM845 PCIe controller commit
switchtec: Add Gen4 device IDs commit
switchtec: Add Gen4 flash information interface support commit
vmd: Add two VMD Device IDs commit
13.30. Thunderbolt
(FEATURED) thunderbolt: Add support for USB 4. USB4 is the public specification of Thunderbolt 3 protocol commit, commit, commit, commit, commit, commit, commit, commit, commit
13.31. Clock
Add support for setting clk_rate via debugfs commit
fsl-sai: new driver commit
imx: Add support for i.MX8MP clock driver commit
ls1028a: Add clock driver for Display output interface commit
meson: add a driver for the Meson8/8b/8m2 DDR clock controller commit
qcom: Add MSM8998 Multimedia Clock Controller (MMCC) driver commit
qcom: Add display clock controller driver for SC7180 commit
qcom: Add graphics clock controller driver for SC7180 commit
qcom: Add ipq6018 Global Clock Controller support commit
qcom: Add video clock controller driver for SC7180 commit
timer-microchip-pit64b: Add Microchip PIT64B support commit
zynqmp: Add support for get max divider commit
13.32. PHY ("physical layer" framework)
core: Add consumer device link support commit
cadence: Sierra: Add support for SERDES_16G used in J721E SoC commit
intel-lgm-emmc: Add support for eMMC PHY commit
ti: j721e-wiz: Add support for WIZ module present in TI J721E SoC commit
usb: Add support for new Synopsys USB controller on the 7211b0 commit
usb: Add support for new Synopsys USB controller on the 7216 commit
usb: Add support for wake and USB low power mode for 7211 S2/S5 commit
13.33. Various
PCI/switchtec: Add Gen4 system info register support commit
PCI/switchtec: Add support for Intercomm Notify and Upstream Error Containment commit
firmware: qcom_scm: Dynamically support SMCCC and legacy conventions commit
interconnect: Add interconnect_graph file to debugfs commit
interconnect: qcom: Add MSM8916 interconnect provider driver commit
iommu/arm-smmu-v3: Add support for Substream IDs commit
iommu/vt-d: Add Kconfig option to enable/disable scalable mode commit
iommu/vt-d: debugfs: Add support to show page table internals commit
irqchip/gic-v4.1: Implement the v4.1 flavour of VMAPP commit
irqchip: Add Aspeed SCU interrupt controller commit
irqchip: Add NXP INTMUX interrupt multiplexer support commit
isdn: capi: dead code removal commit
memory: tegra: Add support for the Tegra194 memory controller commit
memory: tegra: Implement EMC debugfs interface on Tegra20 commit and Tegra30 commit
misc: alcor_pci: Add AU6625 to list of supported PCI_IDs commit
nvmem: add QTI SDAM driver commit
nvmem: add support for the write-protect pin commit
remoteproc/mediatek: add SCP support for mt8183 commit
remoteproc: mss: q6v5-mss: Add modem support on SC7180 commit
remoteproc: qcom: pas: Add MSM8998 ADSP and SLPI support commit
remoteproc: qcom: pas: Add SM8150 ADSP, CDSP, Modem and SLPI support commit
reset: Add Broadcom STB RESCAL reset controller commit
reset: intel: Add system reset controller driver commit
rpmsg: add rpmsg support for mt8183 SCP commit
soc/tegra: fuse: Add Tegra194 support commit
soc: ti: k3: add navss ringacc driver commit
14. List of Pull Requests
15. Other news sites
LWN's merge window part 1, part 2, development stats
Phoronix Linux 5.6 Is The Most Exciting Kernel In Years With So Many New Features