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