16136
Comment:
|
880
Linux 5.0
|
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: * [http://fuse.sourceforge.net/ FUSE]: FUSE allows to implement a fully functional filesystem in a userspace program * [http://v9fs.sourceforge.net/ 9P support]: Linux port of the famous [http://www.cs.bell-labs.com/plan9dist/ Plan9]'s 9P protocol * ipw2100 and ipw2200 wireless drivers * [http://hostap.epitest.fi/ HostAP]: Adds support to work as "Wireless Access Point" * [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless.Extensions.html Wireless extensions] API update * Four-level page table support for the ppc64 architecture * [http://lwn.net/Articles/149756/ DCCP]: "Datagram Congestion Control Protocol". Datagram protocol (like UDP), but with a congestion control mechanism. Currently a [http://www.icir.org/kohler/dcp/draft-ietf-dccp-spec-11.txt RFC draft] * [http://relayfs.sourceforge.net/ RelayFS]: "Basically relayfs is just a bunch of per-cpu kernel buffers that can be efficiently written into from kernel code. These buffers are represented as files which can be mmap'ed and directly read from in user space. The purpose of this setup is to provide the simplest possible mechanism allowing potentially large amounts of data to be logged in the kernel and 'relayed' to user space." 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]: With support for I/O priorities * 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 * Hot-pluggable parallel ports * Block I/O barrier rewrite (enables full barrier support on serial ATA drives) 2.6.11: * Conversion to 4-level page tables * [http://lwn.net/Articles/112531/ Infiniband support] * Support for Extended Attributes in the body of large inode in ext3: saves space and improves performance in some cases * Fujitsu FR-V CPU arch implementation * SATA support for Intel ICH7 * [http://lwn.net/Articles/115405/ DebugFS] * [http://lwn.net/Articles/118750/ New Pipe implementation] * [http://lwn.net/Articles/102253/ "Big Kernel Sempahore"] 2.6.10: * Ext3 block reservation and online resizing patches * [http://lwn.net/Articles/69523/ sysfs backing store] * [http://lwn.net/Articles/103183/ I/O space write barriers] * On-the-fly switchable I/O schedulers * BSD secure levels module * 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 * Generic snapshot support code for filesystems (taken from XFS) 2.6.5: * Netpoll infrastructure 2.6.4: * HFS rewrite 2.6.3: * Removal of the USB scanner code: moved support to userspace (libusb) * [http://lwn.net/Articles/69402/ New DMA pool abstraction] 2.6.2: 2.6.1: * [http://lwn.net/Articles/44135/ Message Signaled Interrupt support] * Extensible Firmware Interface (EFI) support. 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] * Direct I/O support for reiserfs 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] * "kblockd" kernel threads * "nointegrity" JFS mount option 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] * Runtime barrier instruction patching: Allows optimal performance on different processors without the need to ship multiple kernels 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.0)>> |
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.0 has been released on Sun, 3 Mar 2019.
Summary: This release includes support for energy-aware scheduling which wakes up tasks to the more energy-efficient CPUs in phones; it also includes adiantum file system encryption for low power devices; it adds support in the amdgpu driver for AMD Freesync (variable refresh rate); it adds support for Receive Offload and MSG_ZEROCOPY support in UDP; it adds support for ARM pointer authentication; it adds support for the cpuset resource controller (which can constraint the CPU and memory node placement of tasks) in cgroupv2; it adds support for namespacing support for binderfs, which lets to run multiple instances of android; it adds support for swap files in btrfs; and it also adds many new drivers and other improvements.
Contents
-
Coolest features
- New version 5.0
- Energy-aware Scheduling for Arm big.LITTLE
- Adiantum file system encryption for low power devices
- Support for AMDGPU FreeSync
- UDP Generic Receive Offload and MSG_ZEROCOPY support
- Support cpuset resource controller in cgroupv2
- Btrfs swap file support
- binderfs, a binder filesystem to run multiple instances of Android
- ARM pointer authentication
- Core (various)
- File systems
- Memory management
- Block layer
- Tracing, perf and BPF
- Virtualization
- Cryptography
- Security
- Networking
- Architectures
-
Drivers
- Graphics
- Storage
- Drivers in the Staging area
- Networking
- Audio
- Tablets, touch screens, keyboards, mouses
- TV tuners, webcams, video capturers
- Universal Serial Bus
- Serial Peripheral Interface (SPI)
- Watchdog
- Serial
- ACPI, EFI, cpufreq, thermal, Power Management
- Real Time Clock (RTC)
- Voltage, current regulators, power capping, power supply
- Pin Controllers (pinctrl)
- Multi Media Card (MMC)
- Memory Technology Devices (MTD)
- Industrial I/O (iio)
- Inter-Integrated Circuit (I2C)
- Hardware monitoring (hwmon)
- General Purpose I/O (gpio)
- Leds
- DMA engines
- Cryptography hardware acceleration
- PCI
- Clock
- Various
- List of merges
- Other news sites
1. Coolest features
1.1. New version 5.0
This release increases the major version number to 5. This change does not mean anything and does not affect programs in any way, it just makes Linus happy.
1.2. Energy-aware Scheduling for Arm big.LITTLE
This release includes the energy-aware scheduling feature, which lets the task scheduler to take scheduling decisions that will result in lower power usage on asymmetric SMP platforms - such as waking up tasks to the more energy-efficient CPUs first. This feature is important to achieve better power management in phones using Arm's big.LITTLE CPUs. This feature is a simplified version of the energy-aware scheduling that is currently part of the AOSP Common Kernel.
Recommended LWN article: Energy-aware scheduling on asymmetric systems
Code: commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
1.3. Adiantum file system encryption for low power devices
This release adds support for the Adiantum encryption. Note that this encryption mode is not added to ecryptfs but to fscrypt, the kernel funcionality which filesystems (currently ext4, f2fs and ubifs) can hook into to support transparent encryption of files and directories.
Adiantum was developed to provide filesystem encryption for low-end Android devices that lack AES instructions. On ARM Cortex-A7, on 4096-byte messages Adiantum encryption is about 4 times faster than AES-256-XTS encryption; decryption is about 5 times faster. See the google security blog or the Adiantum paper for more details.
Recommended LWN article: Adiantum: encryption for the low end
1.4. Support for AMDGPU FreeSync
This release adds support for FreeSync, an adaptive synchronization technology for LCDs that support a dynamic refresh rate, aimed at providing a low monitor latency and a smooth, virtually stutter-free viewing experience. It also helps improve battery life by reducing the refresh rate of the panel when not receiving new images.
Variable refresh rate capable displays can dynamically adjust their refresh rate by extending the duration of their vertical front porch until page flip or timeout occurs. This can reduce or remove stuttering and latency in scenarios where the page flip does not align with the vblank interval. An example scenario would be an application flipping at a constant rate of 48Hz on a 60Hz display. The page flip will frequently miss the vblank interval and the same contents will be displayed twice. This can be observed as stuttering for content with motion. If variable refresh rate was active on a display that supported a variable refresh range from 35Hz to 60Hz no stuttering would be observable for the example scenario.
Code: commit, DRM API commit, commit, commit, commit, commit
1.5. UDP Generic Receive Offload and MSG_ZEROCOPY support
This release adds support of GRO (Generic Receive Offload) in the UDP implementation. A new sockopt (UDP_GRO) has been added to enable GRO support. Future enachements will enable UDP GSO offload on more virtual devices eventually even on forwarded packets.
This release also expands MSG_ZEROCOPY support for UDP. Recommended LWN article: Zero-copy networking
Code: GRO commit, commit, commit, commit, commit, commit, commit, commit, commit, msg_zerocopy commit, commit, commit
1.6. Support cpuset resource controller in cgroupv2
The cpuset controller provides a mechanism for constraining the CPU and memory node placement of tasks to only the resources specified in the cpuset interface files in a task's current cgroup. This is especially valuable on large NUMA systems where placing jobs on properly sized subsets of the systems with careful processor and memory placement to reduce cross-node memory access and contention can improve overall system performance.
This release enables cpuset controller in cgroup v2, with a minimal set of features.
Code: commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
1.7. Btrfs swap file support
Btrfs removed support for swap files a decade ago. However, now the proper restrictions are in place, Btrfs can support swap files. The swap file must be fully allocated as "nocow" with no compression on one device.
Code: commit
1.8. binderfs, a binder filesystem to run multiple instances of Android
This release includes binderfs, a pseudo-filesystem for the Android Binder IPC driver. Each ipc namespace will mount a new binderfs instance. It is backwards compatible, and it allows to run multiple of Android. Each binderfs mount initially only contains a binder-control device. It can be used to dynamically allocate new binder IPC devices via ioctls.
Code: commit
1.9. ARM pointer authentication
The ARMv8.3 Pointer Authentication extension adds primitives that can be used to mitigate certain classes of attack where an attacker can corrupt the contents of some memory (e.g. the stack). The extension uses a Pointer Authentication Code (PAC) to determine whether pointers have been modified unexpectedly. A PAC is derived from a pointer, another value (such as the stack pointer), and a secret key held in system registers.
The extension adds instructions to insert a valid PAC into a pointer, and to verify/remove the PAC from a pointer. The PAC occupies a number of high-order bits of the pointer, which varies dependent on the configured virtual address size and whether pointer tagging is in use. A subset of these instructions have been allocated from the HINT encoding space. In the absence of the extension (or when disabled), these instructions behave as NOPs. Applications and libraries using these instructions operate correctly regardless of the presence of the extension.
For more details see the documentation: Documentation/arm64/pointer-authentication.txt
Code: commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
2. Core (various)
(FEATURED) task scheduler: Introduces Energy Aware Scheduling for CFS tasks on platforms with asymmetric CPU topologies (e.g. Arm big.LITTLE) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
fanotify: Currently, the fanotify API does not provide a means for user space applications to receive events when a file has been opened specifically for execution. New event masks FAN_OPEN_EXEC and FAN_OPEN_EXEC_PERM have been introduced in this release for this purpose commit, commit, commit, commit
(FEATURED) Enable cpuset controller in default hierarchy commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
(FEATURED) binder: implement binderfs, a pseudo-filesystem for the Android Binder IPC driver which can be mounted per-ipc namespace allowing to run multiple instances of Android. Each binderfs mount initially only contains a binder-control device. It can be used to dynamically allocate new binder IPC devices via ioctls commit
cgroup: Add named hierarchy disabling to cgroup_no_v1 boot param commit
(FEATURED) fscrypt: add support for the Adiantum encryption mode. Adiantum is a tweakable, length-preserving encryption mode with security provably reducible to that of XChaCha12 and AES-256, subject to a security bound. It's also a true wide-block mode, unlike XTS commit
epoll: some miscellaneous optimizations commit, commit, commit, commit, commit, commit, commit
file locks: avoid thundering-herd wake-ups commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Conclude the main part of the system call rework for 64-bit time_t for the year-2034 problem. Recommended LWN article: Approaching the kernel year-2038 end game. merge
Spread IRQs to all available NUMA nodes commit
Build: add -Werror=implicit-int commit and -Werror=strict-prototypes flags unconditionally commit
sysctl: add panic_print sysctl to configure which information to print at panic time commit
scripts: add a tool to produce a compile_commands.json file commit
tools: Add 'firmware' category and add ihex2fw tool commit
rcutorture: Add initrd support for systems lacking dracut commit, remove cbflood facility commit
3. File systems
- BTRFS
- CIFS
A DFS cache so that DFS links can be resolved even when hosts are down, and DFS failover so that if the DFS target we are connected to is down cifs will try to reconnect to a different target if there are any commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Use a compound for setting an xattr commit
Add smb3.1.1 to default dialect list commit
- F2FS
Add an ioctl() to explicitly trigger fsck later commit
- AUTOFS
Add strictexpire mount option commit
4. Memory management
Add a new software tag-based mode to KASAN. The plan is to implement HWASan for the kernel with the incentive, that it's going to have comparable to KASAN performance, but in the same time consume much less memory, trading that off for somewhat imprecise bug detection and being supported only for arm64 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
Fragmentation avoidance improvements, reducing fragmentation events by over 90%, resulting in better transparent hugepage (THP) usage commit, commit, commit, commit
Speed up mremap(2) by 20x on large regions by copying page tables at the PMD level even for non-THP systems, for now on x86 commit, commit, commit
kmemleak: add config to select auto scan commit
Change mincore() to count "mapped" pages rather than "cached" pages commit This was later reverted and different solution is in the works for 5.1+ commit More on LWN Defending against page-cache attacks and Fixing page-cache side channels, second attempt
Kernel Samepage Merging (KSM): replace jhash2 with xxhash, which is about 5 times faster in the 64bit version commit, commit
Transparent Huge Pages: provide a consistent API to query the THP status both for each VMA and process wide as well commit, commit, commit
Improved reporting of memory offlining failures commit commit commit commit commit commit
Mark devm_memremap_pages() hmm_devmem_{add, add_resource} EXPORT_SYMBOL_GPL with implications for out-of-tree non-GPL HMM (Heterogeneous Memory Management) drivers commit commit commit commit commit commit commit More on LWN Heterogeneous memory management meets EXPORT_SYMBOL_GPL()
Improve Out Of Memory (OOM) reports, include victim's memcg commit commit
Fix a long-standing issue where waiting for a page to migrate will effectively disrupt the migration, resulting in e.g. memory offline failures for busy pages such as those containing shared libraries commit
zram improvements, including the ability to mark a zram slot as idle, which is cleared once there is IO for the slot, which can help estimate wasted memory, and perform writeback that will free it. Also introduce writeback limits, see the respective commits for details. commit commit commit commit commit commit commit commit
THP eligibility reporting in /proc/pid/smaps and /proc/pid/status that allows precisely determining for each process and mapping if THP is disabled due to madvise(MADV_NOHUGEPAGE) or prctl(PR_SET_THP_DISABLE) commit commit, commit
page-alloc: reduce zone->lock contention commit
5. Block layer
Add support for multiple queue maps for blk-mq. Since blk-mq was introduced, it's only support a single queue map. This means you can have 1 set of queues, and the mapping purely depends on what CPU an IO originated from. With this patch set, drivers can implement mappings that depend on both CPU and request type - and they can have multiple sets of mappings. NVMe is used as a proof of concept commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Remove all the non-mq code. Remaining drivers have been converted 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
Export hctx->type in debugfs instead of sysfs commit
Export blk-wbt's internal states via debugfs commit
Give a interface to adjust io timeout by device commit
drbd: introduce P_ZEROES (REQ_OP_WRITE_ZEROES on the "wire") commit
raid6: add option to skip algo benchmarking commit
null_blk: Add conventional zone configuration for zoned support commit
zram idle page writeback. On zram-swap usecase, zram has usually many idle/huge swap pages. It's pointless to keep in memory(ie, zram). To solve the problem, this feature introduces idle/huge page writeback to backing device so the goal is to save more memory space on embedded system commit, commit, commit, commit, commit, commit, commit
6. Tracing, perf and BPF
- BPF
Support raw tracepoints in modules commit
Add perf-based event notification for sock_ops. The eBPF kernel module can thus be designed to apply any desired filters to the bpf_sock_ops and trigger a perf-event notification based on the verdict from the filter. The uspace component can use these perf-event notifications to either read any state managed by the eBPF kernel module, or issue a TCP_INFO netlink call if desired commit, commit
Add support for mapinmap in libbpf, a helper for libbpf which would allow it to load map-in-map(BPF_MAP_TYPE_ARRAY_OF_MAPS and BPF_MAP_TYPE_HASH_OF_MAPS) commit, commit
Introduce bpf_line_info. It will be useful for introspection purpose commit, commit, commit, commit, commit, commit
Add func info support to the kernel so we can get better ksym's for bpf function calls. Basically, function call types are passed to kernel and the kernel extract function names from these types in order to contruct ksym for these functions commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add BPF_F_ANY_ALIGNMENT , an "any alignment" flags to tell the verifier to forcefully disable it's alignment checks completely. It's needed by SPARC commit
Support socket lookup in CGROUP_SOCK_ADDR progs commit
Support of BPF_ALU | BPF_ARSH commit, commit, commit, commit, commit, commit, commit
Add skb->tstamp r/w access from tc clsact and cg skb progs commit
sockmap, metadata support for reporting size of msg commit
Allow BPF read access to qdisc pkt_len commit
- bpftool
Add loadall command commit
Add pinmaps argument to the load/loadall commit
Support loading flow dissector commit
Add a command to dump the trace pipe commit
Add an option to prevent auto-mount of bpffs, tracefs commit
Add owner_prog_type and owner_jited to bpftool output commit
Add BPF_MAP_TYPE_QUEUE and BPF_MAP_TYPE_STACK to bpftool-map commit
- perf
Reduce data loss when profiling highly parallel CPU bound workloads commit, commit, commit
annotate: Compute average IPC and IPC coverage per symbol commit
annotate: Introduce basic support for ARC to be able to use anotation via stdio interface commit
bench: Add epoll parallel epoll_wait benchmark commit
bench: Add epoll_ctl(2) benchmark commit
cs-etm: Add configuration for ETMv3 trace protocol commit
cs-etm: Add support for ETMv3 trace decoding commit
cs-etm: Add support for PTMv1.1 decoding commit
cs-etm: Support for ARM A32/T32 instruction sets in CoreSight trace commit
report: Display average IPC and IPC coverage per symbol commit, commit
Add Hygon Dhyana support commit
Support 'srccode' output commit
top: Allow passing a kallsyms file commit
trace: Allow asking for not suppressing common string prefixes commit
trace: Allow configuring default for perf_event_attr.inherit commit
trace: Allow configuring if the syscall duration should be printed commit
trace: Allow configuring if the syscall start timestamp should be printed commit
trace: Allow configuring if zeroed syscall args should be printed commit
trace: Allow selecting use the use of the ordered_events code commit
trace: Allow specifying a set of events to add in perfconfig commit
trace: Allow suppressing the syscall argument names commit
Add JSON metrics for Cascadelake server commit
Unify dynamic event interface on ftrace. Currently ftrace has 3 dynamic event interfaces, kprobes, uprobes and synthetic. This series unifies those dynamic event interfaces to "dynamic_events" so that we can add other dynamic events easily on same interface, e.g. function events. The older interfaces are left on the tracefs for backward compatibility commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add tracefs file buffer_percentage that allows users to specify how much of the buffer (percentage of pages) need to be filled before waking up a task blocked on a per cpu trace_pipe_raw file commit
7. Virtualization
virtio-net: ethtool configurable LRO commit
kvm: introduce manual dirty log reprotect commit
um: Add support for DISCARD in the UBD Driver commit
vfio_pci: Add NVIDIA GV100GL [Tesla V100 SXM2] subdriver commit
virtio_blk: add discard and write zeroes support commit
- virtio-gpu
Implement packed ring support in virtio driver commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
8. Cryptography
Support incremental algorithm dumps commit
(FEATURED) adiantum: add Adiantum support commit
chacha: add XChaCha12 support commit
chacha20-generic: add XChaCha20 support commit
9. Security
Add seccomp trap to userspace. It introduces a means for syscalls matched in seccomp to notify some other task that a particular filter has been triggered. The motivation for this is primarily for use with containers. For example, if a container does an init_module(), we obviously don't want to load this untrusted code, which may be compiled for the wrong version of the kernel anyway. Instead, we could parse the module image, figure out which module the container is trying to load and load it on the host. As another example, containers cannot mknod(), since this checks capable(CAP_SYS_ADMIN). However, harmless devices like /dev/null or /dev/zero should be ok for containers to mknod, but we'd like to avoid hard coding some whitelist in the kernel. Another example is mount(), which has many security restrictions for good reason, but configuration or runtime knowledge could potentially be used to relax these restrictions. Recommended LWN article: Deferring seccomp decisions to user space. commit, commit, commit, commit
Add platform/firmware keys support for kernel verification by IMA commit, commit, commit, commit, commit, commit, commit
selinux: always allow mounting submounts commit
tpm2: add new tpm2 commands according to TCG 1.36 commit
10. Networking
- UDP
(FEATURED) Enable MSG_ZEROCOPY for udp sockets commit, commit, commit
(FEATURED) UDP: Generic Receive Offload support commit, commit, commit, commit, commit, commit, commit, commit, commit
Introduces ICMP error handling for UDP tunnels and encapsulations commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- TCP
Improve xfrm policy lookup performance when a lot of (several hundred or even thousands) inexact policies exist on a system commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
VRF: allow simultaneous service instances in default and other VRFs. It provides this isolation for stream sockets subject to the existing kernel parameter net.ipv4.tcp_l3mdev_accept not being set, given that this is documented as allowing a single service instance to work across all VRF domains. Similarly, net.ipv4.udp_l3mdev_accept is checked for datagram sockets, and net.ipv4.raw_l3mdev_accept is introduced for raw sockets. The functionality applies to UDP & TCP services as well as those using raw sockets, and is for IPv4 and IPv6 commit, commit, commit, commit, commit, commit, commit, commit, commit
namespaces: ease the interpretation of nsid received in netlink messages from other netns (when the user uses NETLINK_F_LISTEN_ALL_NSID) commit, commit, commit, commit
neighbor: Add protocol attribute to neighbor entries for easier tracking of how each was created commit
devlink: Add 'fw_load_policy' generic parameter which gives the ability to control this option which allows the user to choose between different loading policies supported by the driver commit
- bridge
Add a new bridge option which can control learning from link-local packets, by default learning is on to be consistent and avoid breaking users expectations. If the new no_linklocal_learn option is enabled then the bridge will stop learning from link-local packets commit, commit, commit
Add support for bridge fdb get similar to route get commit, commit, commit, commit
sched: gred: introduce per-virtual queue attributes commit, commit, commit, commit, commit, commit, commit, commit
vxlan: Add VRF support for VXLAN underlay commit, commit, commit, commit
vlan: add support for tunnel offload commit
- netfilter
- Wireless
Add support to notify radar event info received from STA commit
Let userspace learn about iftype changes by sending a notification when handling the NL80211_CMD_SET_INTERFACE command commit
Announce radios/interfaces when switching namespaces, so userspace can rely on these events to discover radios properly commit
Add a new "peer measurement" API, that can be used to measure certain things related to a peer. Right now, only implement FTM (flight time measurement) over it, but the idea is that it'll be extensible to also support measuring the necessary things to calculate e.g. angle-of-arrival for WiGig commit, commit
mac80211_hwsim: allow configurable cipher types commit, allow setting iftype support commit
mesh: advertise gates in mesh formation commit, commit, commit
rtnetlink wifi simulation device commit
sctp: add subscribe per asoc and sockopt SCTP_EVENT (rfc6525#section-6.2) commit, commit, commit, commit
- NC-SI (Network Controller Sideband Interface)
- Infiniband
11. Architectures
11.1. ARM
New SoCs
Qualcomm QCS404 (4x Cortex-A53), it has two EVBs, EVB-1000 and EVB-4000 commit, commit
Allwinner T3 (rebranded R40) and f1c100s (armv5) commit, commit
NXP/Freescale i.MX7ULP (1x Cortex-A7 + 1x Cortex-M4, graphics, etc) + i.MX7ULP EVK board commit, commit, commit
NXP LS1028A (2x Cortex-A72), LX2160A (16x Cortex-A72) + NXP LX2160AQDS and LX2160ARDB boards commit, commit, commit, commit
i.MX8 (NXP, 4x Cortex-A53 + Cortex-M4, 4K video playback offload). This is the first i.MX 64-bit SoC and i.MX8M EVK board commit, commit, commit
RDA Micro RDA8810PL (Cortex-A5 w/ integrated Vivante GPU, 256MB RAM, Wifi). Include DTs for two boards with this SoC, OrangePi 2G and OrangePi i96 commit, commit, commit, commit
- New platforms
Rockchip: Gru Scarlet (RK3188 Tablet) commit
Amlogic: Phicomm N1 (S905D), Libretech S805-AC commit, commit
Broadcom: Linksys EA6500 v2 Wi-Fi router (BCM4708) commit
PXA: First PXA3xx DT board: Raumfeld commit
Aspeed: Facebook Backpack-CMM BMC commit
Allwinner t3-cqa3t-bv3 (T3/R40) and Lichee Pi Nano (F1C100s) commit, commit
Marvell Macchiatobin Single Shot (Armada 8040, no 10GbE) commit
i.MX: mtrion emCON-MX6, imx6ul-pico-pi, imx7d-sdb-reva commit, commit, commit
VF610: Liebherr's BK4 device, ZII SCU4 AIB board commit, commit
i.MX7D PICO Hobbit baseboard commit
rockchip: add BQ Edison 2 QC devicetree commit
ls1012a: Add FRWY-LS1012A board support commit
Qualcomm: Remove of Arrow SD600 commit
(FEATURED) Add support for the ARMv8.3 pointer authentication extension, enabling userspace return address protection with GCC 7 and above commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add support for speculation barrier instruction As part of the fallout from specdown and meltre, Armv8.5 introduces an architected Speculation Barrier (SB) instruction. Unlike CSDB, this is not retrofitted to existing CPUs, so we need to plumb in an HWCAP and make use of the alternatives framework to patch it over our current DSB; ISB sequence on CPUs that support it commit, commit, commit
Add support for 52-bit userspace VAs to systems that have ARMv8.2-LVA and are running with a 48-bit VA_BITS and a 64KB page size. If no hardware support is present, the kernel runs with a 48-bit VA space for userspace. Userspace can exploit this feature by providing an address hint to mmap where addr[51:48] != 0. Otherwise all the VA mappings will behave in the same way as a 48-bit VA system (this is to maintain compatibility with software that assumes the maximum VA size on arm64 is 48-bit) commit, commit, commit, commit, commit, commit, commit,
Add support for per-task stack canaries. See blog post commit
Apply r/o permissions of VM areas also to their linear aliases commit
- crypto
- arm64
Add kaslr support commit
Add kernel signature verification support commit
Enable KEXEC_FILE config commit
Add memory hotplug support commit
Enable per-task stack canaries commit
perf: Add support for Armv8.1 PMCEID register format commit
crypto: add NEON accelerated XOR implementation commit
crypto: add XChaCha12 support commit
crypto: add XChaCha20 support commit
crypto: add NEON-accelerated NHPoly1305 commit
11.2. X86
Add WBNOINVD feature definition commit
resctrl: adds support for AMD64 architectural extensions for Platform Quality of Service. These extensions are intended to provide for the monitoring of the usage of certain system resources by one or more processors and for the separate allocation and enforcement of limits on the use of certain system resources by one or more processors commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
speculation: Add support for STIBP always-on preferred mode commit
amd_nb: Add PCI device IDs for family 17h, model 30h commit
- platform
KVM/Hyper-v: Add HV ept tlb range flush hypercall support in KVM commit, commit, commit, commit, commit, commit, commit, commit
KVM/hyper-v: Implement KVM_GET_SUPPORTED_HV_CPUID commit, commit, commit, commit, commit, commit
KVM: Add CPUID support for new instruction WBNOINVD commit
- crypto
Add Processor Trace enabling in KVM guests. Intel Processor Trace is an extension of Intel Architecture that captures information about software execution using dedicated hardware facilities that cause only minimal performance perturbation to the software being traced commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
11.3. CSKY
Add perf support for C-SKY commit
CPU-hotplug supported for SMP commit
Basic ftrace supported commit
ftrace call graph supported commit
stacktrace supported commit
11.4. MIPS
Enable Undefined Behavior Sanitizer UBSAN commit
Enable dead code elimination commit
Loongson: Add Loongson-3A R2.1 basic support commit
Enable IOREMAP_PROT config option for MIPS cpus (allows the users of ptrace to access memory mapped by the ptraced process using the same cache coherency attributes as the original process) commit
11.5. NDS32
Power management support commit
* Hardware prefetcher support commit
11.6. POWERPC
perf: Wire up PMI throttling commit
8xx: Enable 512k hugepage support with HW assistance commit
8xx: Enable 8M hugepage support with HW assistance commit
Implement Spectre variant 2 workarounds for NXP PowerPC Book3E processors commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Implement CONFIG_DEBUG_VIRTUAL commit
11.7. XTENSA
Implement jump_label support commit
Implement syscall tracepoints commit
Implement tracehook functions and enable HAVE_ARCH_TRACEHOOK commit
Support memtest commit
11.8. RISCV
Add audit support commit
11.9. ARC
- perf
- fixes
Allow disabling auto regfile save on interrupts commit
Relinquish mmap_sem if early exit due to signal arriving during handle_mm_fault() commit
prevent PREFETCHW from "bleeding" past end of buffer (causing stray dirty cache line writebacks) in memset commit, memcpy commit
Reclaim 256M of reserved memory on HSDK commit
Avoid tripping lockdep detector in show_regs()commit, commit
Ensure slab allocations are 8 byte aligned (vs. 4) to handle any embedded atomic64_t commit
12. Drivers
12.1. Graphics
(FEATURED) A DRM API for adaptive sync and variable refresh rate support. Adaptive sync is part of the DisplayPort specification and allows for graphics adapters to drive displays with varying frame timings. Variable refresh rate (VRR) is essentially the same, but defined for HDMI commit, commit, commit, commit, commit
VESA has developed an industry standard Display Stream Compression (DSC) for interoperable, visually lossless compression over display links to address the needs for higher resolution displays. This patch series enables DSC on Gen 10 eDP and Gen 11 eDP/DP panels. This implementation is based on VESA DP 1.4 and DSC specifications commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add fourcc for Mali linear tiled formats commit
Add a new plane property to send damage during plane update commit
Add an hx8367d tinydrm driver commit
Introduced new XYUV scan-in format for framebuffer commit
fbdev: add config option to center the bootup logo commit
- vgem
render node support commit
- Intel
Add new Amber Lake PCI ID commit
Add plane alpha blending support commit
Expose planar format support on gen11 commit
Add AVI infoframe support for LSPCON commit
Add CRTC output format YCBCR 4:2:0 commit, YCBCR 4:4:4 commit
Add YCBCR 4:2:0/4:4:4 support for LSPCON commit
Show actual alongside requested frequency in debugfs/i915_rps_boost_info commit
- amdgpu
(FEATURED) Add support for Freesync 2 HDR and Content to Display Mapping commit
ABM support in DC commit
KFD support for vega12/polaris12 commit
DCC scanout on GFX9 commit
Updated SMU firmware for GFX8 chips commit
XGMI PSP + hive reset support commit
- Powerplay updates for newer Polaris
Cursor plane update fast path commit
kfd dma-buf support commit
Add new VegaM pci id commit
Add DC feature mask module parameter commit
Add support for doorbell BOs. This allows user mode to map doorbell pages into GPUVM address space. That way GPUs can submit to user mode queues (self-dispatch) commit
- panels
- bochs
Add edid support commit
- synopsys
add dual-dsi support commit
- vmwgfx
- nouveau
- msm
- tegra
- exynos
- rcar-du
- rockchip
- vc4
- v3d
- mali-dp
Add support for linear tiled formats commit
- sun4i
- meson
12.2. Storage
NVMe over Fabrics TCP host and the target drivers. Now NVMe over Fabrics can run on every Ethernet port in the world. The implementation conforms to NVMe over Fabrics 1.1 specification (which will include already publicly available NVMe/TCP transport binding, TP 8000) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
nvme: implement Enhanced Command Retry commit
nvme: support traffic based keep-alive commit
nvmet: support for traffic based keep-alive commit
- scsi
hisi_sas: Add support for DIF feature for v2 hw commit
lpfc: add Trunking support commit
megaraid_sas: Add support for FW snap dump commit
qedi: add module param to set ping packet size commit
smartpqi: add ofa support commit
smartpqi: add smp_utils support commit
smartpqi: add support for huawei controllers commit
smartpqi: add sysfs attributes commit
target: add device vendor_id configfs attribute commit
target: add emulate_pr backstore attr to toggle PR support commit
target: drop unused pi_prot_format attribute storage commit
ufs: Add UFS platform driver for Cadence UFS commit
12.3. Drivers in the Staging area
media: add Rockchip VPU JPEG encoder driver commit
Add support for the Intel IPU3 (Image Processing Unit) ImgU which is essentially a modern memory-to-memory ISP. It implements raw Bayer to YUV image format conversion as well as a large number of other pixel processing algorithms for improving the image quality commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Remove the mt29f_spinand driver commit
android: ion: Add per-heap counters commit
iio:ad2s90: Move out of staging commit
rtl8188eu: Add device code for D-Link DWA-121 rev B1 commit
12.4. Networking
- Bluetooth
Add USR vendor id and use it in r8169 and w6692 driver commit
RDMA/hns: implement the SRQ(Share Receive Queue) feature commit, commit, commit, commit
Infiniband: Add support for immediate data to the SRP drivers commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- ath10k
- bnx2x
- bnxt_en
- brcmfmac
- can
cxgb4: Add new T6 PCI device ids 0x608a commit
- dpaa2-eth
e1000e: extend PTP gettime function to read system clock commit
- iwlwifi
ixgbe: allow IPsec Tx offload in VEPA mode commit
ixgbevf: add support for software timestamps commit
- mlxsw
spectrum: Expose discard counters via ethtool commit
Add Multicast routing support for Spectrum-2 commit
spectrum_acl: Add Bloom filter support to reduce the number of lookups in the algorithmic TCAM (A-TCAM) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Prepare for VLAN-aware bridge w/VxLAN commit, commit, commit, commit, commit
Add VxLAN support with VLAN-aware bridges commit, commit, commit, commit, commit, commit, commit, commit
Add VxLAN learning support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- mt76x0
mwifiex: add NL80211_STA_INFO_RX_BITRATE support commit
hinic:add rx checksum offload for HiNIC commit
- mlx5
Adds the support of mlx5 Multi Packet WQE (TX descriptor) - ConnectX-5 and above - for XDP TX, which allows to overcome the 70Mpps PCIe bottleneck of conventional TX queues (single TX descriptor per packet), and achieve the 100Mpps milestone with the MPWQE approach commit, commit, commit, commit, commit, commit, commit, commit, commit
Core generic EQ API for RDMA ODP commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add the support for mlx5 VF LAG, which provdies load-balancing and high-availability capabilities for VFs associated with different physical ports of the same Connect-X card commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add the support for mlx5 gre offloads commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Support for tunnels over VLAN tc offloads commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Enrich DEVX support in few aspects: it enables interoperability between DEVX and verbs and improves mechanism for controlling privileged DEVX commands commit, commit, commit, commit, commit, commit, commit
Add packet based credit mode, an alternative end-to-end credit mode for QPs set during their creation. Credits are transported from the responder to the requester to optimize the use of its receive resources. In packet-based credit mode, credits are issued on a per packet basis commit, commit, commit
Implementation of IBTA CapabilityMask2 commit, commit, commit, commit, commit, commit
Use extended destination feature for single/multidestination scenarios that have a single encap destination commit, commit, commit
Add support for mlx5 uplink representors commit, commit, commit, commit, commit, commit, commit, commit, commit
Increase VF representors' SQ size to 128 commit
Monitor counters commands support commit
ethtool, Support user configuration for RX hash fields commit
Attach a DEVX counter via raw flow creation commit
Add support for PCIe power slot exceeded error in PME commit
Add support for plugged-disabled cable status in PME commit
fsl_ucc_hdlc: add BQL support commit
- aquantia
dsa: mv88e6xxx: Add support for SERDES on ports 2-8 for 6390X commit
- hns3
Add complete reset support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Additions/optimizations related to HNS3 H/W err handling commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Provide some reset interfaces for RAS & RoCE commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Adds support of debugfs commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add support for ethtool -K to enable/disable HW GRO commit
Adds support to dump(using ethool-d) PCIe regs in HNS3 PF driver commit
Enable HW GRO for Rev B(=0x21) HNS3 hardware commit
Support "ethtool -d" for HNS3 VF driver commit
phy: Add support for resolving 5G and 2.5G autoneg commit
phy: bcm7xxx: Add entry for BCM7255 commit
aqc111: Add support for Aquantia AQtion USB to 5/2.5GbE devices commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- nfp
- octeontx2-af
NPC MCAM support and FLR handling commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
NIX and NPC enhancements commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, * octeontx2-af: Enable mkex profile commit
qed*: Doorbell overflow recovery commit, commit, commit, commit, commit, commit, commit
qede: Add a statistic for a case where driver drops tx packet due to memory allocation failure commit
qtnfmac: add support for Topaz chipsets commit
r8169: Add support for new Realtek Ethernet commit
stmmac: dwmac-mediatek: add support for mt2712 commit
tg3: extend PTP gettime function to read system clock commit
12.5. Audio
fireface: add support for Fireface 800 with MIDI functionality only commit
fireface: add support for packet streaming on Fireface 800 commit
fireface: add support for second optical interface for ADAT stream commit
firewire-tascam: add new hwdep ioctl command to get state image commit
hda: Add jack button support commit
hda: Support led audio trigger commit
hda: hdmi - Add Tegra186 and Tegra194 support commit
hda: realtek - Support Dell headset mode for New AIO platform commit
hda: add support for Huawei WMI micmute LED commit
- ASoC
Add AMD ACP3x support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Intel: hdac_hdmi: add Icelake support commit
Intel: kbl_rt5660: Add a new machine driver for kbl with rt5660 commit
ak4118: Add support for AK4118 S/PDIF transceiver commit
audio-graph-card: merge audio-graph-scu-card commit
dmic: introduce module_param wakeup_delay commit
meson: add axg spdif input commit
meson: axg-toddr: add support for spdifin backend commit
pxa: remove raumfeld machine driver commit
qdsp6: q6afe-dai: add support to Display port RX dais commit
qdsp6: q6asm-dai: Add support to compress offload commit
qdsp6: q6asm: add support to MP3 format commit
rsnd: add SSIU BUSIF support commit
rsnd: add TDM Split mode support commit
rt5660: Add a new ACPI match ID commit
rt5663: Add regulator support commit
sdm845: Add support for Secondary MI2S interface commit
simple-card: merge simple-scu-card commit
simple-scu-card: add dai-link support commit
12.6. Tablets, touch screens, keyboards, mouses
- Input
Enable High Resolution Wheel Scrolling on some or many Microsoft mice of the last decade and Logitech mice with the required feature support. It is exposed for userspace as REL_WHEEL_HI_RES and REL_HWHEEL_HI_RES commit, commit, commit, commit, commit, commit, commit, commit
Add official Raspberry Pi's touchscreen driver commit
elan_i2c - add ACPI ID for touchpad in ASUS Aspire F5-573G commit
xpad: add support for SteelSeries Stratus Duo commit
elantech: enable 3rd button support on Fujitsu CELSIUS H780 commit
Add ACPI ID for touchpad in Lenovo V330-15ISK commit
- HID
12.7. TV tuners, webcams, video capturers
add SECO cec driver commit
cec: add debug_phys_addr module option commit
imx214: Add imx214 camera sensor driver commit
mt9m111: add support to select formats and fps for {Q,SXGA} commit
mt9m111: support log_status ioctl and event interface commit
ov2640: support log_status ioctl and event interface commit
ov5640: Add 60 fps support commit
ov7670: support log_status ioctl and event interface commit
ov772x: support log_status ioctl and event interface commit
platform: Add Aspeed Video Engine driver commit
rc: add driver for Xbox DVD Movie Playback Kit commit
rtl28xxu: add support for Sony CXD2837ER slave demod commit
seco-cec: add Consumer-IR support commit
sun6i: Add A31 compatible commit
sun6i: Add support for Allwinner CSI V3s commit
usb: dvb-usb: remove old friio driver commit
uvcvideo: Add support for the CNF4 format commit
v4l: ioctl: Allow drivers to fill in the format description commit
venus: add support for key frame commit
vicodec: Add support for 4 planes formats commit
vicodec: Add support of greyscale format commit
video-i2c: support changing frame interval commit
12.8. Universal Serial Bus
serial: mos7840: add a product ID for the new product commit
serial: option: add Fibocom NL678 series commit
serial: pl2303: add ids for Hewlett-Packard HP POS pole displays commit
serial: pl2303: add new PID to support PL2303TB commit
chipidea: imx: add HSIC support commit
dwc3: debugfs: Dump internal LSP and ep registers commit
dwc3: drd: Add support for DR detection through extcon commit
renesas_usbhs: add support for RZ/G2E commit
12.9. Serial Peripheral Interface (SPI)
Add MXIC controller driver commit
Add QuadSPI driver for Atmel SAMA5D2 commit
add support for octal mode I/O data transfer commit
lpspi: Add slave mode support commit
npcm: add NPCM PSPI controller driver commit
12.10. Watchdog
12.11. Serial
serial: lantiq: Add CCF support commit
serial: sccnxp: Allow to use non-standard baud rates commit
tty/serial: Add RISC-V SBI earlycon support commit
tty: serial: Add RDA8810PL UART driver commit
12.12. ACPI, EFI, cpufreq, thermal, Power Management
Add security support for nvdimm based on Intel DSM spec v1.8. The passphrase is protected by encrypted-key and managed through the kernel key management framework. The security features supported are security state show, passphrase enable/update, passphrase disable, crypto erase, overwrite, and master passphrase enable/update and erase. Instead of allowing the security DSMs being issued via ioctl, the features are managed through a sysfs attribute that accept the relevant keyid for the encrypted-key(s) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
12.13. Real Time Clock (RTC)
abx80x: Implement RTC_VL_READ,CLR ioctls commit
Add i.MX system controller RTC support commit
pcf85363: Add support for NXP pcf85263 rtc commit
sun6i: Add support for all known pre-H6 variants commit
sun6i: Add support for different variants commit
12.14. Voltage, current regulators, power capping, power supply
- power
supply: Add Spreadtrum SC27XX fuel gauge unit driver commit
supply: add AC power supply driver for AXP813 commit
supply: bq24190_charger: add support for bq24192 variant commit
supply: bq24190_charger: add support for bq24196 variant commit
supply: sc2731_charger: Add charger status detection commit
supply: sc27xx: Add fuel gauge low voltage alarm commit
- regulator
12.15. Pin Controllers (pinctrl)
Add RZ/A2 pin and gpio controller commit
actions: Add Actions Semi S700 pinctrl driver commit
mediatek: Add initial pinctrl driver for MT6797 SoC commit
mediatek: add pinctrl support for MT7629 SoC commit
ocelot: add MSCC Jaguar2 support commit
sunxi: add support for suniv F1C100s (newer F-series SoCs) commit
12.16. Multi Media Card (MMC)
Add new Alcor Micro Cardreader SD/MMC driver commit
sdhci-of-esdhc: add hs400 mode support commit
sdhci_am654: Add Initial Support for AM654 SDHCI driver commit
12.17. Memory Technology Devices (MTD)
Add support for reading MTD devices via the nvmem API commit
maps: Get rid of the latch-addr-flash driver commit
spi-nor: Add Winbond w25q128jv support commit
spi-nor: Add support for IS25LP032/064 commit
spi-nor: Add support for is25lp016d commit
spi-nor: Add support for mx25u12835f commit
spinand: Add initial support for Toshiba TC58CVG2S0H commit
spinand: add support for GigaDevice GD5FxGQ4xA commit
spinand: winbond: Add support for W25N01GV commit
12.18. Industrial I/O (iio)
accel: kxcjk-1013: Add the "KXJ2109" ACPI HID commit
accel: kxcjk1013: Add KIOX0009 ACPI Hardware-ID commit
accel: kxcjk1013: Add KIOX010A ACPI Hardware-ID commit
adc128s052: add ACPI _HID AANT1280 commit
adc: Add ad7124 support commit
adc: exynos-adc: Add S5PV210 variant commit
adc: meson-saradc: add support for the chip's temperature sensor commit
imu: st_lsm6dsx: add hw FIFO support to i2c controller commit
imu: st_lsm6dsx: add i2c embedded controller support commit
light: Add support for vishay vcnl4035 commit
magnetometer: Add driver support for PNI RM3100 commit
magnetometer: ak8975: Add the "AKM9911" ACPI HID commit
magnetometer: st_magn: add LSM9DS1 support commit
potentiometer: Add driver for Microchip MCP41xxx/42xxx commit
potentiometer: tpl0102: add IIO_AVAIL_RANGE support commit
st-accel: add support for lis3de commit
adc:ad7949: Add AD7949 ADC driver family commit
dac:ad5686: Add AD5310R support commit
dac:ti-dac7311 Add driver for Texas Instrument DAC7311 commit
12.19. Inter-Integrated Circuit (I2C)
ismt: Add support for Intel Cedar Fork commit
12.20. Hardware monitoring (hwmon)
Adds a hwmon driver to support the OCC on POWER8 and POWER9 processors commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
k10temp: Add support for AMD family 17h, model 30h CPUs commit
k10temp: Add Hygon Dhyana support commit
lm75: Add STLM75 support commit
ntc_thermistor: add support for B57891S0103 from Epcos commit
12.21. General Purpose I/O (gpio)
12.22. Leds
trigger: Introduce audio mute LED trigger commit
12.23. DMA engines
mediatek: Add MediaTek Command-Queue DMA controller for MT6765 SoC commit
sh: Remove R-Mobile APE6 support commit
dmatest: Add support for multi channel testing commit
12.24. Cryptography hardware acceleration
caam/jr: add support for Chacha20 + Poly1305 commit
caam/qi2: add support for Chacha20 + Poly1305 commit
cavium/nitrox: Added AEAD cipher support commit
cavium/nitrox: Enabled Mailbox support commit
ccree: add support for CryptoCell 703 commit and CryptoCell 713 commit
12.25. PCI
switchtec: Add MRPC DMA mode support commit
imx: Add multi-pd support commit
amlogic: Add the Amlogic Meson PCIe controller driver commit
12.26. Clock
bd718x7: Initial support for ROHM bd71837/bd71847 PMIC clock commit
imx: Add clock driver for i.MX8MQ CCM commit, commit, commit, commit
imx: add imx7ulp clk support commit, commit, commit, commit, commit, commit, commit,
imx: add imx8qxp driver commit, commit, commit, commit, commit
meson: Add vid_pll divider driver commit
qcom: Add graphics clock controller driver for SDM845 commit
qcom: Add lpass clock controller driver for SDM845 commit
qcom: smd: Add support for QCS404 rpm clocks commit
qoriq: add more chips support commit
sunxi-ng: Add support for H6 DE3 clocks commit
rda: Add clock driver for RDA8810PL SoC commit
12.27. Various
EDAC, synopsys: Add ECC support for ZynqMP DDR controller commit
EDAC, synopsys: Add Error Injection support for ZynqMP DDR controller commit
Fonts: New Terminus large console font commit
HID: input: support Microsoft wireless radio control hotkey commit
ISDN: eicon: Remove driver commit
cpufreq: qcom-hw: Add support for QCOM cpufreq HW driver commit
cpuidle: Add cpuidle.governor= command line parameter commit
crypto: chacha20-generic - add HChaCha20 library function commit
drivers/perf: Add Cavium ThunderX2 SoC UNCORE PMU driver commit
drivers/perf: xgene: Add CPU hotplug support commit
drivers: base: Introducing software nodes to the firmware node framework commit
firmware: add Intel Stratix10 service layer driver commit
firmware: add remote status update client support commit
firmware: imx: add SCU power domain driver commit
fpga: add intel stratix10 soc fpga manager driver commit
hwspinlock: add STM32 hwspinlock device commit
i3c: Add core I3C infrastructure commit
i3c: master: Add driver for Cadence IP commit
i3c: master: Add driver for Synopsys DesignWare IP commit
iommu/vt-d: Add scalable mode support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
irqchip/irq-imx-gpcv2: Add support for i.MX8MQ commit
irqchip/sun4i: Add support for Allwinner ARMv5 F1C100s commit
irqchip: Add RDA8810PL interrupt driver commit
irqchip: Add driver for Cirrus Logic Madera codecs commit
irqchip: Add driver for imx-irqsteer controller commit
mailbox: tegra-hsp: Add support for shared mailboxes commit
memory: pl353: Add driver for arm pl353 static memory controller commit
memory: tegra: Introduce Tegra20 EMC driver commit
misc/pvpanic: add support to get pvpanic device info FDT commit
misc: cardreader: add new Alcor Micro Cardreader PCI driver commit
pcmcia: add MAX1600 library commit
phy: add driver for Freescale i.MX8MQ USB3 PHY commit
phy: cadence: Add driver for Sierra PHY commit
phy: sun4i-usb: add support for H6 USB2 PHY commit
phy: ti: introduce phy-gmii-sel driver commit
pinctrl: imx: add imx8qxp driver commit
ptp: add PTP_SYS_OFFSET_EXTENDED ioctl commit
soc/tegra: pmc: Add sysfs entries for reset info commit
soc: amlogic: Add Meson Clock Measure driver commit
soc: imx: gpcv2: add support for i.MX8MQ SoC commit
soc: mediatek: Add Mediatek CMDQ helper commit
i3c: Add sysfs ABI spec commit
thunderbolt: Export IOMMU based DMA protection support to userspace commit
ASoC: rsnd: Add r8a774c0 support commit
mei: me: add denverton innovation engine device IDs commit
13. List of merges