13447
Comment:
|
880
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
The purpose of this page is tracking and explaining the features added in every release, just like the [http://wiki.dragonflybsd.org/index.php/DragonFly_Status Dragonfly people did]. | #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: |
It'd be nice if kernel hackers would spend some minutes adding their stuff here. The one place where you can find a comparable changelog are the fabulous LWN kernel articles: http://lwn.net/Kernel/, or the [http://lwn.net/Articles/driver-porting/ driver porting guide] - but there's no reason why the kernel community shouldn't embrace and extend those efforts ;) | You can discuss the latest Linux kernel changes on the [[http://forum.kernelnewbies.org/list.php?4|New Linux Kernel Features Forum]]. |
Line 5: | Line 7: |
TODO: * Import relevant data from [http://www.codemonkey.org.uk/post-halloween-2.5.txt davej's post halloween document] * Keep track of what gets changed * Import [http://kernelnewbies.org/status/latest.html Kernelnewbies status] list (done - some "post-2.6.0" stuff perhaps) 2.6.14: 2.6.13: * x86 now uses the generic PCI bus setup code for assigning unassigned resources * [http://lwn.net/Articles/104343/ inotify] * Support for the Xtensa architecture: [http://www.tensilica.com/products/xtensa_architecture.htm 32-bit architecture] used in embedded devices * [http://lwn.net/Articles/108595/ 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/135472/ 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/145973/ build-time configurable clock interrupt frequency]: * [http://lwn.net/Articles/143474/ Improved CFQ IO scheduler] * Voluntary preemption patches * Removal of the devfs configuration option 2.6.12: * [http://lwn.net/Articles/140164/ API changes] * New driver for the "trusted computing" (TPM) crap^Wchip * [http://www.superh.com/products/shyway.htm SuperHyway bus support] * Multilevel security implementation for SELinux * [http://lwn.net/Articles/124703/ device mapper multipath support] * [http://lwn.net/Articles/121845/ Address space randomization] * Restore the Philips webcam driver * I/O barrier support for serial ATA drives * [http://lwn.net/Articles/134460/ "resource limits"] * [http://lwn.net/Articles/127936/ cpusets] * Remove IPV6 "experimental" status 2.6.11: 2.6.10: 2.6.9: 2.6.8: 2.6.7: 2.6.6: * [http://lwn.net/Articles/80472/ full object-based reverse-mapping scheme and removal of the per-page PTE chains] * Network packet timestamping optimization * [http://www.geocities.com/wronski12/posix_ipc/index.html POSIX message queues] * Message queues for the x86_64 and s390 architectures * fsync() and fdatasync() speed improvements to ext2/3 * [http://lwn.net/Articles/77190/ addition of the fcntl() method to the file_operations structure] * [http://lwn.net/Articles/65437/ "Laptop Mode"] * 4KB kernel stacks option for the i386 architecture * Non-executable stack support for several architectures * Reiserfs updates: data=ordered support, space preallocation, laptop mode support * IPv6 support in SELinux * [http://lwn.net/Articles/79326/ The lightweight auditing framework] * A mechanism which allows block drivers to respond to queries about the congestion state of their queues * [http://lwn.net/Articles/75233/ "per-device unplugging patch"] * CFQ scheduler * External module support 2.6.5: * Netpoll infrastructure 2.6.4: * HFS rewrite 2.6.3: 2.6.2: 2.6.1: 2.6.0: 2.6.0-test9: * [http://lwn.net/Articles/44243/ libata driver architecture] 2.6.0-test6: * [http://marc.theaimsgroup.com/?l=linux-kernel&m=104344596912094&w=2 32-bit dev_t] 2.6.0-test3: * [http://www.nsa.gov/selinux/index.html SELinux] 2.6.0-test1: * [http://www.linuxvirtualserver.org/ Linux Virtual Server layer] 2.5.75: * [http://marc.theaimsgroup.com/?l=linux-mm&m=104529418208788&w=2 Anticipatory Scheduler] 2.5.74: 2.5.73: 2.5.72: 2.5.71: * [http://marc.theaimsgroup.com/?l=linux-kernel&m=104981044405395&w=2 Switch the IDE I/O layers to taskfile] 2.5.70: * [http://www.linux-usb.org/gadget USB gadget support] 2.5.69: * [http://lwn.net/Articles/29555/ New interrupt handling API] 2.5.68: 2.5.67: 2.5.66: 2.5.65: * [http://www.kerneltrap.org/node.php?id=603 Desktop Interactivity Improvements] 2.5.64: 2.5.63: * [http://high-res-timers.sourceforge.net/ POSIX timers] 2.5.62: * [http://lse.sourceforge.net/locking/dcache/dcache_lock.html Avoid dcache_lock while path walking] 2.5.61: 2.5.60: * New modversions implementation * 64-bit jiffies 2.5.59: * [http://home.arcor.de/efocht/sched/ NUMA aware scheduler extensions] 2.5.68: 2.5.57: * [http://www.zipworld.com.au/~akpm/linux/schedlat.html Remove long-held locks for low scheduling latency] 2.5.56: 2.5.55: 2.5.54: * [http://secure.netroedge.com/~lm78/ Add lm-sensors drivers for hardware health monitoring] * Support for AGP 3.0 2.5.53: * "sysenter" support 2.5.52: 2.5.51: * [http://linuxconsole.sourceforge.net/ Rewrite of the console layer] * Compatibility syscall layer 2.5.50: 2.5.49: 2.5.48: * [http://lists.insecure.org/lists/linux-kernel/2002/Oct/6214.html In-kernel module loader] 2.5.47: * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0204.1/0429.html Zerocopy NFS] 2.5.46: * [http://www.xmailserver.org/linux-patches/nio-improve.html Better I/O performance with epoll] * Per-cpu hot & cold page lists * [http://lists.insecure.org/lists/linux-kernel/2002/Oct/7027.html MMU-less processor support (ucLinux)] * [http://marc.theaimsgroup.com/?l=linux-kernel&m=101095500820185&w=2 Replace initrd by initramfs] * Extended Attributes and ACLs for ext2/ext3 2.5.45: * [http://www.xs4all.nl/~zippel/lc/ New Linux configuration system: kconfig] * [http://samba.org/~jamesm/crypto/ CryptoAPI] * [ftp://ftp.linux-ipv6.org/pub/usagi/patch/ipsec/ IPSEC] * [http://www.linuxtv.org/dvb/ Digital Video Broadcasting (DVB) layer] * [http://www.sistina.com/products_lvm.htm Device mapper for Logical Volume Manager (LVM2)] 2.5.44: * New sysfs filesystem (formerly known as driverfs) * Plug'N Play Layer Rewrite * [http://lwn.net/Articles/9042/ x86 BIOS Enhanced Disk Device (EDD) polling] 2.5.43: * [http://www.psc.edu/general/filesys/afs/ Andrew File System (AFS) support] * [http://oprofile.sourceforge.net/ OProfile, a low-overhead profiler] * [http://lse.sourceforge.net/locking Read-Copy Update (RCU) Mutual Exclusion] * [http://www.citi.umich.edu/projects/nfsv4/ Add support for NFS v4] * Remove kiobufs 2.5.42: * [http://marc.theaimsgroup.com/?l=linux-kernel&m=103298446916066&w=2 ext2/ext3 large directory support: HTree index] * [http://us1.samba.org/samba/Linux_CIFS_client.html Add new CIFS (Common Internet File System)] * [http://www.gelato.unsw.edu.au/ Remove the 2TB block device limit] * Improved i2o (Intelligent Input/Ouput) layer 2.5.41: 2.5.40: * [http://lse.sourceforge.net/numa Parallelizing page replacement] * [http://lse.sourceforge.net/numa NUMA topology support * [http://www.brodo.de/cpufreq/ Add support for CPU clock/voltage scaling] 2.5.39: * New IO scheduler ("deadline") 2.5.38: 2.5.37: * [http://users.pandora.be/bart.de.schuymer/ebtables/ Ethernet bridge tables support] * Remove the global tasklist 2.5.36: * Hugepage support * [http://oss.sgi.com/projects/xfs/ XFS filesystem from SGI] 2.5.35: * Serial ATA support * [http://user-mode-linux.sourceforge.net/index.html Add User-Mode Linux (UML)] 2.5.34: * POSIX threading support for signals * [http://lse.sourceforge.net/numa discontigmem support (ia32)] 2.5.33: * TCP segmentation offload * [http://www.sf.net/projects/lksctp SCTP (Stream Control Transmission Protocol)] 2.5.32: * [http://people.redhat.com/drepper/nptl-design.pdf Improved POSIX threading support] * [http://freshmeat.net/projects/linux-aio/ Asynchronous IO (aio) support] * Porting all input devices over to input API * New MTRR (Memory Type Range Register) driver 2.5.31: * Support insane number of processes * Disk description cleanups * Remove incomplete SPX network stack 2.5.30: * Remove khttpd 2.5.29: * Strict address space accounting * [http://lsm.immunix.org/ Add Linux Security Module (LSM)] * [http://people.redhat.com/mingo/tls-patches/ Thread-Local Storage (TLS) support] 2.5.28: * Remove the "Big IRQ lock" * Serial driver restructure 2.5.27: * [http://surriel.com/patches/ New VM with reverse mappings] 2.5.26: * Direct pagecache <-> BIO disk I/O 2.5.25: * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0207.0/0741.html Faster internal kernel clock frequency] * Unified naming for disk devices 2.5.24: 2.5.23: * [http://www.kernel.org/pub/linux/kernel/people/rusty/patches/Hotcpu/ Hotplug CPU support] * [http://bazar.conectiva.com.br/~acme/patches/wip More complete IEEE 802.2 stack] 2.5.22: 2.5.21: 2.5.20: 2.5.19: 2.5.18: * [http://falcon.sch.bme.hu/~seasons/linux/swsusp.html Software suspend (to disk & RAM)] * ->getattr() ->setattr() ->permission() changes 2.5.17: * Move ISDN4Linux to CAPI based interface * [http://marc.theaimsgroup.com/?l=linux-fsdevel&m=101586205801483&w=2 New quota system supporting plugins] 2.5.16: 2.5.15: 2.5.14: * Bluetooth support (no longer experimental!) * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0204.1/1250.html Support for IDE TCQ (Tagged Command Queueing)] 2.5.13: 2.5.12: * Rewrite of the buffer layer 2.5.11: * Rewrite of the framebuffer layer * [http://www.ussg.iu.edu/hypermail/linux/kernel/0204.3/0129.html Fast walk dcache] * [http://linux-ntfs.sourceforge.net/ Replace old NTFS driver with NTFS TNG driver] 2.5.10: 2.5.9: * Smarter IRQ balancing 2.5.8: * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0204.1/0215.html Radix-tree pagecache] * [http://www.kernel.org/pub/linux/kernel/people/rml/cpu-affinity Syscall interface for CPU task affinity] 2.5.7: * [http://sourceforge.net/projects/acpi/ ACPI (Advanced Configuration & Power Interface)] * [ftp://robur.slu.se/pub/Linux/net-development/NAPI/ NAPI network interrupt mitigation] * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0203.0/0884.html Futexes (Fast Lightweight Userspace Semaphores] * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0203.0/0335.html Video for Linux (V4L) redesign] * [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html New driver API for Wireless Extensions] 2.5.6: * [http://www.hojdpunkten.ac.se/054/samba/ http://www.hojdpunkten.ac.se/054/samba/] * [http://www.cs.helsinki.fi/linux/linux-kernel/2002-01/0438.html HDLC (High-level Data Link Control) update] * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0202.2/0920.html per_cpu infrastructure] * [http://www-124.ibm.com/jfs/ Add JFS (Journaling FileSystem from IBM)] * Killing kdev_t for block devices 2.5.5: * [http://linuxppc64.org/ New architecture: PowerPC 64-bit (ppc64)] * [http://www.x86-64.org/ New architecture: AMD 64-bit (x86-64)] * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0202.2/0297.html Pagetables in highmem support] * [http://www.alsa-project.org/ Add ALSA (Advanced Linux Sound Architecture] 2.5.4: * [http://www-124.ibm.com/developerworks/oss/pthreads/ Support for Next Generation POSIX Threading] * [ftp://ftp.kernel.org/pub/linux/kernel/people/rml/preempt-kernel/ Add preempt kernel option] * Per network protocol slabcache & sock.h * [http://marc.theaimsgroup.com/?l=linux-kernel&m=100942323913586&w=2 Per filesystem slabcache & fs.h] 2.5.3: * [http://kernel.org/pub/linux/kernel/people/mochel/doc/ New driver model & unified device tree] * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0109.3/1341.html PnP BIOS driver] * [http://www.geocrawler.com/mail/msg.php3?msg_id=7686796&list=35 Generic Extended Attribute support] * [http://marc.theaimsgroup.com/?l=linux-kernel&m=101077476005939&w=2 Support reiserfs external journal] * [http://marc.theaimsgroup.com/?l=linux-kernel&m=101121711408999&w=2 IDE layer update] * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0202.0/0260.html Untangle sched.h & fs.h include dependancies] * [http://www.geocrawler.com/lists/3/Linux/35/100/7642826/ Break Configure.help into multiple files] 2.5.2: * [http://marc.theaimsgroup.com/?l=linux-kernel&m=100992347220716&w=2 New kernel device structure (kdev_t)] * [http://people.redhat.com/mingo/O(1)-scheduler/ O(1) scheduler for improved scalability] * [http://marc.theaimsgroup.com/?l=linux-fsdevel&m=98307457705210&w=2 Filesystem per-process namespaces, late-boot cleanups] * [http://www.linux-usb.org/usb2.html Initial support for USB 2.0] 2.5.1: * Rewrite of the block IO (bio) layer |
<<Include(Linux_5.9)>> |
Changes done in each Linux kernel release. Other places to get news about the Linux kernel are LWN kernel status, H-Online, or the Linux Kernel mailing list (there is a web interface in www.lkml.org). List of changes of older releases can be found at LinuxVersions. If you're going to add something here look first at LinuxChangesRules!
You can discuss the latest Linux kernel changes on the New Linux Kernel Features Forum.
Linux 5.9 has been released on Sun, 11 Oct 2020.
Summary: This release implements better management of anonymous (malloc'ed) memory; a new cgroup slab controller that improves slab utilization by allowing memory cgroups to share slab memory; support for proactive memory defragmentation; CPU Capacity awareness for the deadline scheduling class; support for running BPF programs on socket lookups; new close_range() system call for easier closing of entire ranges of file descriptors, support for FSGSBASE x86 instructions that provide faster context switching, NFS support for extended attributes; and support for ZSTD compressed kernel, ramdisk and initramfs. As always, there are many other new drivers and improvements.
Contents
-
Prominent Features
- Better management of anonymous memory
- New cgroup slab controller shares slab memory
- Proactive memory compaction
- New close_range() system call for easier closing of file descriptors
- Support for running BPF programs on socket lookups
- CPU Capacity awareness for the deadline scheduling class
- Faster context switch with supports FSGSBASE x86 instructions
- NFS support for extended attributes
- Support for ZSTD compressed kernel, ramdisk and initramfs
- Core (various)
- File systems
- Memory management
- Block layer
- Tracing, perf and BPF
- Virtualization
- Security
- Networking
- Architectures
-
Drivers
- Graphics
- Power Management
- Storage
- Drivers in the Staging area
- Networking
- Audio
- Tablets, touch screens, keyboards, mouses
- TV tuners, webcams, video capturers
- Universal Serial Bus / Thunderbolt
- Serial Peripheral Interface (SPI)
- Watchdog
- Serial
- CPU Frequency scaling
- Device Voltage and Frequency Scaling
- Voltage, current regulators, power capping, power supply
- Real Time Clock (RTC)
- Pin Controllers (pinctrl)
- MultiMediaCard (MMC)
- Memory Technology Devices (MTD)
- Industrial I/O (iio)
- Multi Function Devices (MFD)
- Pulse-Width Modulation (PWM)
- Inter-Integrated Circuit (I2C + I3C)
- Hardware monitoring (hwmon)
- General Purpose I/O (gpio)
- LEDs
- DMA engines
- Hardware Random Number Generator (hwrng)
- Cryptography hardware acceleration
- PCI
- Clock
- PHY ("physical layer" framework)
- Memory Controller Drivers
- Firmware Drivers
- Remote Processors
- Various
- List of Pull Requests
- Other news sites
1. Prominent Features
1.1. Better management of anonymous memory
This release implements better workload detection and protection of anonymous memory (memory that is not file-backed, ie. malloc'ed memory). The Linux kernel manages the memory of anonymous memory placing its pages in either the active list or inactive list. Under memory pressure, unused pages are moved from the active to the inactive list and unmapped, giving them a chance of being referenced again (aka: soft fault) before being moved to swap, if there is more pressure.
In the previous implementation, newly created or swap-in pages were placed on the active list, which could force actively used pages to the inactive list. In this release, newly created or swap-in anonoymous pages are started in the inactive list (thus protecting existing hot workloads), and only promoted to the active list when they are referenced enough. Aditionally, because this change can also cause newly created or swap-in anonymous pages to swap-out existing pages in the inactive list, the existing workingset detection mechanisms have been extended to deal with the anonymous LRU list to make more optimal decisions.
1.2. New cgroup slab controller shares slab memory
The cgroup slab memory controller was based on the idea of replicating slab allocator internals for each memory cgroup, so those cgroups didn't share slab memory, which lead to low slab utilization and higher slab memory usage. The slab controller used to be an opt-int feature, but today it's enabled by default in the memory controller, and modern systems with systemd create many cgroups, so these ineffiencies affect many people.
This release incorporats a new cgroup slab memory controller that allows to share slab memory between memory cgroups. For Facebook, it saved significant amount of memory, measured from high hundreds of MBs to single GBs per host; on average the size of slab memory was reduced by 35-45%. Desktop systems also benefit: on a 16GB Fedora system, the new slab controller saves ~45-50% of slab memory, measured just after loading of the system.
1.3. Proactive memory compaction
Huge Pages (ie. pages bigger than 4KB on x86) are a processor feature that can improve performance due to reduced TLB usage. Making use of these pages requires having large amounts of contiguous free memory, which can difficult to obtain when memory is heavily fragmented. Linux supports memory compaction (ie. defragmentation), but it is only triggered when a huge page needs to be allocated, which can take time and hence hurts allocation latency. This release adds support for proactive memory compaction, that is, automatically triggering memory compaction before doing any allocation, so that future allocations can succeed faster.
Recommended LWN article: Proactive compaction for the kernel
1.4. New close_range() system call for easier closing of file descriptors
This release incorporates a new system call, close_range(2). It allows to efficiently close a range of file descriptors up to all file descriptors of a calling task. Eg, close_range(3, ~0U); will close all descriptors past stderr. It turns out, quite a bunch of projects need to do exactly that: service managers, libcs, container runtimes, programming language runtimes/standard libraries (Rust/Python). This system call has been coordinated with FreeBSD, so it is also available there.
1.5. Support for running BPF programs on socket lookups
As with every new version, there are many improvements to BPF. An interesting new feature is a new BPF program type named BPF_PROG_TYPE_SK_LOOKUP, which runs when transport layer is looking up a listening socket for a new connection request (TCP), or when looking up an unconnected socket for a packet (UDP). This serves as a mechanism to overcome the limits of the bind() API. Two use-cases driving this work are: 1) steer packets destined to an IP range, fixed port to a single socket, 2) steer packets destined to an IP address, any port to a single socket.
1.6. CPU Capacity awareness for the deadline scheduling class
Since Linux 3.14 the Linux task scheduler supports a deadline scheduling class, designed around real-time concepts for applications that need strict time requirements. This scheduling class was not aware of the existence of heterogeneous platforms where CPUs have not the same performance (ie. ARM big.LITTLE), which leads to wrong scheduling decisions. This release makes the deadline class aware of the capacity of each CPU.
Recommended LWn article: Capacity awareness for the deadline scheduler
1.7. Faster context switch with supports FSGSBASE x86 instructions
The FSGSBASE instructions are an Intel feature that has been available for a long time. They allow direct access to the FS and FS segment base registers. In addition to benefits to applications, performance improvements to the OS context switch code are possible by making use of these instructions
Recommended LWN article: A possible end to the FSGSBASE saga
1.8. NFS support for extended attributes
This release incorporates support for extended attributes (RFC 8276), which bridges one of the most relevant gaps in NFS.
1.9. Support for ZSTD compressed kernel, ramdisk and initramfs
This release adds support for a ZSTD-compressed kernel, ramdisk, and initramfs in the kernel boot process (ZSTD-compressed ramdisk and initramfs are supported on all architectures, the ZSTD-compressed kernel is only hooked up to x86 for now). ZSTD offers good compression rates and very high decompression speeds. When Facebook switched from a xz compressed initramfs to a zstd compressed initramfs decompression time shrunk from 12 seconds to 3 seconds. When they switched from a xz compressed kernel to a zstd compressed kernel they saved 2 seconds of boot time.
2. Core (various)
- Task scheduler
(FEATURED) CPU Capacity awareness for SCHED_DEADLINE class, which now attempts to avoid missing task deadlines due to smaller CPU (e.g. big.LITTLE systems) not being capable enough to finish a task in time. This is only supported for now in the idle scenario commit, commit, commit, commit, commit
uclamp: Add a new sysctl to control RT default boost value. On battery powered devices, it is desired to control this default (currently hardcoded) behavior at runtime to reduce energy consumed by RT tasks commit, commit
fanotify: report events with names. With these you can now efficiently monitor whole filesystem, eg to mirror changes to another machine. Two new group flags: FAN_REPORT_NAME, which reports the parent fid and name for directory entry modification events (create/detete/move) and for events on non-directory objects; and FAN_REPORT_DIR_FID which report unique directory id in some cases commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
(FEATURED) Add close_range() syscall. It allows to efficiently close a range of file descriptors up to all file descriptors of a calling task, which is something done by many pieces of software. Eg, close_range(3, ~0U); will close all descriptors past stderr commit, commit, commit, commit
(FEATURED) Add support for zstd compressed initrd and kernel commit, commit, commit, commit, commit, commit, commit, commit
Add the missing support for attaching to time namespaces via pidfds by supporting CLONE_NEWTIME with setns() commit, commit, commit, commit
- io_uring
- seccomp
Add EPOLLHUP support for SECCOMP_RET_USER_NOTIF to more easily detect the death of a monitored process commit, commit, commit, commit, commit
Add seccomp "addfd" notifier ioctl. It is a way for a seccomp user_notif process manager to inject files into the managed process in order to handle emulation of various fd-returning syscalls across security boundaries. Containers folks and Chrome are in need of the feature commit, commit, commit, commit, commit, commit, commit, commit, commit
Report number of loaded filters in /proc/$pid/status commit
speakup screen reader (video console for blind people): Move out of staging commit
- Power management
Make the Energy Model cover non-CPU devices. It will unify the power model for thermal subsystem. It will make simpler to add support for new devices willing to use more advanced features (like Intelligent Power Allocation) commit, commit, commit, commit, commit, commit, commit, commit
Emit changed uevent on wakeup_sysfs_add/remove commit
gcc-plugins/stackleak: improvements of the stackleak gcc plugin commit, commit, commit, commit
kasan: support stack instrumentation for tag-based mode commit, commit, commit, commit, commit
bootconfig: Add value override operator commit, commit, commit
- driver core
Remove system call sys_sysctl commit
initrd: remove support for multiple floppies commit
Makefile: add debug option to enable function aligned on 32 bytes commit
kdump: append kernel build-id string to VMCOREINFO commit
Generic implementation of common syscall, interrupt and exception entry/exit functionality commit, commit, commit, commit, commit
seqlocks: merge preparatory changes/cleanups for the 'associated locks' facilities commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
3. File systems
- Btrfs
Introduce new rescue mount option to group all existing mount options for recovery. usebackuproot is an alias for rescue=usebackuproot and nologreplay is an alias for rescue=nologreplay commit
Better fsync() performance (12% decrease on max latency reported by dbench) commit, commit, commit, commit
Massive speed up of parallel fsync by reducing number of checksum tree lookups and contention, the improvements start to show up with 2 tasks with +20% throughput and -16% runtime up to 64 with +200% throughput and -66% runtime commit, commit, commit
Speed up parallel fsync of files with reflinked/deduped extents, with jobs 16 to 1024 the throughput gets improved roughly by 50% on average and runtime decreased roughly by 30% on average commit
Prefetch chunck tree leaves at mount (can improve mount speed in multi-TB file systems) commit
FS_INFO ioctl enhancements: add flags to request/describe newly added items, add item with numeric checksum type and checksum size to deal with new checksum types, add item with the file system generation, add item with the metadata UUID commit, commit, commit
qgroup: export qgroups in sysfs commit
Start deprecation of mount option inode_cache commit
Remove deprecated mount option subvolrootid commit
Remove deprecated mount option alloc_start commit
sysfs: add bdi link to the fsid directory commit
- XFS
Rework inode flushing to make inode reclaim fully asynchronous 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
Support that ioctl(SETXFLAGS/GETXFLAGS) can set/get inode DAX commit
- ext4
- F2FS
- NFS
(FEATURED) NFS v4.2 User xattr support (RFC 8276), Server side commit, commit, commit, commit, commit, commit, commit, commit, commit, Client side commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Allow applications to speed up readdir+statx() using AT_STATX_DONT_SYNC commit
- UBIFS
Add option to specify version for new file systems commit
- ZONEFS
Add support for zone capacity to zonefs. For devices which expose a zone capacity that is different to the zone's size, the maximum zonefs file size will be set to the zone's (usable) capacity, not the zone size commit
- Ceph
- AFS
Expose information from afs_vlserver through /proc for debugging commit
- DLM
4. Memory management
(FEATURED) Implement workingset protection and detection on the anonymous LRU page list. In the previous implementation, newly created or swap-in anonymous (ie. malloc'ed) page were started on the active list, which can demote pages being actively used to the inactive list. In this release, newly created or swap-in anonoymous pages are started in the inactive list, and only promoted to the active list when they are referenced enough. Aditionally, because these changes can cause newly created or swap-in anonymous pages to swap-out existing pages in the inactive list, workingset detection has been extended to deal with the anonymous LRU list to make more optimal decisions commit, commit, commit, commit, commit, commit
(FEATURED) New cgroup slab memory controller. It allows to share slab pages between memory cgroups. This leads to a significant win in the slab utilization (up to 45%) and the corresponding drop in the total kernel memory footprint. The reduced number of unmovable slab pages should also have a positive effect on the memory fragmentation commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
(FEATURED) Proactive compaction, instead of on-demand. A new sysctl, vm.compaction_proactiveness, is added which dictates bounds for external fragmentation which kcompactd tries to maintain commit
Transparent Huge Pages in the page cache, preparation patches commit, commit, commit, commit, commit, commit, commit
- SLUB
Extend the slub_debug boot parameter syntax so that multiple blocks of either global or slab-specific options can be specified, with blocks delimited by ';' commit
Reduce slub_debug overhead in cases where it's compiled in but not enabled during boot, with a static key commit, commit, commit, commit
Make some sysfs attributes read only commit, commit, commit, commit
vmstat: new VM events which will help in validating THP migration without split commit
vmstat: Add pgreuse counter, measures when a page is reused for COW commit
Make updates to vm_committed_as stat more scalable commit, commit, commit, commit
memcg: Add percpu memory accounting to memory cgroups commit, commit, commit, commit, commit
tmpfs: To reduce risk of inode number overflows in tmpfs, make inode numbers per-superblock and add inode64 support commit, commit
5. Block layer
fscrypt: Adds support for Inline Encryption using inline encryption hardware. Now when an ext4 or f2fs filesystem is mounted with '-o inlinecrypt', the contents of encrypted files will be encrypted/decrypted via blk-crypto, instead of directly using the crypto API. This model allows taking advantage of the inline encryption hardware that is integrated into the UFS or eMMC host controllers on most mobile SoCs commit, commit, commit, commit, commit, commit, commit, commit
bcache: extent bucket_size from 16bit to 32bit width. This is the code base for next step to use zoned device as cache device commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Export max open zones and max active zones to sysfs commit, commit
blk-cgroup: show global disk stats in root cgroup io.stat commit
- Device mapper
- md
6. Tracing, perf and BPF
- BPF
Add a text poke event to record changes to kernel text (i.e. self-modifying code) in order to support tracers like Intel PT decoding through jump labels, kprobes and ftrace trampolines commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
(FEATURED) Add a new BPF program type named BPF_PROG_TYPE_SK_LOOKUP, which runs when transport layer is looking up a listening socket for a new connection request (TCP), or when looking up an unconnected socket for a packet (UDP). This serves as a mechanism to overcome the limits of the bind() API. Two use-cases driving this work are: 1) steer packets destined to an IP range, fixed port to a single socket, 2) steer packets destined to an IP address, any port to a single socket commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
XDP link: Following cgroup and netns examples, implement bpf_link support for XDP commit, commit, commit, commit, commit, commit, commit, commit, commit
Add BPF_CGROUP_INET_SOCK_RELEASE hook. Sometimes it's handy to know when the socket gets freed. In particular, we'd like to try to use a smarter allocation of ports for bpf_bind and explore the possibility of limiting the number of SOCK_DGRAM sockets the process can have commit, commit, commit, commit
Add support of SO_KEEPALIVE flag and TCP related options to bpf_setsockopt() routine. This is helpful if we want to enable or tune TCP keepalive for applications which don't do it in the userspace code commit
Add d_path helper - preparation changes commit, commit, commit, commit, commit, commit, commit, commit, commit
Add new BPF link operation that allows processes with BPF link FD to force-detach it from respective BPF hook, similarly how BPF link is auto-detached when such BPF hook (e.g., cgroup, net_device, netns, etc) is removed. This facility allows admin to forcefully undo BPF link attachment, while process that created BPF link in the first place is left intact. Once force-detached, BPF link stays valid in the kernel as long as there is at least one FD open against it commit, commit, commit, commit, commit
Expose socket storage to BPF_PROG_TYPE_CGROUP_SOCK commit
Implement bpf iterator for map elements. User can have a bpf program in kernel to run with each map element, do checking, filtering, aggregation, modifying values etc. without copying data to user space commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Iterator for tcp and udp sockets. This gives great flexibility for users to examine kernel data structure without using e.g. /proc/net commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Introduces a new helper bpf_get_task_stack() commit, commit, commit, commit
Make BPF CGROUP_STORAGE map usable by different programs at once commit, commit, commit, commit, commit
Support access to bpf map fields commit, commit, commit, commit, commit
Introduce the capability to attach and run a XDP program to CPUMAP entries. The idea behind this feature is to add the possibility to define on which CPU run the eBPF program if the underlying hw does not support RSS commit, commit, commit, commit, commit, commit, commit, commit, commit
libbpf: Add generic and raw BTF parsing APIs to libbpf commit, commit, commit
libbpf: ksym support and bpftool show PIDs commit, commit, commit, commit, commit, commit, commit, commit, commit
libbpf: Support disabling auto-loading BPF programs commit, commit
- perf
Enhance the perf ftrace functionality so that we can make full use of kernel ftrace with perf. Two classes of changes are added: usability of existing functions is improved, and new options to support all other ftrace functions commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- Support 'start disabled', 'enable' and 'disable' external control commands which can be provided for stat and record modes of the tool from an external controlling process. 'start disabled' command can be used to postpone enabling of events in the beginning of a monitoring session. 'enable' and 'disable' commands can be used to enable and disable events correspondingly any time after the start of the session. The 'start disabled', 'enable' and 'disable' external control commands can be used to focus measurement on specially selected time intervals of workload execution. Focused measurement reduces tool intrusion and influence on workload behavior, reduces distortion and amount of collected and stored data, mitigates data accuracy loss because measurement and data capturing happen only during intervals of interest
Support enable and disable commands in stat and record modes commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
perf bench: Add basic syscall benchmark commit
Add support to convert and store time of day in CTF data conversion for 'perf data convert' subcommand. New --tod option is added to 'perf data convert' subcommand to convert data with timestamps converted to wall clock time commit
perf tests: Add metrics tests commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Proper cap_user_time* support commit, commit, commit, commit, commit, commit, commit
7. Virtualization
virt: vbox: Add support for the new VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl commit, commit, commit, commit
8. Security
capabilities: Introduce CAP_CHECKPOINT_RESTORE, a new security capability that facilitates using checkpoint/restore by non-root users commit, commit, commit, commit, commit, commit, commit
audit: log nftables configuration change events commit
ima: extends the supported IMA rule conditionals for the KEXEC_CMDLINE hook function commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Allow using Clang's zero initialization for stack variables commit
selinux: allow reading labels before policy is loaded commit
Make TPM2 logs accessible for non-UEFI firmware commit, commit
9. Networking
- TCP
Improve handling of DSACK covering multiple segments (add new SNMP counter) commit, commit
Add the earliest departure time of the timestamped skb to SCM_TIMESTAMPING_OPT_STATS. By tracking EDT values of the skb from different timestamps, we can observe when and how much the value changed. This allows to measure the precise delay injected on the sender host e.g. by a bpf-base throttler commit
Segmentation offload: expand to UDP support commit, commit, commit, commit, commit
multipath: add full DATA_FIN support at connection shutdown / close commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
multipath: Add REUSEADDR/REUSEPORT/V6ONLY setsockopt support commit, commit, commit
multipath: Add syn cookie support commit, commit, commit, commit, commit, commit, commit, commit, commit
multipath: introduce basic mptcp sockets diag support commit, commit, commit, commit
Support PMTU discovery with bridged UDP tunnels commit, commit, commit, commit, commit, commit
geneve: adds transport ports information for route lookup so that IPsec can select Geneve tunnel traffic to do encryption. This is needed for OVS/OVN IPsec with encrypted Geneve tunnels commit
- Netfilter
Introduce support for reject at prerouting stage commit
Extend the nftables netlink API to support for anonymous non-base chains. Anonymous non-base chains have two properties: 1) The kernel dynamically allocates the (internal) chain name, 2) If the rule that refers to the anonymous chain is removed, then the anonymous chain and its content is also released commit, commit, commit, commit, commit, commit, commit
Add extended netlink error reporting for expression commit
- Bluetooth
Add support for Advertisement Monitor API. The commands and events added are: Read Advertisement Monitor Feature, Add Advertisement Pattern Monitor, Remove Advertisement Monitor, Advertisement Monitor Added event, Advertisement Monitor Removed event commit, commit, commit, commit, commit, commit, commit
Add functionality to disable and remove advertising instances, and use that functionality in MGMT add/remove advertising calls commit
Add support for BT_PKT_STATUS CMSG data for SCO connections commit
Adding a configurable autoconnect timeout commit
Add support to enable LL privacy using mgmt with existing set_privacy command commit, commit, commit, commit, commit, commit, commit, commit
Add support for reading and setting default system parameters from userspace. In particular, combined with the userspace changes, allows platforms to override default system parameters from a main.conf file commit, commit, commit
le_simult_central_peripheral experimental feature which allows a clients to determine if the controller is able to support peripheral and central connections separately and at the same time commit
Add ethtool extended link state commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
batman-adv: Introduce a configurable per interface hop penalty commit
bonding: initial support for hardware crypto offload commit, commit, commit, commit
- bridge
mrp: Add support for interconnect ring. An interconnect ring is a ring that connects 2 rings. In this way is possible to connect multiple rings commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
fdb activity tracking. Adds extensions needed for EVPN multi-homing proper and efficient mac sync commit, commit, commit, commit
mrp: Add support for getting the status commit, commit, commit
- mac80211
DCCP: Add SIOCOUTQ ioctl to get the send buffer fill of a DCCP socket, like UDP and TCP sockets already have commit
- devlink
Expose port split attributes commit, commit, commit, commit, commit, commit, commit, commit, commit
Add devlink-health support for devlink ports commit, commit, commit, commit, commit, commit, commit
Add support for board.serial_number to devlink info_get cb commit
Support get,set mac address of a port function commit, commit, commit, commit, commit, commit, commit, commit, commit
ethtool: add support for 100 Gbps per lane link modes commit
udp_tunnel: add NIC RX port offload infrastructure commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- Packet classifier
Add stream gate action policing in IEEE802.1Qci (Per-Stream Filtering and Policing) software support and hardware offload support in tc flower commit, commit, commit, commit
Introduce qevents. Those are attach points for TC blocks, where filters can be put that are executed as the packet hits well-defined points in the qdisc algorithms. The attached blocks can be shared, in a manner similar to clsact ingress and egress blocks, arbitrary classifiers with arbitrary actions can be put on them, etc commit, commit, commit, commit
sch_cake: add RFC 8622 LE PHB support to CAKE diffserv handling commit
Allow changing default qdisc to FQ-PIE commit
Introduce an extention to the cls flower classifier and allows user to add rules that match on the hash value that is stored in skb->hash while assuming the value was set prior to the classification commit, commit
qos offload add flow status with dropped count commit
Add support for Parallel Redundancy Protocol (PRP) - a network protocol standard for Ethernet that provides seamless failover against failure of any network component - in the Linux HSR driver as defined in IEC-62439-3 commit, commit, commit, commit, commit, commit, commit
- Transformation (IPsec)
Adds a "strict mode" to the Virtual Routing and Forwarding infrastructure (VRF). It imposes that each VRF can be associated to a routing table only if such routing table is not already in use by any other VRF. The strict mode feature is designed to be network-namespace aware and it can be directly enabled/disabled acting on the "strict_mode" parameter commit, commit, commit, commit, commit
Phylink PCS updates commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- rtnetlink
TIPC: update a binding service via broadcast commit
TLS: allow MSG_CMSG_COMPAT in sendmsg commit
XDP: introduce new statistics for af_xdp: drops due to rx ring being full, drops due to fill ring being empty, and failures pulling an item from the tx ring commit, commit, commit
10. Architectures
10.1. ARM
New SoCs
Initial support for two chips made by MStar, a taiwanese SoC manufacturer that became part of Mediatek in 2012. For now, the added support is fairly minimal, with just two of its Cortex-A7 based 32-bit camera chips getting support for a limited set of on-chip peripherals commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Microchip adds support for their new Sparx5 family of Ethernet switch chips using 64-bit Cortex-A53 cores. These are descended from earlier VSC7xxx SparX and Ocelot chips using 32-bit MIPS cores commit, commit, commit, commit, commit, commit, commit, commit
Intel adds support for the new Keem Bay SoC for computer vision, built around a Movidius VPU with Linux running on Arm Cortex-A53 cores commit, commit, commit, commit, commit
Amazon Alpine v3, a 16-core Cortex-A72 SoC from Amazon's Annapurna Labs, otherwise known as AL73400 or first-generation GravitonThis one is added together with the official Evaluation platform commit, commit
Qualcomm Snapdragon SDM630, a family of mid-range mobile phone chips from 2017 based on Cortex-A53 or Kryo 260 CPUs. A total of five end-user products are added based on these, all Android phones from Sony: Xperia 10, 10 Plus, XA2, XA2 Plus and XA2 Ultra commit, commit, commit
Renesas RZ/G2H (r8a774e1), currently the top model in the Renesas RZ/G family, closely related to the RZ/G2N and RZ/G2M models already supportted but has a faster GPU and additional on-chip peripherals. It is added along with the HopeRun HiHope RZ/G2H development board commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- New boards
Allwinner sunxi: revision v1.2 of the Pine64 PinePhone smartphone commit
Amlogic Meson: WeTek Core2, an Amlogic S912 (GXM) based set-top box commit
Aspeed: EthanolX, AMD's EPYC data center rerence platform, using an ASpeed AST2600 baseboard management controller commit
Mediatek: Lenovo IdeaPad Duet 10.1" (kukui/krane), a new Chromebook based on the MT8183 (Helio P60t) SoC commit
Nvidia Tegra: ASUS Google Nexus 7 and Acer Iconia Tab A500, two Android tablets from around 2012 using Tegra 3 and Tegra 2, respectively commit, commit
Nvidia Tegra: The Jetson Xavier NX Developer Kit uses a SoM and carrier board for the Tegra194, their latest 64-bit chip based on Carmel CPU cores and Volta graphics commit
NXP i.MX: Five new boards based on the 32-bit i.MX6 series are added: The MYiR MYS-6ULX single-board computer, and four different models of industrial computers from Protonic commit, commit, commit, commit, commit
Qualcomm: MikroTik RouterBoard 3011, a rackmounted router based on the 32-bit IPQ8064 networking SoC commit
Qualcomm: Three older phones get added, the Snapdragon 808 (msm8992) based Xiaomi Libra (Mi 4C) and Microsoft Lumia 950, originally running Windows Phone, and the Snapdragon 810 (msm8994) based Sony Xperia Z5 commit, commit, commit
Renesas: In addition to the HiHope RZ/G2H board mentioned above, this release gains support for board versions 3.0 and 4.0 of the earlier RZ/G2M and RZ/G2N reference boards. Beacon EmbeddedWorks adds another SoM+Carrier development board for RZ/G2M commit, commit, commit, commit, commit, commit, commit, commit
Rockchips: Radxa Rock Pi N8 development board and the VMARC RK3288 SoM it is based on, using the high-end 32-bit rk3288 SoC commit, commit
imx6qdl-gw: add Gateworks System Controller support commit
Inline crypto support on DragonBoard 845c using the Qualcomm Inline Crypto Engine commit, commit, commit, commit
Append new variables to vmcoreinfo (TCR_EL1.T1SZ for arm64 and MAX_PHYSMEM_BITS for all archs) commit, commit
coresight: etm4x: Add support to skip trace unit power up commit
- ARM64
perf: Expose some new events via sysfs commit
KVM: Pointer Authentication available for guests on nVHE hosts commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
10.2. PowerPC
Remove PROT_SAO (specialised system software) support commit, commit, commit
Support queued spinlocks and rwlocks, which improves massively the performance in some cases commit, commit, commit, commit, commit, commit
Support for a new faster system call ABI using the scv instruction on Power9 or later commit, commit
book3s64: Add kernel command line option to disable radix GTSE commit
papr_scm: add support for reporting NVDIMM 'life_used_percentage' metric commit, commit
Support new flush and sync instructions for persistent storage and sync commit, commit, commit, commit, commit, commit, commit
Add support for divde[.] and divdeu[.] instruction emulation commit, commit, commit
watchpoint: Enable 2nd DAWR on baremetal and powervm commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- perf
Add support for power10 PMU Hardware commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
perf stat: Update POWER9 metrics to utilize other metrics commit
perf vendor events power9: Added nest imc metric events commit
Add cpu hotplug support for powerpc/perf/hv-24x7 commit, commit
KVM: Book3SHV: Enable support for ISA v3.1 guests commit
10.3. x86
(FEATURED) Enable FSGSBASE instructions, used in 64-bit mode to allow direct access to the FS and GS segment base addresses. In addition to benefits to applications, performance improvements to the OS context switch code are possible by making use of these instructions commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add functionality to disable writing to MSRs from userspace. Writes can still be allowed by supplying the allow_writes=on module parameter. The kernel will be tainted so that it shows in oopses commit
Support Architectural LBR. LBR (Last Branch Records) enables recording of software path history by logging taken branches and other flows within architectural registers. Architectural LBRs generalize the model specific LBR hardware tracing feature into a model-independent, architected performance monitoring feature commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add Lakefield, Alder Lake and Rocket Lake models to the to Intel CPU family commit
x86/split_lock: Enable the split lock feature on Sapphire Rapids and Alder Lake CPUs commit
- Platforms
asus-nb-wmi: add support for ASUS ROG Zephyrus G14 and G15 commit
dell-wmi: add new keymap type 0x0012 commit
mlx-platform: support new watchdog type with longer timeout commit
chrome: support Thunderbolt compatibility mode commit, commit
Add support to configure various Type C switches appropriately using the Type C connector class API commit
Add new intel_atomisp2_led driver commit
ISST: Add new PCI device ids commit
- powercap
- KVM
XEN: remove 32-bit Xen PV guest support commit
- perf
intel_idle: Customize IceLake server support commit
crypto: aesni: add compatibility with IAS commit
10.4. RISC-V
Add STACKPROTECTOR supported commit
Add kmemleak support commit
Allow building with kcov coverage commit
Enable LOCKDEP_SUPPORT & fixup TRACE_IRQFLAGS_SUPPORT commit
Enable context tracking commit
Enables using compressed riscv (RVC) instructions in the rv64 BPF JIT commit, commit, commit
10.5. MIPS
ingenic: Add support for the RS90 board commit
ingenic: Add support for the JZ4725B SoC commit
Add support for Ingenic X1830 SoC and Y&A CU1830-Neo board commit, commit
Loongson64: DeviceTree for LS7A PCH commit
Add X2000 system type commit
KVM: Add kvm guest support for Loongson-3 commit
Retire kvm paravirtualization support (it's host side support and QEMU support never landed in upstream) commit
10.6. C-SKY
Add SECCOMP_FILTER support commit
Add context tracking support commit
Use top-down mmap layout commit
10.7. Xtensa
10.8. S390
Implements BPF_PROBE_MEM opcode, which is used in BPF programs that walk chains of kernel pointers commit, commit, commit
Provide cex4 cca sysfs attributes for cex3 commit
10.9. SH
10.10. SPARC
10.11. UNICORE32
Remove unicore32 port commit
10.12. OpenRISC
Add support for external initrd images commit
11. Drivers
11.1. Graphics
- amdgpu
Initial support for Sienna Cichlid GPU merge
Initial support for Navy Flounder GPU merge
Expose rotation property commit
Add support for unique id on Arcturus commit
amdkfd: Track SDMA usage per process commit
SMI events interface commit
Add module parameter choose reset mode commit
Added a sysfs interface for thermal throttling related V4 commit
- Intel
- panel
- msm
- ingenic
- tegra
- meson
- drm_fourcc
- xen-front
Add YUYV to supported formats commit
- nouveau
Add CRC support commit
- radeon
Default to on chip GART for AGP boards on all arches commit
- xilinx
New Xilinx ZynqMP DisplayPort Subsystem driver commit
- vkms
Larger cursor support commit
- rockchip
Add per-pixel alpha support for the PX30 VOP commit
- mgag200
Dropped hw cursor support commit
- fbdev
Remove fb-puv3 driver commit
- backlight
11.2. Power Management
ACPI/NVDIMM: Runtime Firmware Activation commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- thermal
genetlink support for events/cmd/sampling commit
intel: intel_pch_thermal: Add Cannon Lake Low Power PCH support commit
rcar_gen3_thermal: Add r8a774e1 support commit
qcom: tsens-v0_1: Add support for MSM8939 commit
mediatek: Add tsensor support for V2 thermal system commit
Add support for the MCU controlled FAN on Khadas boards commit
tools/power/x86/intel-speed-select: Add option to delay mbox commands commit, add retries for mail box commands commit
11.3. Storage
- nvme
Support for the Zoned Namespace (ZNS) Command Set defined in TP4053, and the Namespace Types base support it depends on from TP4056 commit, commit, commit, commit, commit
nvmet: add target passthru commands support commit, commit, commit, commit, commit, commit, commit, commit, commit
pci: add support for ACPI StorageD3Enable property commit
- scsi
cxgb4i: Add support for iSCSI segmentation offload commit
lpfc: Add blk_io_poll support for latency improvment commit
qla2xxx SAN Congestion Management (SCM) support commit, commit
ufs-mediatek: Add inline encryption support commit
Add compatibility with 3.1 UFS unit descriptor length commit
scsi_debug: Implement tur_ms_to_ready parameter commit
scsi_debug: Support hostwide tags commit
exynos-ufs: Add support for UFS HCI commit, commit, commit, commit, commit, commit
11.4. Drivers in the Staging area
most: add USB adapter driver commit
media: allegro: add support for allegro firmware 2019.2 commit
wfx: add a debugfs entry to force ps_timeout commit
media/soc_camera: remove this driver commit
11.5. Networking
Bluetooth: btusb: add Realtek 8822CE to usb_device_id table commit
- RDMA
efa: Add support for 0xefa1 device commit, commit, commit, commit
RAW format dumps through RDMAtool commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Introduce UAPIs to query UCONTEXT, PD and MR properties commit, commit, commit, commit, commit, commit, commit
qedr: Add EDPM kernel-user flags for feature compatibility commit, commit
amd-xgbe: Add support for new port mode commit
- ath11k
- atlantic
Adds several features: media detect, additional per-queue stats, PTP stats, ipv6 support for TCP LSO and UDP GSO, 64-bit operations, A0 ntuple filters, MAC temperature (hwmon) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Adds more features to A2: half duplex rates, EEE, flow control, link partner capabilities reporting, phy loopback commit, commit, commit, commit, commit, commit
MACSec offload statistics checkpatch fix commit
Add support for FW 4.x commit
bcmgenet: Allow changing carrier from user-space commit
- bnx2x
- bnxt_en
broadcom: Add support for VLAN transmit acceleration commit
- cxgb4
dm9601: Add USB ID of Keenetic Plus DSL commit
dp83869: Add RGMII internal delay configuration commit
- dpaa2-eth
- dsa
felix: introduce support for Seville VSC9953 switch commit
felix: support half-duplex link modes commit
loop: Support 4K VLANs commit
mv88e6xxx: Implement MTU change commit
mv88e6xxx: Support jumbo configuration on 6190/6190X commit
qca8k: Add 802.1q VLAN support commit
rtl8366rb: Support the CPU DSA tag commit
tag_rtl4_a: Implement Realtek 4 byte A tag commit
- ena
- enetc
- hinic
hv_netvsc: add support for vlans in AF_PACKET mode commit
- i40e
- ice
Add advanced power mgmt for WoL commit
Add link lenient and default override support commit
Add useful statistics commit
Implement snapshot for device capabilities commit
Support Total Port Shutdown on devices that support it commit
Support for updating the ice hardware flash using the devlink flash command commit, commit, commit, commit, commit
- igc
iwlwifi: Extended Key ID support for mvm and dvm commit
ixgbe: Add ethtool support to enable 2.5 and 5.0 Gbps support commit
macb: Wake-on-Lan magic packet GEM and MACB handling commit, commit
- mlx5
RX XFRM ipsec offloads for ConnectX devices commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Added support for 100Gbps per lane link modes commit
TLS rx offload commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Enable users to change VF/PF representors carrier state commit
Offload TC action pedit munge tcp/udp sport/dport commit, commit, commit, commit
Offload tc police action commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add support for buffer drops mirroring commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add support for buffer drop traps commit, commit, commit, commit, commit, commit, commit, commit, commit
Add ethtool extended link state commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Mirror to CPU preparations commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- mscc
- mt76
- phy
at803x: add mdix configuration support for AR9331 and AR8035 commit
marvell10g: support XFI rate matching mode commit
marvell: Add Marvell 88E1340S support commit
marvell: Add Marvell 88E1548P support commit
mscc: timestamping and PHC support commit
realtek: add support for RTL8125B-internal PHY commit
qed, qede: improve chain API and add XDP_REDIRECT support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
qed, qede: add support for new operating modes commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
r8169: add support for RTL8125B commit
- rtw88
sfc_ef100: driver for EF100 family NICs. Prerequisites: 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. 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
stmmac: Support WOL with phy commit
VDPA support for Mellanox ConnectX devices commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
ti: am65-cpsw-nuss: enable am65x sr2.0 support commit
wilc1000: move wilc driver out of staging, this drivers supports Microchip AVR/SMART MCUs, SMART MPUs, and other processors commit
xen networking: add XDP support to xen-netfront commit, commit, commit
11.6. Audio
- hda
hdmi: Add Intel silent stream support, which keeps external HDMI receiver's analog circuitry powered on avoiding 2-3 sec silence during playback start commit
realtek: Add model alc298-samsung-headphone commit
realtek: Enable front panel headset LED on Lenovo ThinkStation P520 commit
hdmi: add Rocketlake support commit
line6: add hw monitor volume control for POD HD500 commit
usb-audio: Add basic capture support for Pioneer DJ DJM-250MK2 commit
usb-audio: Add capture support for Saffire 6 (USB 1.1) commit
usb-audio: Add support for Lenovo ThinkStation P620 commit
usb-audio: Creative USB X-Fi Pro SB1095 volume knob support commit
- ASoC:
Intel: KMB: Add 8kHz audio support commit
Intel: bxt-da7219-max98357a: support MAX98390 speaker amp commit
Intel: common: add match table for TGL MAX98373 + RT5682 SoundWire driver commit
Intel: sof_sdw: Add MAX98373 support commit
Intel: sof_sdw: add support for systems without i915 audio commit
SOF: imx8: Add SAI dai driver for i.MX/i.MX8X commit
amd: Adding support for ALC1015 codec in machine driver commit
codecs: max98373: add SoundWire support commit
fsl-asoc-card: Add MQS support commit
fsl-asoc-card: Support Headphone and Microphone Jack detection commit
fsl_spdif: Add support for imx6sx platform commit
intel: sof_rt5682: Add support for jsl-max98360a-rt5682 commit
mediatek: mt6358: support DMIC one-wire mode commit
mediatek: mt8183-da7219: support HDMI jack reporting commit
mediatek: mt8183: support HDMI jack reporting commit
mediatek: mt8183: support machine driver with max98357b commit
mediatek: mt8183: support machine driver for rt1015 commit, commit
rl6231: Add new supports on rl6231 commit
samsung: Add driver for Aries boards commit
samsung: Add sound support for Midas boards commit
tegra: add ASoC components for AHUB. The Audio Hub (AHUB) is part of the Audio Processing Engine (APE) which comprises a collection of hardware accelerators for audio pre-processing and post-processing commit, commit, commit, commit, commit, commit
ti: Add custom machine driver for j721e EVM (CPB and IVI) commit
tlv320adcx140: Add ASI enable for channel 5-8 commit
wm8960: Support headphone jack detection function commit
11.7. Tablets, touch screens, keyboards, mouses
trackpoint: add new trackpoint variant IDs commit
elan_i2c: add support for high resolution reports commit
i8042: remove support for 8042-unicore32io commit
- HID
11.8. TV tuners, webcams, video capturers
i2c: Add MAX9286 driver commit
i2c: Add RDACM20 driver commit
i2c: dw9768: Add DW9768 VCM driver commit
i2c: improvements to IMX290 CMOS sensor: 2 lane support, configurable link frequency & pixel rate, test pattern generation, and RAW12 mode support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
rc: add support for Infrared Toy and IR Droid devices commit
rcar-csi2: Add support for MEDIA_BUS_FMT_SRGGB8_1X8 format commit
rcar-vin: Add support for MEDIA_BUS_FMT_SRGGB8_1X8 format commit
xilinx: Add Xilinx MIPI CSI-2 Rx Subsystem driver commit
vimc: Add a control to display info on test image commit
11.9. Universal Serial Bus / Thunderbolt
Add additional Device Classes to debug/usb/devices commit
serial: console: add support for flow control commit
serial: cp210x: add support for line-status events commit, commit, commit, commit, commit
serial: ftdi_sio: add IDs for Xsens Mti USB converter commit
serial: option: add support for SIM7070/SIM7080/SIM7090 modules commit
serial: option: support dynamic Quectel USB compositions commit
serial: qcserial: add EM7305 QDL product ID commit
typec: intel_pmc_mux: Add support for USB4 commit
xhci: define IDs for various ASMedia host controllers commit
PHY: JZ4770: Add support for new Ingenic SoCs commit
Improves the Thunderbolt/USB4 driver to support tree topologies that are now possible with USB4 devices commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Thunderbolt: Allow userland to flush the image to hardware at runtime, and then allow authenticating the image at another time commit, commit
Thunderbolt: Add retimer NVM upgrade support commit, commit, commit, commit, commit, commit
11.10. Serial Peripheral Interface (SPI)
Add Renesas RPC-IF driver commit
lantiq: Add support to Lightning Mountain SoC commit
mediatek: add spi support for mt8192 IC commit
11.11. Watchdog
dw_wdt: Take Baikal-T1 DW WDT peculiarities into account commit, commit, commit, commit, commit, commit, commit
Support watchdog with longer timeout period commit, commit, commit, commit
booke_wdt: Add common nowayout parameter driver commit
softdog: Add module options soft_reboot_cmd and soft_active_on_boot commit
11.12. Serial
imx: add imx earlycon driver commit
8250_pci: Add Realtek 816a and 816b commit
stm32: Add RS485 RTS GPIO control commit
11.13. CPU Frequency scaling
Allow to specify their CPUfreq governor of choice using the kernel command line (cpufreq.default_governor= parameter), instead of having to wait for the system to fully boot to userspace to switch using the sysfs interface commit, commit
Add Tegra194 cpufreq driver commit
brcmstb-avs-cpufreq: Support polling AVS firmware commit
cpufreq: intel_pstate: Support setting a raw energy performance value in energy_performance_preference; also add an additional attribute energy_efficiency under /sys/devices/system/cpu/intel_pstate/ which allows to enable and disable the "Disable Energy Efficiency Optimization" bit commit, commit
intel_pstate: Implement passive mode with HWP enabled commit
make schedutil the default for arm and arm64 commit
11.14. Device Voltage and Frequency Scaling
Add the delayed timer to devfreq framework in order to support the periodical polling mode without stop caused by CPU idle state. Can be set by users with "echo delayed > /sys/class/devfreq/10c20000.memory-controller/timer" commit, commit
11.15. Voltage, current regulators, power capping, power supply
power: reset: add driver for LinkStation power off commit
power: supply: bq25150 introduce the bq25150 commit
power: supply: bq27xxx_battery: Add the BQ27Z561 Battery monitor commit
power: supply: bq27xxx_battery: Add the BQ28z610 Battery monitor commit
power: supply: sbs-battery: add PEC support commit
power: supply: wilco_ec: Add long life charging mode commit
Add support for voltage regulator on ChromeOS EC commit, commit, commit
- regulator
11.16. Real Time Clock (RTC)
pcf2127: add pca2129 device id commit
pcf2127: add alarm support commit
Remove fb-puv3 driver commit
11.17. Pin Controllers (pinctrl)
intel: Add Intel Emmitsburg pin controller support commit
Add basic SoC Support for Mediatek MT6779 SoC commit, commit, commit, commit
ocelot: Add Sparx5 SoC support commit
qcom: ipq4019: add open drain support commit
sh-pfc: pfc-r8a77951: Add R8A774E1 PFC support commit
tigerlake: Add support for Tiger Lake-H commit
11.18. MultiMediaCard (MMC)
mediatek: add MT6779 MMC driver support commit
mediatek: command queue support commit
sdhci-msm: Add interconnect bandwidth scaling support commit
sdhci_am654: Add Support for SR2.0 commit
11.19. Memory Technology Devices (MTD)
spi-nor: intel-spi: Add support for Intel Emmitsburg SPI serial flash commit
spi-nor: intel-spi: Add support for Intel Tiger Lake-H SPI serial flash commit
spi-nor: macronix: Add support for MX25R1635F commit
spi-nor: macronix: Add support for mx66u2g45g commit
spi-nor: winbond: Add support for w25q64jvm commit
11.20. Industrial I/O (iio)
Ingenic JZ47xx: Add touchscreen mode commit
accel: bma400: add support for bma400 spi commit
accel: mxc4005: add support for mxc6655 commit
adc: Add support for PMIC7 ADC commit
adc: rockchip_saradc: Add support iio buffers commit
chemical: Add support for SCD30 sensor commit, commit, commit
imu: new inv_icm42600 driver commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
imu: bmi160: added regulator and mount-matrix support commit, commit
light: stk3310: add chip id for STK3311-X variant commit
11.21. Multi Function Devices (MFD)
Add support for the Khadas System control Microcontroller commit
da9063: Add support for latest DA silicon revision commit
intel-lpss: Add Intel Emmitsburg PCH PCI IDs commit
intel-lpss: Add Intel Tiger Lake PCH-H PCI IDs commit
smsc-ece1099: Remove driver commit
11.22. Pulse-Width Modulation (PWM)
Remove pwm-puv3 driver commit
11.23. Inter-Integrated Circuit (I2C + I3C)
designware: Add device HID for Hygon I2C controller commit
i801: Add support for Intel Emmitsburg PCH commit
i801: Add support for Intel Tiger Lake PCH-H commit
mediatek: Add apdma sync in i2c driver commit
Remove i2c-puv3 driver commit
11.24. Hardware monitoring (hwmon)
Add Corsair Commander Pro driver commit
corsair-cpro: add reading pwm values commit
pmbus/max20730: Add max20710 support commit
sparx5: Add Sparx5 SoC temperature driver commit
11.25. General Purpose I/O (gpio)
pca953x: Add support for the PCAL9535 commit
pca9570: add GPO driver for PCA9570 commit
zynq: Add Versal support commit
11.26. LEDs
Add a multi color LED framework. This framework presents clustered colored LEDs into an array and allows the user space to adjust the brightness of the cluster using a single file write. The individual colored LEDs intensities are controlled via a single file that is an array of LEDs commit, commit, commit, commit, commit, commit, commit
Initial support for Turris Omnia LEDs commit
11.27. DMA engines
Actions: Add support for S700 DMA engine commit
11.28. Hardware Random Number Generator (hwrng)
ba431: add support for BA431 hwrng commit
11.29. Cryptography hardware acceleration
ingenic: Add hardware RNG for Ingenic JZ4780 and X1000 commit
11.30. PCI
Add Intel QuickAssist device IDs commit
Allow P2PDMA on AMD Zen and newer CPUs commit
cadence: Add MSI-X support to Endpoint driver commit
j721e: Add TI J721E PCIe driver commit
qcom: Add ipq8064 rev2 variant commit
xilinx-cpm: Add Versal CPM Root Port driver commit
11.31. Clock
Add support for enabling/disabling clocks from debugfs commit
Ingenic: Add RTC related clocks for Ingenic SoCs commit
actions: Add RMU and DMAC/GPIO clock support for Actions Semi S500 SoCs commit, commit, commit, commit, commit, commit
at91: add sama7g5 clock support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
bcm63xx-gate: add BCM6318 support commit
bcm: Add BCM2711 DVP driver commit
meson: g12a: Add support for NNA CLK source clocks commit
qcom: Enable GPU for SM8150 and SM8250 commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
qcom: Clock for CPU scaling support for msm8996 commit, commit, commit
qcom: Add ipq6018 apss clock controller commit
qcom: lpass: Add support for LPASS clock controller for SC7180 commit
qcom: Add SMD RPM support for MSM8936 commit, commit, commit, commit, commit, commit, commit
qcom: smd: Add support for MSM8992/4 rpm clocks commit
qcom: smd: Add support for SDM660 rpm clocks commit
renesas: cpg-mssr: Add r8a774e1 support commit
sparx5: Add Sparx5 SoC DPLL clock driver commit
vc5: Allow Versaclock driver to support multiple instances commit
vc5: Enable addition output configurations of the Versaclock commit
clocksource: Add Low Power STM32 timers driver commit
clocksource: Add CLINT timer driver commit
clocksource: timer-atmel-tcb: Add sama5d2 support commit
clocksource: ingenic: Add support for the Ingenic X1000 OST commit
11.32. PHY ("physical layer" framework)
bcm63xx-usbh: Add BCM63xx USBH driver commit
qcom-qmp: Add USB QMP PHY support for IPQ8074 commit
qcom: remove ufs qmp phy driver commit
qualcomm: add qcom ipq806x dwc usb phy driver commit
samsung-ufs: add UFS PHY driver for samsung SoC commit
zynqmp: Add PHY driver for the Xilinx ZynqMP Gigabit Transceiver commit
11.33. Memory Controller Drivers
Add Renesas RPC-IF driver commit
mtk-smi: Add basic support for MT6779 commit
samsung: exynos5422-dmc: Add module param to control IRQ mode commit
stm32-fmc2-ebi: add STM32 FMC2 EBI controller driver commit
tegra: Add EMC scaling sequence code for Tegra210 commit
tegra: Add EMC scaling support code for Tegra210 commit
11.34. Firmware Drivers
arm_scmi: SCMI Notifications Core Support commit, commit, commit, commit, commit, commit, commit, commit, commit
Extend svc and rsu drivers for new RSU features commit, commit, commit, commit
smccc: Add ARCH_SOC_ID support commit
tegra: Add support for in-band debug commit
turris-mox-rwtm: support ECDSA signatures via debugfs commit
11.35. Remote Processors
Add coredump debugfs entry commit
k3-dsp: Add a remoteproc driver of K3 C66x DSPs commit
k3-dsp: Add support for C71x DSPs commit
k3-dsp: Add support for L2RAM loading on C66x DSPs commit
k3: Add TI-SCI processor control helper functions commit
11.36. Various
bus: fsl-mc: Add ACPI support for fsl-mc commit
counter: Add microchip TCB capture counter commit
fpga: Add interrupt support to FPGA DFL drivers commit, commit, commit, commit, commit, commit, commit
fpga: dfl: pci: add device id for Intel FPGA PAC N3000 commit
iommu: NVIDIA ARM SMMU Implementation commit, commit, commit, commit, commit
iommu/mediatek: Add mt6779 basic support commit
iommu/renesas: Add support for r8a77961 commit
irqchip/imx-intmux: Implement intmux runtime power management commit
misc: mei: add device kind to sysfs commit
misc: rtsx: Add support new chip rts5228 mmc: rtsx: Add support MMC_CAP2_NO_MMC commit
nvmem: enables blowing of fuses on Qualcomm SoCs commit, commit, commit, commit
nvmem: sc27xx: add sc2730 efuse support commit
ocxl: control via sysfs whether the FPGA is reloaded on a link reset commit
vdpasim: support batch updating commit
12. List of Pull Requests
13. Other news sites
Phoronix Linux 5.9 feature overview