65873
Comment:
|
881
Linux 4.20
|
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!''' * 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, without adding an additional flag to the mm_struct, by checking whether the mm->mmap_sem is held for reading, like the page fault code does. This patch 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)] * .text page fault SMP scalability optimization [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1a44e149084d772a1bcf4cdbdde8a013a8a1cfde (commit)] * Split page table lock using a separate spinlock per page table page, to guard the page table entries in that page, instead of using the mm's single page_table_lock. Splitting the lock is not quite for free: another cacheline access. Ideally, we would use split ptlock only for multi-threaded processes on multi-cpu machines; but deciding that dynamically would have its own costs. So for now enable it by config, at some number of cpus [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4c21e2f2441dc5fbb957b030333f5a3f2d02dea7 (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)] * Add hotplug CPU infrastructure for ARM [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a054a811597a17ffbe92bc4db04a4dc2f1b1ea55 (commit)] * Generic dispatch queue: Implements generic dispatch queue which can replace all dispatch queues implemented by each iosched. This reduces code duplication, eases enforcing semantics over dispatch queue, and simplifies specific ioscheds [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)] * x86 hot plug CPU to support physical add of new processors [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9f40a72a7e819789f66910c8cd60aab005cdb413 (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)] * 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 "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_dku2 driver [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=50260b69bbec383058875de26dbde28b1a6f8d00 (commit)] * MPC8xx PCMCIA driver [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 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 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 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f137e463b50aadba91bd116f99c59ccb9c15a12f (commit)] * Support for sharp zaurus sl-5500 touchscreen [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1753298947afe5eb56da755bc057f1868f345ec1 (commit)] and its PCMCIA slot [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=77bb86a1b9f8b872d8efc33c4f4359f809220252 (commit)] * Add LSM hooks for key management [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=29db9190634067c5a328ee5fcc2890251b836b4b (commit)] * RCU torture-testing kernel module [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a241ec65aeac3d69a08a7b153cccbdb7ea35063f (commit)] * Support for shared HPET interrupts [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 [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)] |
You can discuss the latest Linux kernel changes on the [[http://forum.kernelnewbies.org/list.php?4|New Linux Kernel Features Forum]]. |
Line 33: | 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)] * 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_4.20)>> |
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 4.20 was released on Sun, 23 Dec 2018.
Summary: This release includes support for a new way to measure the system load; it adds support for future AMD Radeon Picasso and Raven2 and enables non-experimental support for Radeon Vega20; it adds support for the C-SKY CPU architecture and the x86 Hygon Dhyana CPUs; a TLB microoptimization brings a small performance win in some workloads; TCP has switched to a "Early Departure Time" model; a mechanism to turn memfd regions into dma-buf allows qemu to improve virtualized graphics performance; it also includes the latest round of fixes for CPU security bugs; and it also adds many new drivers and other improvements.
Contents
-
Prominent features
- Pressure stall information for better overview of system load
- AMD Radeon Picasso + Raven2 support, and Vega20 enablement
- More efficient virtualized graphics
- New chinese CPUs: C-SKY architecture and Hygon Dhyana x86 CPUs
- TCP: switch to Early Departure Time model
- Make lazy TLB even lazier
- Another round of fixes for CPU security bugs
- Core (various)
- File systems
- Memory management
- Block layer
- Tracing, perf and BPF
- Virtualization
- Cryptography
- Security
- Networking
- Architectures
-
Drivers
- Graphics
- Storage
- Drivers in the Staging area
- Networking
- Audio
- Tablets, touch screens, keyboards, mouses
- TV tuners, webcams, video capturers
- Universal Serial Bus
- Serial Peripheral Interface (SPI)
- Watchdog
- Serial
- ACPI, EFI, cpufreq, thermal, Power Management
- Real Time Clock (RTC)
- Voltage, current regulators, power capping, power supply
- Pin Controllers (pinctrl)
- Multi Media Card (MMC)
- Memory Technology Devices (MTD)
- Industrial I/O (iio)
- Inter-Integrated Circuit (I2C)
- Hardware monitoring (hwmon)
- General Purpose I/O (gpio)
- Leds
- DMA engines
- Cryptography hardware acceleration
- PCI
- Non-Transparent Bridge (NTB)
- Clock
- Firmware
- IOMMU
- PHY
- IRQ chip
- Various
- List of merges
- Other news sites
1. Prominent features
1.1. Pressure stall information for better overview of system load
When systems are overcommitted and resources become contended, it's hard to tell exactly the impact this has on workload productivity, or how close the system is to lockups and OOM kills. In particular, when machines work multiple jobs concurrently, the impact of overcommit in terms of latency and throughput on the individual job can be enormous. In order to maximize hardware utilization without sacrificing individual job health or risk complete machine lockups, this release adds pressure stall information, a way to quantify resource pressure in the system.
Under /proc/pressure/ (and also inside each cgroup), several files expose the percentage of time the system is stalled on CPU, memory, or IO, respectively. These percentages of walltime can be thought of as pressure percentages, and they give a general sense of system health and productivity loss incurred by resource overcommit. They can also indicate when the system is approaching lockup scenarios and OOMs.
Documentation: Documentation/accounting/psi.txt
Recommended LWN article: Tracking pressure-stall information
1.2. AMD Radeon Picasso + Raven2 support, and Vega20 enablement
This release adds support for Raven2 APU and Picasso APUs. Also, support for Vega20 is no longer considered experimental.
1.3. More efficient virtualized graphics
This release includes udmabuf, a device that can turn memfd regions into dma-buf. It allows qemu to create dmabufs for the vga framebuffer or virtio-gpu resources. Then they can be passed around to display those guest things on the host. To spice client for classic full framebuffer display, and hopefully some day to wayland server for seamless guest window display.
1.4. New chinese CPUs: C-SKY architecture and Hygon Dhyana x86 CPUs
This release adds support for new architecture: C-SKY architecture, a 32 bit chinese CPU ISA
There is also support for Hygon Dhyana Family 18h, a new x86 processor coming from the AMD–Chinese joint venture
1.5. TCP: switch to Early Departure Time model
Internet grew following a AFAP ("As Fast As Possible") idea. Due to the constraints of modern hardware, this model is not optimal any more. This release switches the TCP stack to Early Departure Time model
See:
1.6. Make lazy TLB even lazier
As TLB flushes are extremely expensive, a technique called lazy TLB is employed by Linux which avoids unnecessary TLB flushes by processes which do not access the userspace page tables as the kernel portion of the address space is always visible. This release tries to use lazy TLB used even lazier: On most workloads, the number of context switches far exceeds the number of TLB flushes sent. Optimizing the context switches, by always using lazy TLB mode, speeds up those workloads. This reduces total CPU use in the system by about 1-2% for a memcache workload on two socket systems, and by about 1% for a heavily multi-process netperf between two systems.
1.7. Another round of fixes for CPU security bugs
- x86: Remedy the overhead of STIBP/IBPB with per task indirect branch speculation control
- x86: Harden spectre v2 userspace-userspace protection
- x86: The "minimal retpoline" support is no longer useful and has been removed
- arm64: Support for the new ARMv8.5 PSTATE.SSBS bit which can be used to mitigate Spectre-v4 dynamically without trapping to EL3 firmware
Recommended LWN articles:
2. Core (various)
fanotify super block marks: It implement the new mark type FAN_MARK_FILESYSTEM to enable monitoring of filesystem events on all filesystem objects regardless of the mount where event was generated commit, commit, commit
New fanotify event info API: In order to identify which thread triggered the event in a multi-threaded program, add the FAN_REPORT_TID flag in fanotify_init to opt-in for reporting the event creator's thread id information commit, commit, commit, commit, commit, commit, commit
(FEATURED) psi: pressure stall information for CPU, memory, and IO commit, commit, commit, commit, commit, commit, commit, commit, commit
init: add root=PARTLABEL=<name> support commit
- task scheduler
Android binder: Add BINDER_GET_NODE_INFO_FOR_REF ioctl. It allows the context manager to retrieve information about nodes that it holds a reference to, such as the current number of references to those nodes commit
gcc-plugins: Add the STACKLEAK plugin, which erases the kernel stack before returning from syscalls. That reduces the information which kernel stack leak bugs can reveal and blocks some uninitialized stack variable attacks commit, commit, commit
qspinlock_stat: Count instances of nested lock slowpaths commit
- Building
3. File systems
- XFS
Support returning partial reflink results. For example, if userspace sends a 1GB clone request and we run out of space halfway through, we at least can tell userspace that we completed 512M of that request like a regular write commit
- BTRFS
qgroups: Reduce dirty extents for metadata. It significantly improves balancing with quota enabled commit, commit, commit, commit, commit, commit
Improve btrfs btree locking modes. It significantly improves performance: more files/sec in fsmark, better perf on multi-threaded workloads (filebench, dbench), fewer context switches, better latency, etc commit
- CIFS
Compounding support, it aggregates several operations to avoid round trips commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Implement direct I/O: The file system passes the I/O data directly from user-space buffer to the transport layer, when file system is mounted with cache-none commit, commit, commit
Add ioctl for QUERY_INFO passthrough to userspace. It allows userspace tools to query the raw info levels for cifs files and process the response in userspace commit
Add support for ioctl on directories commit
Show number of current open files in /proc/fs/cifs/Stats commit
- F2FS
- FUSE
- GFS2
Add support for ioctl getfslabel commit
- NFSD
- 9P
Add mount option for lock retry interval commit
- AFS
- CEPH
- OCFS2
Support partial clone range and dedupe range commit
- OVERLAYFS
Automatically enable redirect_dir on metacopy=on commit
4. Memory management
XArray (recommended LWN article The XArray data structure) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Introduce kmalloc-reclaimable caches which can be reclaimed under memory pressure (typically through a shrinker), these are shown as "kmalloc-rcl-SIZE" in /proc/slabinfo. This makes the slab pages accounted as NR_SLAB_RECLAIMABLE in vmstat, which is reflected also the MemAvailable counter in /proc/meminfo and in overcommit decisions. A new KReclaimable counter is added to that file show the sum of all reclaimable kernel allocations, including slab. The NR_INDIRECTLY_RECLAIMABLE_BYTES counter is repurposed commit, commit, commit, commit, commit, commit
zero-seek shrinkers: implement a "zero-seek" setting for shrinkers that results in a target ratio of 0:1 between their objects and IO-backed caches. This allows such virtual caches to grow when memory is available (they do cache/avoid CPU work after all), but effectively disables them as soon as IO-backed objects are under pressure commit
workingset: add vmstat counter for shadow nodes commit
kmemleak: add module param to print warnings to dmesg commit
contiguous page allocator: Improve large page preservation handling commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
brk and mremap: downgrade mmap_sem to read when shrinking commit, commit
userfaultfd: allow get_mempolicy(MPOL_F_NODE|MPOL_F_ADDR) to trigger userfaults commit
zap pages with read mmap_sem in munmap for large mapping, to improve mmap_sem scalability commit, commit, commit
Address issues slowing persistent memory initialization commit, commit, commit
Remove CONFIG_HAVE_MEMBLOCK commit and CONFIG_NO_BOOTMEM commit, commit
slub: Extend the slub_debug syntax to handle multiple slabs commit
lz4: update LZ4 decompressor module commit
5. Block layer
Convert a bunch of drivers from the old legacy IO interface to blk-mq commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
blk-mq: Enable support for runtime power management commit
Introduce BLKGETNRZONES ioctl: Get a zoned block device total number of zones commit
Introduce BLKGETZONESZ ioctl: Get a zoned block device zone size commit
md: raid10: support add disk under grow mode commit
Expose through sysfs the nr_zones field of struct request_queue commit
kyber: implement improved heuristics commit
nvmem: add support for cell info commit and cell lookups commit
Remove DAC960 driver commit
6. Tracing, perf and BPF
perf trace: Introduce perf trace --max-events for stopping 'perf trace' when that many syscalls (enter+exit), tracepoints or other events such as page faults take place. Support that as well on a per-event basis, e.g.: perf trace -e sched:*switch/nr=2/,block:*_plug/nr=4/,block:*_unplug/nr=1/,net:*dev_queue/nr=3,max-stack=16/ Will stop when 2 context switches, 4 block plugs, 1 block unplug and 3 net_dev_queue tracepoints take place commit, commit, commit, commit
uprobes: Support SDT markers having reference count (semaphore) commit, commit, commit, commit
uprobe: support reference counter in fd-based uprobe commit
Make perf script easier to use for itrace. Implement a range of improvements to make it easier to look at itrace traces with perf script commit, commit, commit, commit, commit
perf script: Allow extended console debug output commit
perf scripts python: exported-sql-viewer.py: Add All branches report commit, add ability to display all the database tables commit, add ability to find symbols in the call-graph commit, add ability to shrink / enlarge font commit, add support for multiple sub-windows commit
kprobes: Allow kprobe-events to record module symbol commit
probeevent: Improve fetcharg features commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- BPF
Implement queue/stack maps. This patchset implements two new kind of eBPF maps: queue and stack. Those maps provide to eBPF programs the peek, push and pop operations, and for userspace applications a new bpf_map_lookup_and_delete_elem() is added commit, commit, commit, commit, commit, commit
Add socket lookup support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Adding supprot for two new bpf's tcp sockopts: TCP_SAVE_SYN (set) and TCP_SAVED_SYN (get) commit
per-cpu cgroup local storage. It implements per-cpu cgroup local storage and provides an example how per-cpu and shared cgroup local storage can be used for efficient accounting of network traffic commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
bpftool: add support for BPF_MAP_TYPE_REUSEPORT_SOCKARRAY maps commit
bpftool: add net support. The functionality to dump network driver and tc related bpf programs are added commit, commit, commit
bpftool: add map create command commit
7. Virtualization
virtio-balloon: support free page reporting commit, commit, commit
Add support for overriding the default driver for a VMBus device in the same way that it can be done for PCI devices commit
8. Cryptography
Implement a generic crypto statistics commit and add cryptostat userspace commit
- KEYS
Support TPM-wrapped key and crypto ops. This adds 1) keyctl() functions that permit an asymmetric-type key to be used to encrypt, decrypt, sign and verify a small piece of data using the public and/or private key held in the kernel 2) an asymmetric-key parser for PKCS#8 to allow RSA private keys to be passed to the kernel 3) an asymmetric-key parser for TPM-wrapped key blobs commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
ofb: add output feedback mode commit
speck: remove Speck commit
crc-t10dif: Allow current transform to be inspected in sysfs commit
9. Security
LSM: Provide init debugging infrastructure with lsm.debug kernel boot parameter commit
apparmor: Allow packet filtering based on secmark policy commit, commit
tpm: add support for nonblocking operation commit
10. Networking
(FEATURED) TCP: switch TCP and and fair-queue scheduler to Early Departure Time model. See: Evolving from AFAP: Teaching NICs about time commit, commit, commit, commit, commit, commit, commit, commit, commit
Implement kernel filtering of route dumps by protocol (e.g., which routing daemon installed the route), route type (e.g., unicast), table id and nexthop device. iproute2 has been doing this filtering in userspace for years; pushing the filters to the kernel side improves efficiency on large scale systems commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
TCP: Previously TCP initial receive buffer is ~87KB by default and the initial receive window is ~29KB (20 MSS). This patch changes the two numbers to 128KB and ~64KB (rounding down to the multiples of MSS) respectively commit
bridge: add support for per-port vlan stats commit
- Wireless
Add support for 60GHz band channels 5 and 6 commit
Allow userspace to enable FTM responder functionality with the addition of new Netlink flag attribute NL80211_ATTR_FTM_RESPONDER with configurable lci/civic ocation parameters commit, commit
Add per peer statistics to compute FCS error rate commit
Add he_capa debugfs entry commit
- packet scheduler
DNS: Allow the dns resolver to retrieve a server set commit
- Distributed Switch Architecture
Introduce eBPF flow dissector, a more secure flow dissector. Recommended LWN article: Writing network flow dissectors in BPF. commit, commit, commit, commit
geneve: add ttl inherit support commit
rtnetlink: add IFA_TARGET_NETNSID for RTM_GETADDR. The goal is to make it possible to perform RTM_GETADDR requests on different network namespaces commit, commit, commit, commit, commit, commit, commit, commit, commit
Add support for dumping addresses for a specific device commit, commit, commit, commit
- IPv6
- ncsi
- neighbour
- netfilter
- netlink
Add new socket option to enable strict checking on dumps commit
Add NLA_REJECT policy type which does nothing but reject (with EINVAL) validation of any messages containing this attribute commit
Add ethernet address policy type which checks for exact size, and rejects the attribute if the length isn't ETH_ALEN commit
netpoll: Enable netconsole IPv6 link local address commit
rxrpc: Add /proc/net/rxrpc/peers to display peer list commit
vhost_net XDP TX batching: try to batch submitting packets to underlayer socket through msg_control during sendmsg() commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
vhost: improve performance when enable busyloop commit, commit, commit
tipc: support binding to specific ip address when activating UDP bearer commit
- TLS
- veth
virtio_net: ethtool tx napi configuration commit
11. Architectures
- ARM
- device tree sources
Two boards get added for TI OMAP: Moxa UC-2101 is an industrial computer commit, commit; GTA04A5 is a minor variation of the motherboards of the GTA04 phone commit
Clearfog is a nice little board for quad-core Marvell Armada 8040 network processor commit
Two additional server boards come with the Aspeed baseboard management controllers: Stardragon4800 commit is an arm64 reference platform made by HXT (based on Qualcomm's server chips), and TiogaPass commit, commit is an Open Compute mainboard with x86 CPUs. Both use the ARM11 based AST2500 chips in the BMC
NXP i.MX usually sees a lot of new boards each release. This time there we only add one minor variant: ConnectCore 6UL SBC Pro commit uses the same SoM design as the ConnectCore 6UL SBC Express added later. However, there is a new chip, the i.MX6ULZ, which is an even smaller variant of the i.MX6ULL, with features removed. There is also support for the reference board design, the i.MX6ULZ 14x14 EVK commit, commit
A new Raspberry Pi variant gets added, this one is the CM3 compute module based on bcm2837, it was launched in early 2017 but only now added to the kernel, both as 32-bit and as 64-bit files, as we tend to do for Raspberry Pi commit
On the Allwinner side, everything is again about cheap development boards, usually of the "Fruit Pi" variety. The new ones this time are: Orange Pi Zero Plus2 commit, Orange Pi One Plus commit, Pine64 LTS commit, Banana Pi M2+ H5 commit, commit. The last one of these is now a 64-bit version of the earlier Banana Pi M2+ H3, with the same board layout.
For Rockchips, we get another variant of the 32-bit Asus Tinker board, the model 'S' based on rk3288 commit, and three now boards based on the popular RK3399 chip: ROC-RK3399-PC commit, Rock960 commit, RockPro64 commit. These are all quite powerful boards with lots of RAM and I/O, and the RK3399 is the same chip used in several Chromebooks. Finally, we get support for the PX30 (aka rk3326) chip, which is based on the low-end 64-bit Cortex-A35 CPU core. So far, only the evaluation board is supported commit, commit
One more Banana Pi is added with a Mediatek chip: Banana Pi R64 is based on the MT7622 WiFi router platform, and the first product the arm maintainer has seen with a 64-bit Mediatek chip in that market commit
For HiSilicon, we gain support for the Hi3670 SoC commit and HiKey 370 development board commit, which are similar to the Hi3660 and Hikey 360 respectively, but add support for an NPU
Amlogic gets initial support for the Meson-G12A chip (S905D2) commit, another quad-core Cortex-A53 SoC, and its evaluation platform. On the 32-bit side, we gain support for an actual end-user product, the Endless Computers Endless Mini based on Meson8b (S805) commit
Qualcomm adds support for their MSM8998 SoC and evaluation platform. This chip is commonly known as the Snapdragon 835, and is used in high-end phones as well as low-end laptops commit
For Renesas, a very bare support for the r8a774a1 (RZ/G2M) is added commit, commit, commit, commit but no boards for this one. However, we do add boards for the previously added r8a77965 (R-Car M3-N): the M3NULCB Kingfisher commit and the M3NULCB Starter Kit Pro commit
While we have lots of DT changes for NVIDIA to update the existing files, the only board that gets added is the Toradex Colibri T20 on Colibri Evaluation Board for the old Tegra2 commit
Synaptics add support for their AS370 SoC, which is part of the (formerly Marvell) Berlin line of set-top-box chips used e.g. in the various Google Chromecast. Only the .dtsi gets added at this point, no actual machines commit
mvebu: Add device tree for db-88f6820-amc board commit
shmobile: Add basic RZ/A2 SoC support commit
shmobile: r8a7744: Basic SoC support commit
u300: Delete dummy SPI chip commit
imx6qdl: Add Engicam i.Core 1.5 MX6 commit
amlogic: add meson-canvas driver commit
coresight: Add support for CLAIM tag protocol commit
coresight: etm-perf: Add support for ETR backend commit
crypto: ghash-ce: implement support for 4-way aggregation commit
KVM: Enable 32 bits kvm vcpu events support commit
- ARM64
(FEATURED) Support for Common Not Private (CnP) translations allowing threads of the same CPU to share the TLB entries commit, commit
Support for the new ARMv8.5 PSTATE.SSBS bit which can be used to mitigate Spectre-v4 dynamically without trapping to EL3 firmware commit, commit, commit, commit, commit, commit, commit
Add accelerated crc32 routines commit
crypto: aes-blk: add support for CTS-CBC mode commit
kvm: Allow tuning the physical address size for VM commit
- device tree sources
- X86
(FEATURED) Add x86 architecture support for a new processor: Hygon Dhyana Family 18h commit
(FEATURED) Make lazy TLB mode even lazier: On most workloads, the number of context switches far exceeds the number of TLB flushes sent. Optimizing the context switches, by always using lazy TLB mode, speeds up those workloads. This results in about a 1% reduction in CPU use on a two socket Broadwell system running a memcache like workload commit, commit, commit, commit, commit, commit, commit
(FEATURED) Remedy the STIBP/IBPB overhead 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
qspinlock: Improve determinism for x86 commit, commit, commit, commit
(FEATURED) Harden spectrev2 userspace-userspace protection commit, commit, commit
Remove minimal retpoline support commit
- EDAC
crypto: remove SHA multibuffer routines and mcryptd commit
- perf
intel/uncore: Add more IMC PCI IDs for KabyLake and CoffeeLake CPUs commit
intel/uncore: Support CoffeeLake 8th CBOX commit
intel: Add a separate Arch Perfmon v4 PMI handler commit
- platform
stm class: Add support for MIPI SyS-T protocol commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- hyper-v
- KVM
nVMX: initial implementation of Enlightened VMCS for nested Hyper-V on KVM. Using it helps to spare 1500 cpu cycles for nested vmexit (tight cpuid loop in WS2016 with Hyper-V role on KVM: 15200 cycles -> 13700 cycles) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add coalesced pio support commit
Add a new per-VM capability (KVM_CAP_EXCEPTION_PAYLOAD) will be introduced. When this capability is enabled by userspace, the faulting linear address will be included with the information about a pending #PF in L2, and the "new DR6 bits" will be included with the information about a pending #DB in L2. This ancillary exception information is carried in a new "payload" field commit, commit, commit, commit, commit, commit, commit
VMX: enable nested virtualization by default commit
- CSKY
- PARISC
- POWERPC
Maintain a cache of SLB entries for each process and preload them on context switch. Leading to a 27% speedup for our context switch benchmark on Power9 commit, commit
Add stack protector support for 32 and 64-bit, with a per-task canary commit, commit
Add support for physical memory up to 2PB in the linear mapping on 64-bit Book3S. We only support up to 512TB as regular system memory, otherwise the percpu allocator runs out of vmalloc space commit
Enable THP migration on 64-bit Book3S machines (eg. Power7/8/9) commit
Add support for PTRACE_SYSEMU and PTRACE_SYSEMU_SINGLESTEP commit
Add support for function error injection commit
pseries: Add driver for PAPR SCM regions commit
pseries: PAPR persistent memory support commit
- KVM
- RISC-V
- S390
Extend the pkey API to provide random protected keys, this is useful for encrypted swap device with ephemeral protected keys commit, commit, commit, commit, commit
Add support for virtually mapped kernel stacks commit
zcrypt: Improved access control for the zcrypt driver, multiple device nodes can now be created with different access control lists commit, commit
vfio-ap: Introduce a new AP device driver. This driver grants access to Adjunct Processor (AP) devices via the VFIO mediated device interface commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- qeth
KVM: s390: interface to clear CRYCB masks commit
- MIPS
mscc: add DT for Ocelot PCB120 commit
- SPARC
12. Drivers
12.1. Graphics
(FEATURED) udmabuf device to turn memfd regions into dma-buf commit
Add per-plane pixel blend mode property commit
- amdgpu
Merge amdkfd and amdgpu into one module commit
Add DisplayPort CEC-Tunneling-over-AUX support commit
(FEATURED) Picasso APU support + VCN dynamic powergating commit, commit
(FEATURED) Raven2 APU support commit
(FEATURED) Vega20 enablement + kfd support commit, commit, commit, commit, commit, commit, commit
VCN jpeg support commit
Ycbcr 4:2:0 support commit
Stereo 3D support in VSC commit
Support reading hw state from debugfs file commit
Implement AMDGPU_PP_SENSOR_MIN/MAX_FAN_RPM so user can query rpm range commit
Add DMCU firmware loading for Raven (used for ABM and PSR) commitcommit, commit
Add support for LVDS commit
Add fan RPM setting via sysfs commit
add some additional vega10 pci ids commit
Add DPG mode support for vcn 1.0 commit
add GDS, GWS and OA debugfs files commit
print smc feature mask in debugfs amdgpu_pm_info commit
Add support for hw_state logging via debugfs commit
- amdkfd
- exynos
- intel
Turn off resource streamer API commit
- More Icelake enablement + DMC firmware
Full PPGTT for Ivybridge, Haswell and Valleyview commit
DDB distribution based on resolution commit
Add a new CFL PCI ID commit
Add PSR mode/revision to debugfs commit
Add debugfs support to force a downgrade to PSR1 mode commit
- mali-dp
Implement plane alpha and pixel blend on malidp commit
- mediatek
- nouveau
Add DisplayPort CEC-Tunneling-over-AUX support commit
Initial HDMI 2.0 support commit
- rockchip
- sun4i
- tegra
Add Tegra194 support commit
- bridge
- vkms
- rcar-du
- virtio-gpu
- backlight
12.2. Storage
nvme: Add support for P2P memory commit, commit, commit, commit
nvmet_fc: support target port removal with nvmet layer commit
cxgb4i: add DCB support for iSCSI connections commit
qla2xxx: Add mode control for each physical port commit
ufs: Add API to execute raw upiu commands commit
12.3. Drivers in the Staging area
media: platform: Add Cedrus VPU decoder driver commit
comedi: add interface to ni routing table information commit
comedi: add new device-global config interface commit
comedi: ni_660x: Add NI PCI-6608 to list of supported devices commit
comedi: ni_mio_common: implement global pfi, rtsi routing commit
comedi: ni_mio_common: implement new routing for TRIG_EXT commit
comedi: ni_mio_common: implement output selection of GPFO_{0, 1} commit
comedi: ni_routing: Add NI signal routing info commit
comedi: tio: implement global tio/ctr routing commit
dgnc: delete the driver commit
vboxvideo: Atomic phase 3: Switch last bits over to atomic commit
iio:ad7606: Add support for the ad7605-4 commit
12.4. Networking
dpaa2-eth: Move DPAA2 Ethernet driver from staging to drivers/net commit
- Bluetooth
- FDDI: defza
RDMA/hns: adds atomic and cm of vlan device function for hip08 as well as optimize some codes for post send verbs commit, commit, commit, Add enable judgement for UD vlan commit
aquantia: implement EEE support commit, implement WOL support commit
- ath10k
Add support for wifi QMI client handshake commit, commit, commit, commit, commit
Add debugfs entry to enable extended tx stats commit, add debugfs support to dump per sta tx stats commit, add debugfs support to get power save state change of STA commit
Add extended per sta tx statistics support commit
Add support for configuring management packet rate commit
Enable pktlog for WCN3990 target commit
Support NET_DETECT WoWLAN feature commit
Support extended board data download for dual-band QCA9984 commit
- ath9k
- bnxt_en
brcmfmac: add CYW89342 mini-PCIe device commit
- cxgb4
dpaa2-eth: Add ethtool support for flow classification commit
dsa: Add Lantiq / Intel DSA driver for vrx200 commit
ena: enable Low Latency Queues commit, commit, commit, commit
fm10k: add missing device IDs to the upstream driver commit
hinic: add checksum offload and TSO support commit
- hns3
Support of Flow Director for HiP08 Rev2 SoC commit, commit, commit, commit, commit, commit, commit
Adds support of RSS for Rev 2 commit, commit, commit, commit
Adds support of RAS Error Handling commit, commit, commit, commit, commit, commit, commit
Add default irq affinity commit
Add egress/ingress vlan filter for revision 0x21 commit
Add support for hns3_nic_netdev_ops.ndo_do_ioctl commit
Add support for sctp checksum offload commit
hv_netvsc: Add support for LRO/RSC in the vSwitch commit
ibmvnic: Add ethtool private flag for driver-defined queue limits commit
- ice
Add support for Tx hang, Tx timeout and malicious driver detection commit
Add support for dynamic interrupt moderation commit
Implement ethtool hook for RSS switch commit
Implement handlers for ethtool PHY/link operations commit
igc: Add skeletal frame for Intel(R) 2.5G Ethernet Controller support commit
- iwlwifi
- ixgbe
lantiq: Add Lantiq / Intel VRX200 Ethernet driver commit
liquidio: Add the features to show FEC settings and set FEC settings commit
- RDMA/mlx5
- Add the ability to attach recently added flow actions to flow steering rules: modify header and packet reformat
Flow actions to mutate packets 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
mlx5: Add Fast teardown support commit
- mlx5e
Add ethtool control of ring params to VF representors commit
Add new counter for aRFS rule insertion failures commit
Added 'raw_errors_laneX' fields to ethtool statistics commit
Allow reporting of checksum unnecessary commit
Enable multi-queue and RSS for VF representors commit
Enable reporting checksum unnecessary also for L3 packets commit
Enable stateless offloads for VF representor netdevs commit
Ethtool driver callback for query/set FEC policy commit
Ethtool steering, Support masks for l3/l4 filters commit
Expose ethtool rss key size / indirection table functions commit
IPoIB, Add ndo stats support for IPoIB child devices commit
IPoIB, Add ndo stats support for IPoIB netdevices commit
Support offloading tc priorities and chains for eswitch flows commit
mlxsw: Add VxLAN support 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
mt76: report firmware version using ethtool commit
- mt76x0
mt76x2u: Add support for Alfa AWUS036ACM commit
- mvneta
mvpp2: support XPS by mapping TX queues to CPUs commit
- nfp
nixge: Add support for 64-bit platforms commit
Add a new driver for Marvell's OcteonTX2 SOC's Resource virtualization unit (RVU) admin function driver 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
- phy
- qed
qede: Add driver support for 20G link speed commit
- qtnfmac
r8169: add support for Byte Queue Limits commit
rtl8xxxu: Add rtl8188ctv support commit
systemport: Turn on offloads by default commit
- wil6210
wlcore: Add support for optional wakeirq commit
12.5. Audio
realtek: Add support for Acer Aspire C24-860 headset mic commit
realtek: Support ALC300 commit
Add support for AMD Stoney Ridge commit
usb-audio: Add vendor and product name for Dell WD19 Dock commit
- ASoC
Add support to card rebind commit
Add driver for PROTO Audio CODEC (with a WM8731) commit
Intel: Boards: Add KBL Dialog Maxim I2S machine driver commit
Intel: Boards: Machine driver for SKL+ w/ HDAudio codecs commit
codecs: tas5720: add TAS5722 TDM slot width setting support commit, add TAS5722 specific volume control commit
hdac_hda: add asoc extension for legacy HDA codec drivers commit
meson: add axg pdm input commit
nau8822: new codec driver commit
pcm3060: Add codec driver commit
pcm3168a: add I2S/Left_J TDM support commit
rsnd: add support for 8 bit S8 format commit
rsnd: add support for the DSP_A/DSP_B formats commit
sta32x: Add support for XTI clock commit
sunxi: Add new driver for Allwinner A64 codec's analog path controls commit
12.6. Tablets, touch screens, keyboards, mouses
- HID
elan_i2c: add ELAN0620 to the ACPI table commit
elan_i2c: add support for ELAN0621 touchpad commit
synaptics: enable SMBus for HP 15-ay000 commit
12.7. TV tuners, webcams, video capturers
Add imx319 camera sensor driver commit
Add imx355 camera sensor driver commit
dvb-frontends: add LNBH29 LNB supply driver commit
imx-pxp: add i.MX Pixel Pipeline driver commit
uapi/linux/media.h: add request API commit
Add definition for the Sunxi tiled NV12 format commit
Add definitions for MPEG-2 slice format and metadata commit
vivid: Add 16-bit bayer to format list commit, support 480p for webcam capture commit
12.8. Universal Serial Bus
Add uevent for over-current commit
typec: ucsi: add support for Cypress CCGx commit
export firmware port location in sysfs commit
EHCI: make ehci-mv a separate driver commit
appledisplay: Add 27" Apple Cinema Display commit
cdc-acm: add entry for Hiro (Conexant) modem commit
dwc3: exynos: Add support for Exynos5433 variant with all clocks commit
gadget: udc: renesas_usb3: add support for r8a77990 commit
gadget: uvc: configfs: Add bFormatIndex attributes commit, add bFrameIndex attributes commit, add interface number attributes commit
usbtmc: usbtmc: Changes needed for compatible IVI/VISA library commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
xhci-mtk: supports bandwidth scheduling with multi-TT commit
- serial: option
12.9. Serial Peripheral Interface (SPI)
spi: add support for Amazon's Alpine spi controller commit
Introduce new driver for Qualcomm QuadSPI controller commit
at91-usart: Add driver for at91-usart as SPI commit
dw-mmio: add MSCC Jaguar2 support commit
mediatek: add spi slave for Mediatek MT2712 commit
omap2-mcspi: Add slave mode support commit
spi-geni-qcom: Add SPI driver support for GENI based QUP commit
spi-mem: add stm32 qspi controller commit
sprd: Add SPI driver for Spreadtrum SC9860 commit
12.10. Watchdog
Add support for Armada 37xx CPU watchdog commit
w83627hf_wdt: Support NCT6796D, NCT6797D, NCT6798D commit
12.11. Serial
Add ISO7816 infrastructure commit
8250_uniphier: add auto-flow-control support commit
atmel: add ISO7816 support commit
12.12. ACPI, EFI, cpufreq, thermal, Power Management
- ACPI
efi: add API to reserve memory persistently across kexec reboot commit
tools: sleepgraph and bootgraph: upgrade to v5.2 commit, commit
cpufreq: intel_pstate: Add base_frequency attribute commit, commit
- thermal
12.13. Real Time Clock (RTC)
ds1307: add frequency_test_enable attribute on m41txx commit
ds1307: add offset sysfs for mt41txx chips commit
abx80x: add basic watchdog support commit
rv8803: add Epson RX8803 support commit
12.14. Voltage, current regulators, power capping, power supply
- power: supply
- regulator
12.15. Pin Controllers (pinctrl)
bcm: add Northstar driver commit
ingenic: Add support for the JZ4725B commit
mediatek: add MT6765 pinctrl driver commit
mediatek: add MT7623 pinctrl driver based on generic pinctrl binding commit
mediatek: add MT8183 pinctrl driver commit
mediatek: add pinctrl-paris that implements the vendor dt-bindings commit
meson-g12a: add pinctrl driver support commit
nuvoton: add NPCM7xx pinctrl and GPIO driver commit
qcom: Add qcs404 pinctrl driver commit
qcom: Add sdm660 pinctrl driver commit
renesas: Renesas RZ/N1 pinctrl driver commit
sh-pfc: r8a7791: Add r8a7744 support commit
12.16. Multi Media Card (MMC)
mediatek: add MT8183 MMC driver support commit
mmci: add stm32 sdmmc variant commit
sdhci-iproc: Add ACPI support commit
sdhci-sprd: Add Spreadtrum's initial host controller commit
sdhci: Add Auto CMD Auto Select support commit
tegra: Enable UHS and HS200 modes for Tegra186 commit
tegra: Enable UHS and HS200 modes for Tegra210 commit
12.17. Memory Technology Devices (MTD)
rawnand: toshiba: Add support for Toshiba Memory BENAND (Built-in ECC NAND) commit
rawnand: Remove docg4 commit
spi-nor: add support to non-uniform SFDP SPI NOR flash memories commit
spi-nor: intel-spi: Add support for Intel Ice Lake SPI serial flash commit
12.18. Industrial I/O (iio)
adc: Add QCOM SPMI PMIC5 ADC driver commit
adc: add support for mcp3911 commit
adc: sc27xx: Add raw data support commit
adxl372: New driver for Analog Devices ADXL372 Accelerometer commit
dac: add support for ltc1660 commit
imu: st_lsm6dsx: add support to LSM6DSO commit
proximity: Add driver support for ST's VL53L0X ToF ranging sensor commit
tsl2772: add support for avago,apds9930 commit
adxl372: Add filter bandwidth support commit
adxl372: Add sampling frequency support commit
12.19. Inter-Integrated Circuit (I2C)
Add i2c bus driver for NVIDIA GPU commit
12.20. Hardware monitoring (hwmon)
nct6775: Add support for NCT6798D commit
nct6775: Add support for NCT6797D commit
lm75: Add MAX31725/6 support commit
pmbus/ltc2978: Add support for LTM4686 uModule commit
12.21. General Purpose I/O (gpio)
12.22. Leds
Introduce LED pattern trigger commit
sc27xx: Add pattern_set/clear interfaces for LED controller commit
add Panasonic AN30259A support commit
12.23. DMA engines
dma-jz4780: Add support for the JZ4725B SoC commit
dma-jz4780: Add support for the JZ4740 SoC commit
dma-jz4780: Add support for the JZ4770 SoC commit
dw: Add alternative ACPI HIDs for Cherry Trail DMA controllers commit
owl: Add Slave and Cyclic mode support for Actions Semi Owl S900 SoC commit
12.24. Cryptography hardware acceleration
cavium/nitrox: Added support for SR-IOV configuration commit
cavium/nitrox: add support for per device request statistics commit
cavium/nitrox: added support to identify the NITROX device partname commit
cavium/nitrox: updated debugfs information commit
ccp: add timeout support in the SEV command commit
s5p-sss: Add aes-ctr support commit
12.25. PCI
P2PDMA: Support peer-to-peer memory. Recommended LWN article: Device-to-device memory-transfer offload with P2PDMA. commit, commit
imx: Add PME_Turn_Off support commit
imx: Initial imx7d pm support commit
12.26. Non-Transparent Bridge (NTB)
idt: Add basic hwmon sysfs interface commit
12.27. Clock
Add Ingenic jz4725b CGU driver commit
actions: Add Actions Semi Owl SoCs Reset Management Unit support commit
actions: Add Actions Semi S700 SoC Reset Management Unit support commit
actions: Add Actions Semi S900 SoC Reset Management Unit support commit
at91: add at91sam9260 PMC driver commit
at91: add at91sam9rl PMC driver commit
at91: add at91sam9x5 PMCs driver commit
at91: add sama5d2 PMC driver commit
at91: add sama5d4 pmc driver commit
qcom: Add Global Clock controller (GCC) driver for SDM660 commit
qcom: Add HFPLL driver commit
qcom: Add KPSS ACC/GCC driver commit
qcom: Add Krait clock controller driver commit
qcom: Add camera clock controller driver for SDM845 commit
qcom: Add support for Krait clocks commit
qcom: Add support for RCG to register for DFS commit
qcom: gcc: Add global clock controller driver for QCS404 commit
renesas: cpg-mssr: Add r8a774a1 support commit
renesas: r8a7743: Add r8a7744 support commit
c-sky: Add C-SKY SMP timer commit
c-sky: Add gx6605s SOC system timer commit
Add ZynqMP clock driver commit
12.28. Firmware
dcdbas: Add support for WSMT ACPI table commit
imx: add SCU firmware driver support commit
imx: add misc svc support commit
meson_sm: Add serial number sysfs entry commit
xilinx: Add Zynqmp firmware driver commit
xilinx: Add debugfs for query data API commit
xilinx: Add debugfs interface commit
xilinx: Add zynqmp IOCTL API for device control commit
12.29. IOMMU
arm-smmu-v3: Add support for non-strict mode commit
arm-smmu: Support non-strict mode commit
dma: Add support for non-strict mode commit
io-pgtable-arm-v7s: Add support for non-strict mode commit
io-pgtable-arm: Add support for non-strict mode commit
vt-d: Add debugfs support for Interrupt remapping commit
vt-d: Add debugfs support to show context internals commit
vt-d: Add debugfs support to show register contents commit
vt-d: Enable base Intel IOMMU debugfs support commit
Add "iommu.strict" command line option commit
12.30. PHY
Add driver for Cadence MHDP DisplayPort SD0801 PHY commit
add Rockchip Innosilicon hdmi phy commit
phy-pxa-usb: add a new driver commit
socionext: add PCIe PHY driver support commit
12.31. IRQ chip
irq-mvebu-icu: Add support for System Error Interrupts (SEI) commit
irq-mvebu-sei: Add new driver for Marvell SEI commit
add C-SKY APB bus interrupt controller commit
add C-SKY SMP interrupt controller commit
12.32. Various
eeprom: New ee1004 driver for DDR4 memory commit
gsmi: Add GSMI commands to log S0ix info commit
remoteproc: qcom: Introduce Non-PAS ADSP PIL driver commit
reset: qcom: PDC Global (Power Domain Controller) reset controller commit
slimbus: core: add support to uevent commit
soundwire: Add support for multi link bank switch commit
13. List of merges
14. Other news sites
LWN's merge window part 1, part 2, Development statistics
heise.de (German): Linux 4.20 freigegeben: Performance-Optimierungen und neue Treiber