12305
Comment:
|
880
Linux 5.2
|
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 [http://kernelnewbies.org/status/latest.html Kernelnewbies status] list (2.5.57 - 2.6.0-test9 done) * 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 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: 2.6.5: 2.6.4: 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] 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.2)>> |
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.2 was released on 7 July 2019.
Summary: This release includes Sound Open Firmware, a project that brings open source firmware to DSP audio devices; open firmware for many Intel products is also included. This release also improves the Pressure Stall Information resource monitoring to make it usable by Android; the mount API has been redesigned with new syscalls; the BFQ I/O scheduler has gained some performance improvements; a new CLONE_PIDFD flag lets clone(2) return pidfs usable by pidfd_send_signal(2); Ext4 has gained support for case-insensitive name lookups; there is also a new device mapper target that simulates a device that has failing sectors and/or read failures; open source drivers for the ARM Mali t4xx and newer 6xx/7xx have been added. As always, there are fixes for the latest CPU bug (MDS) and many other new drivers and improvements.
Contents
-
Coolest features
- Inclusion of Sound Open Firmware
- Improved Presure Stall Information for better resource monitoring
- New mount API
- Significant performance improvements in the BFQ I/O scheduler
- New GPU drivers for ARM Mali devices
- More CPU bug protection, and "mitigations" boot option
- Let clone(2) return pidfs
- Optional support for case-insensitive names in ext4
- Add freezer controller for cgroups v2
- Add device mapper dust target
- 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)
- Multi Function Devices (MFD)
- Pulse-Width Modulation (PWM)
- Inter-Integrated Circuit (I2C)
- Hardware monitoring (hwmon)
- General Purpose I/O (gpio)
- Leds
- DMA engines
- Cryptography hardware acceleration
- PCI
- Thunderbolt
- Clock
- PHY ("physical layer" framework)
- EDAC (Error Detection And Correction)
- Various
- List of feature merges
- Other news sites
1. Coolest features
1.1. Inclusion of Sound Open Firmware
While many audio DSP devices have open source drivers, their firmware has remained closed and shipped as binary files. As a result, firmware issues have often been difficult to address. The Sound Open Firmware -SOF- project, backed by Intel and Google, has been created to improve this situation by providing a open source platform to create open source firmware for audio DSPs. Not only SOF will allow users to have open source firmware, it will allow them to personalize their own firmware, or even use the power of the DSP processors in their sound cards in imaginative ways. This release includes the SOF core, plus open source firmware from Intel for many of their mainstream products: Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake and IceLake
Recommended LWN article: The Sound Open Firmware project launches
Project site: https://www.sofproject.org
Instructions in the ALSA website: https://www.alsa-project.org/main/index.php/Firmware
1.2. Improved Presure Stall Information for better resource monitoring
Pressure stall information were added to Linux 4.20 as a way to quantify resource pressure in the system in a better way than the traditional load average. PSI aggregates and reports the overall wallclock time in which the tasks in a system (or cgroup) wait for cpu, io or memory.
This release lets users to configure sensitive thresholds and use poll() and friends to be notified when a certain pressure thresold is breached within a user-defined time window. With this mechanism, Android can monitor for, and ward off, mounting memory shortages before they cause problems for the user. For example, using memory stall, monitors in userspace like the low memory killer daemon (lmkd) can detect mounting pressure and kill less important processes before device becomes visibly sluggish. In memory stress testing psi memory monitors produce roughly 10x less false positives compared to vmpressure.
Recommended LWN article: Pressure stall monitors
1.3. New mount API
The mount(2) system call is in charge of mounting file systems. It does its job well, but as new mount functionality was added over the years, it had to be implemented on top of the existing interface, which was not designed for complex scenarios and has thus accumulated a lot of baggage (see this email for details). The current mount(2) interface is actually six or seven different interfaces rolled into one, and weird combinations of flags make it do different things beyond the original specification of the system call. It's not just aesthethics; it's not easy for applications and users to understand the errors returned, it is not geared for the specification of multiple sources such as overlayfs need, you can't mount a file system into another mount namespace, and it doesn't allow for other funcionality that have to be implemented with hacks such as shiftfs.
Linux developers decided to redesign the entire mount API in this release, which has resulted in the addition of six new syscalls: fsopen(2), fsconfig(2), fsmount(2), move_mount(2), fspick(2), and open_tree(2). These syscalls allow developers write code such as this:
fd = fsopen("nfs"); fsconfig(fd, FSCONFIG_SET_STRING, "option", "val", 0); fsconfig(fd, FSCONFIG_CMD_CREATE, NULL, NULL, 0); mfd = fsmount(fd, MS_NODEV); move_mount(mfd, "", AT_FDCWD, "/mnt", MOVE_MOUNT_F_EMPTY_PATH);
or reconfigure a superblock:
fd = fspick(AT_FDCWD, "/nfs/foo", FSPICK_NO_AUTOMOUNT); fsconfig(fd, FSCONFIG_SET_FLAG, "noac", NULL, 0); fsconfig(fd, FSCONFIG_CMD_RECONFIGURE, NULL, NULL, 0);
Recommended LWN article: Six (or seven) new system calls for filesystem mounting
1.4. Significant performance improvements in the BFQ I/O scheduler
Some performance tweaks to the BFQ I/O scheduler have been done, which have improved the application start-up times under load by up to 80%, drastically increased the performance and decreased the execution time. For more details, see the benchmarks or the following article:
Recommended LWN article: Improving the performance of the BFQ I/O scheduler
1.5. New GPU drivers for ARM Mali devices
This release has two exciting community drivers for ARM Mali accelerators. Since ARM has never been open source friendly on the GPU side of the house, the community has had to create open source drivers for the Mali GPUs. Lima covers the older t4xx and panfrost the newer 6xx/7xx series. Well done to all involved and hopefully this will help ARM
1.6. More CPU bug protection, and "mitigations" boot option
This release adds bug infrastructure to deal with the Microarchitectural Data Sampling (MDS) hardware vulnerability, which allows unprivileged speculative access to data which is available in various CPU internal buffers. This new set of misfeatures has the following variants: Microarchitectural Store Buffer Data Sampling (MSBDS, CVE-2018-12126), Microarchitectural Fill Buffer Data Sampling (MFBDS, CVE-2018-12130), Microarchitectural Load Port Data Sampling (MLPDS, CVE-2018-12127), Microarchitectural Data Sampling Uncacheable Memory (MDSUM, CVE-2019-11091). For more details see the documentation and admin guide
Also, in order to help users to deal with the ever increasing amount of CPU bugs across different architectures, the kernel boot option mitigations= has been added. It's a set of curated, arch-independent options (for now x86, PowerPC and s390), to make more easy to enable/disable protections regardless of what system they are running
1.7. Let clone(2) return pidfs
This release adds the CLONE_PIDFD flag to clone(2). This lets users to get pids at process creation time that are usable with the pidfd_send_signal(2) syscall. Due to the design of Unix, sending signals to processes or gathering /proc information is not always safe due to the possibility of PID reuse; pidfds let Linux avoid this problem, and this new clone(2) flag makes even easier to get pidfs, thus providing an easy way to signal and process PID metadata safely.
1.8. Optional support for case-insensitive names in ext4
This release implements the actual support for case-insensitive file name lookups in ext4, based on the feature bit and the encoding stored in the superblock. A filesystem that has the casefold feature set is able to configure directories with chattr +F (EXT4_CASEFOLD_FL) attribute, enabling lookups to succeed in that directory in a case-insensitive fashion, i.e: match a directory entry even if the name used by userspace is not a byte per byte match with the disk name, but is an equivalent case-insensitive version of the Unicode string.
The feature is configured as an inode attribute applied to directories and inherited by its children. This attribute can only be enabled on empty directories for filesystems that support the encoding feature, thus preventing collision of file names that only differ by case.
Recommended LWN article: Case-insensitive ext4
1.9. Add freezer controller for cgroups v2
Cgroup v1 implements the freezer controller, which provides an ability to stop the workload in a cgroup and temporarily free up some resources (cpu, io, network bandwidth and, potentially, memory) for some other tasks. Cgroup v2 lacked this functionality, until this release.
Unlike with the cgroup v1 version, there is no separate controller, which has to be turned on, the functionality is always available and is represented by cgroup.freeze and cgroup.events cgroup control files. Writing "1" to the cgroup.freeze file will cause freezing of the cgroup and all descendant cgroups and all their belonging processes will be stopped and will not run until the cgroup will be explicitly unfrozen. Freezing may take some time; when this action is completed, the "frozen" value in the cgroup.events control file will be updated to "1". There are other differences required to conform the cgroup v2 interface design principles.
1.10. Add device mapper dust target
This release adds a Device Mapper 'dust' target. This target simulates a device that has failing sectors and/or read failures, and adds the ability to enable the emulation of the read failures at an arbitrary time. It is, thus, aimed at storage developers and sysadmins that want to test their storage stack. At a given time, the user can send a message to the target to start failing read requests on specific blocks. When the failure behavior is enabled, reads of blocks configured "bad" will fail with EIO.
2. Core (various)
(FEATURED) Add mitigations= boot option. It's a set of curated, arch-independent options (for now x86, PowerPC and s390), to make more easy to enable/disable protections regardless of what system they are running commit, commit, commit, commit, commit
(FEATURED) clone(2): add CLONE_PIDFD. This lets users of clone(2) to get pids at process creation time that are usable with the pidfd_send_signal(2) syscall, thus providing an easy way to access without races to process metadata through /proc/<pid> commit, commit, commit, commit, commit
- io_uring
(FEATURED) pressure stall monitors: Presure stall monitors were added in Linux 4.20 as a way to quantify resource pressure in the system. This release lets users to configure sensitive latency thresholds and use poll() and friends to be notified when these thresolds are breached. With these patches applied, Android can monitor for, and ward off, mounting memory shortages before they cause problems for the user. For example, using memory stall monitors in userspace low memory killer daemon (lmkd) we can detect mounting pressure and kill less important processes before device becomes visibly sluggish commit, commit, commit, commit, commit, commit, commit
(FEATURED) Add new mount syscalls commit, commit, commit, commit, commit, commit, commit, commit, commit, commit,
(FEATURED) cgroups: implement freezer for cgroup v2. It provides similar functionality as v1 freezer, but the interface conforms to the cgroup v2 interface design principles, and it provides a better user experience: tasks can be killed, ptrace works, there is no separate controller, which has to be enabled, etc commit, commit, commit, commit, commit, commit, commit, commit, commit
cgroup: expose pressure stall information metrics on root cgroup commit
eventfd: To provide the way to find endpoints of an eventfd file, this patch adds "eventfd-id" field to /proc/PID/fdinfo of eventfd as identifier commit
gcov: clang support commit
kbuild: allow Kbuild to start from any directory commit
Cpu/hotplug: Create SMT sysfs interface for all arches, so user space has a consistent way to detect whether SMT is enabled commit
- locking
rwsem unification and simpler micro-optimizations to prepare for more intrusive (and more lucrative) scalability improvements in the future commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
static_key: improve rate limited labels commit, commit, commit
rcu: Allow rcu_nocbs=all to specify all CPUs commit
rcu: Avoid unnecessary softirq when system is idle commit
lockref: Limit number of cmpxchg loop retries to avoid excessive looping commit
task scheduler: Allow CPU0 to be nohz full commit, commit, commit, commit, commit
tty: Add NULL TTY driver that discards all writes. It can be chosen on the command line in the standard way, i.e. with console=ttynull commit
objtool: Teach objtool to validate the UACCESS (SMAP, PAN) rules merge
GDB scripts: Add a timer list command commit, add hlist utilities commit, add kernel config dumping command commit, add rb tree iterating utilities commit, initial clk support: lx-clk-summary commit
IPC/mqueue: optimize msg_get() commit
ktest: introduce grub2bls REBOOT_TYPE option commit
Allow all arches to enable CONFIG_OPTIMIZE_INLINING commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
All-arch unification of internal TLB flushing APIs commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Optionally allow to provide kernel headers with the kernel as an archive through proc (/proc/kheaders.tar.xz file) commit
Introduce the Counter subsystem for supporting counter devices. In the context of the Generic Counter interface, a counter is defined as a device that reports one or more "counts" based on the state changes of one or more "signals" as evaluated by a defined "count function" commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
panic: add a panic_print option to replay the dmesg in buffer during a panic, some of which they may have never seen due to the loglevel setting commit
3. File systems
- BTRFS
qgroups: last speed up in the series to address the slowness, there should be no overhead comparing balance with and without qgroups commit, commit, commit, commit, commit, commit, commit, commit, commit
Improve performance on fsync of files with multiple hardlinks commit
btrfs send tries harder to find ranges to clone commit
Better checks to catch RAM corruption on data before it gets written to disk commit, commit, commit, commit, commit, commit, commit, commit, commit
tree-checker: Allow error injection for tree-checker commit
- XFS
Introduce a new online health reporting infrastructure and ioctl for userspace to query a filesystem's metadata health status after online fsck checks the filesystem commit, commit, commit, commit, commit, commit, commit, commit
Enhances the online scrub and repair code to report their findings to the health tracking subsystem commit, commit, commit, commit, commit
Add online scrub for superblock counters. The online metadata checking code is feature complete with the addition of checks for the global fs counters, though it'll remain EXPERIMENTAL for now commit, commit, commit, commit, commit
- EXT4
- CEPH
- CIFS
- FUSE
- NFS
- ORANGEFS
Implement xattr cache commit
- OVERLAYFS
- UBIFS
Limit number of xattrs per inode commit
- AFS
4. Memory management
Heterogeneous memory node attributes: Platforms may provide multiple types of cpu attached system memory. The memory ranges for each type may have different characteristics that applications may wish to know about when considering what node they want their memory allocated from. This release provides the attributes from such systems that are useful for applications to know about, and readily usable with existing tools and libraries commit, commit, commit, commit, commit, commit, commit, commit, commit
Make mincore(2) more conservative, to avoid exposing information about pagecache / memory mapping state, even about memory not strictly belonging to the process executing the syscall, opening possibilities for sidechannel attacks commit
userfaultfd: Add a global sysctl vm.unprivileged_userfaultfd to control whether userfaultfd is allowed by unprivileged users commit
Randomize free memory. Randomization of the page allocator improves the average utilization of a direct-mapped memory-side-cache commit, commit, commit
Add FOLL_LONGTERM to GUP fast, which lets it be used in situations such as DAX commit, commit, commit, commit, commit, commit, commit
slab: remove /proc/slab_allocators commit
z3fold: support page migration commit
5. Block layer
Improve DM snapshot target's scalability by using finer grained locking commit, commit, commit, commit, commit, commit
Add ability for DM integrity to use a bitmap mode, that tracks regions where data and metadata are out of sync, instead of using a journal, for improved performance commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
(FEATURED) Add testing-only DM dust target which simulates a device that has failing sectors and/or read failures commit
(FEATURED) BFQ: performance improvements commit, commit, commit, commit, commit, commit
block: remove CONFIG_LBDAF commit
6. Tracing, perf and BPF
- perf
record: Allow compression of perf ring buffer with option -z, resulting in ~3-5x perf.data file size reduction on variety of tested workloads commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
stat: Add a 'percore' event qualifier, e.g.: -e cpu/event=0,umask=0x3,percore=1/ that sums up the event counts for both hardware threads in a core. It is possible to do that now with --per-core, but it's often useful to do this together with other metrics that are collected per hardware thread commit, commit, commit
perf list: Output tool events commit
record: Implement --mmap-flush=<number> option to specify the minimal number of bytes that is extracted from mmaped kernel buffer to store into a trace. The default option value is 1 byte what means every time trace writing thread finds some new data in the mmaped buffer the data is extracted, possibly compressed and written to a trace commit
scripts: exported-sql-viewer.py: Add context menu commit, add copy to clipboard commit
perf stat: Implement duration_time as a proper event commit
perf trace: Add 'string' event alias to select syscalls with string args commit
- BPF
kbuild: add ability to generate BTF type info for vmlinux and kernel modules. The intent is to record compact type information of all types used inside kernel, in order to enables BPF's compile-once-run-everywhere approach, in which tracing programs that are inspecting kernel's internal data can be compiled on a system running some kernel version, but would be possible to run on other kernel versions (and configurations) without recompilation, even if the layout of structs changed and/or some of the fields were added, removed, or renamed commit
Add global data support for BPF. The kernel has been extended to add proper infrastructure that allows for full .bss/.data/.rodata sections on BPF loader commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add a new program type BPF_PROG_TYPE_CGROUP_SYSCTL and attach type BPF_CGROUP_SYSCTL. BPF_CGROUP_SYSCTL hook is placed before calling to sysctl's proc_handler so that accesses (read/write) to sysctl can be controlled for specific cgroup and either allowed or denied, or traced commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
New set of arguments to bpf_attr for BPF_PROG_TEST_RUN: ctx_in/ctx_size_in - input context and ctx_out/ctx_size_out - output context commit, commit, commit,
Add BPF sk local storage. It attempts to make bpf's network programming more intuitive to do (together with memory and performance benefit) commit, commit, commit, commit, commit, commit, commit
Support variable offset stack access from helpers commit, commit
BPF tc tunneling: it allows for dynamic tunneling, choosing the tunnel destination and features on-demand commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Allow checking SYN cookies from XDP and tc cls act commit, commit, commit, commit, commit, commit, commit, commit
Extend bpf_skb_adjust_room growth to mark inner MAC header so that L2 encapsulation can be used for tc tunnels commit, commit, commit, commit
Improve verifier scalability commit, commit, commit, commit, commit, commit, commit, commit, commit
Add an opt-in interface for tracepoints to expose a writable context to BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE programs that are attached, while supporting read-only access from existing BPF_PROG_TYPE_RAW_TRACEPOINT programs, as well as from non-BPF-based tracepoints commit, commit, commit, commit, commit
Make bpf_skb_ecn_set_ce callable from BPF_PROG_TYPE_SCHED_ACT commit
Support BPF_PROG_QUERY for BPF_FLOW_DISSECTOR attach_type commit, commit
bpftool: Support sysctl hook commit
- tracing
Introduce a new ftrace file, tracing/error_log, for ftrace commands to log errors. This is useful for allowing more complex commands such as hist trigger and kprobe_event commands to point out specifically where something may have gone wrong without forcing them to resort to more ad hoc methods such as tacking error messages onto existing output files commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
tracing: Kernel access to Ftrace instances commit
7. Virtualization
- virtio
- KVM
hv_sock: Add support for delayed close commit
8. Cryptography
ecrdsa: add EC-RDSA (GOST 34.10) algorithm commit
simd: support wrapping AEAD algorithms commit
testmgr: add panic_on_fail module parameter commit
9. Security
security: Create "kernel hardening" config area commit
ntp: Audit NTP parameters adjustment commit
tomoyo: Add a kernel config option for fuzzing testing commit
tls: Add support of AES128-CCM based ciphers commit
Implement Clang's stack initialization commit
10. Networking
- TCP
IPv4: Enable support for IPv6 gateway with IPv4 routes commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- IPv6
Add icmp_echo_ignore_anycast ioctl for ICMPv6. It makes the kernel ignore all ICMP ECHO requests destined to anycast address commit
Add icmp_echo_ignore_multicast ioctl for ICMPv6. It makes the kernel ignore all ICMP ECHO requests destined to multicast address commit
Add rate limit mask for ICMPv6 messages commit
- batman-adv
Support binding vlan dev link state to vlan member bridge ports commit, commit, commit, commit, commit
Switch IP ID generator to siphash commit
ethtool: add support for Fast Link Down as new PHY tunable commit
- packet scheduler
Foo over UDP: Support binding FoU socket commit
- High-availability Seamless Redundancy
ipvs: allow tunneling with gue encapsulation commit
WiFi
- Netfilter
netlink strict validation commit, commit, commit, commit, commit
openvswitch: Add timeout support to ct action commit
socket: implement 64-bit timestamps commit
taprio: adds support for changing the running schedules during "runtime" commit, commit, commit, commit
- tipc
tun: Add ioctl TUNGETDEVNETNS cmd to allow obtaining real net ns of tun device commit
vlan: disable SIOCSHWTSTAMP in container commit
macvlan: disable SIOCSHWTSTAMP in container commit
Support ESP offload in combination with gso partial commit
- RDMA
- netdevsim
11. Architectures
11.1. ARM
New SoCs
- New boards
coresight: Support static funnel commit
Add PCI ATS support to Arm SMMUv3 commit, commit, commit, commit, commit, commit, commit, commit
perf: add a driver for the SMMUv3 PMU into the perf framework commit, commit, commit
11.2. ARM64
Introduces a DC CVADP instruction which cleans the data cache to the point of deep persistence commit, commit, commit, commit, commit, commit
Expose SVE2 features for userspace commit
Add system vulnerability sysfs entries commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- KVM
Implements support for allowing KVM guests to use the Arm Scalable Vector Extension (SVE) 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 ARMv8.3 pointer authentication for kvm guest commit, commit, commit, commit
perf: support for perf event modifiers :G and :H which allows for filtering of PMU events between host and guests when used with KVM commit, commit, commit, commit, commit, commit, commit, commit
perf vendor events: Add Cortex-A57 and Cortex-A72 events commit
11.3. X86
Introduce x86-64 IRQ/exception/debug stack guard pages to detect stack overflows immediately and deterministically 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) Add bug infrastructure to deal with the Microarchitectural Data Sampling (MDS) hardware vulnerability, which allows unprivileged speculative access to data which is available in various CPU internal buffers. This new set of misfeatures has the following variants: Microarchitectural Store Buffer Data Sampling (MSBDS, CVE-2018-12126), Microarchitectural Fill Buffer Data Sampling (MFBDS, CVE-2018-12130), Microarchitectural Load Port Data Sampling (MLPDS, CVE-2018-12127), Microarchitectural Data Sampling Uncacheable Memory (MDSUM, CVE-2019-11091) 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
Optimize when to load FPU registers: only when returning to userspace and not on every context switch (while the task remains in the kernel). By this optimisation we can avoid loading the registers if the task stays in kernel and does not return to userland, and make kernel_fpu_begin() cheaper 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
Sysfs interface to set the Performance and Energy Bias Hint (EPB) commit, commit
- platforms
chrome: Add CrOS USB PD logging driver commit
chrome: Add support for v1 of host sleep event commit
chrome: cros_ec: Add EC host command support using rpmsg commit
chrome: wilco_ec: Add h1_gpio status to debugfs commit
Add support for Basin Cove power button commit
asus-wmi: Add fn-lock mode switch support commit
mlx-platform: Add support for tachometer speed register commit
perf: Add Icelake support (kernel only, except Topdown) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
perf: Add Tremont core PMU support commit
perf: Add support for recording and printing XMM registers available, for instance, on Icelake commit
perf vendor events intel: Update Bonnell to V4 commit, update Broadwell events to v23 commit, update Broadwell-DE events to v7 commit, update BroadwellX events to v14 commit, update Goldmont to v13 commit, update GoldmontPlus to v1.01 commit, update Haswell events to v28 commit, update HaswellX events to v20 commit, update IvyBridge events to v21 commit, update IvyTown events to v20 commit, update JakeTown events to v20 commit, update KnightsLanding events to v9 commit, update SandyBridge events to v16 commit, update Silvermont to v14 commit, update Skylake events to v42 commit, update SkylakeX events to v1.12 commit, update metrics from TMAM 3.5 commit
- Intel trace hub
KVM: Implement HWCR support commit
KVM: Introduce a new guest mapping interface commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
hyper-v: Implement EOI assist optimization commit
Inject a PMI for KVM Guest when ToPA buffer is filled commit, commit
XEN: Add "xen_timer_slop" command line option commit
11.4. CSKY
ftrace: Add dynamic function tracer (include graph tracer) commit
Add page fault perf event support commit
Add perf callchain support commit
Add support for perf registers sampling commit
Support dynamic start physical address commit
Add support for libdw commit
Add support for perf unwind-libdw commit
11.5. MIPS
eBPF: Initial support for MIPS32 architecture commit
11.6. PARISC
Convert page table updates to use per-pagetable spinlocks which overall improves performance on SMP machines a lot commit
Add KGDB support commit
11.7. POWERPC
Support for Kernel Userspace Access/Execution Prevention (like SMAP/SMEP/PAN/PXN) on some 64-bit and 32-bit CPUs. This prevents the kernel from accidentally accessing userspace outside copy_to/from_user(), or ever executing userspace commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
KVM: Book3S HV: add XIVE native exploitation mode commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
32 bit: Add KASAN support commit
32 bit: A fast path entry for syscalls on 32-bit CPUs, for a 12-17% speedup in the null_syscall benchmark commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Warn if W+X pages found on boot commit
Show powerpc_security_features in debugfs commit
Add force enable of DAWR on P9 option commit
11.8. RISCV
11.9. S390
Add support for kernel address space layout randomization (KASLR) commit
Support relocatable kernel commit
Add support for kernel image signature verification commit
KVM: new guest facilities commit, commit, commit, commit, commit, commit, commit
KVM: Add halt_poll_max_steal to set the maximum percentage of steal time to allow polling commit
Add support for the CPU-Measurement Facility counter second version number 6 commit, commit
crypto: use TRNG for seeding/reseeding commit
ipl: Provide has_secure sysfs attribute commit
qeth: add TX multiqueue support for IQD devices commit
qeth: add TX multiqueue support for OSA devices commit
Protected virtualization guest support commit
Report new CPU capabilities commit
PCI: Add parameter to disable usage of MIO instructions commit
Add parameter to force floating irqs commit
Show statistics for MSI IRQs commit
vfio-ccw: support hsch/csch commit, commit, commit, commit, commit, commit
11.10. XTENSA
Add exclusive atomics support commit
11.11. ARC
HSDK platform updates commit, commit, commit, commit, commit
Kill applications trying to access kernel virtual space commit
12. Drivers
12.1. Graphics
- Userspace DRM API
Initial merge of timeline sync objects. Timeline syncobj gives user more flexibility and convenience to do sychronization commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Expose FB_DAMAGE_CLIPS to atomic aware userspace only commit
Add Colorspace connector property interface to program colorspace to sink devices. Modern sink devices support more than 1 type of colorspace like 601, 709, BT2020 etc. This helps to switch based on content type which is to be displayed commit, commit, commit
Enable P0xx (planar), Y2xx and Y4xx (packed) pixel formats commit, commit, commit, commit, commit, commit
fourcc: Add AFBC yuv fourccs for Mali commit, commit, commit, commit, commit, commit, commit, commit
- New drivers
- i915
Updated Icelake PCI IDs commit
Elkhartlake (Gen11) support commit, commit, commit, commit, commit, commit
gvt: Enable async flip on plane surface mmio writes, some 3D applications have significant performance improvement commit
Add support for Gen 11 pipe color features commit, commit, commit
Implement HDCP2.2 commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
DP MST property addtions commit, commit, commit, commit, commit, commit
- amdgpu
- Use HMM for userptr
vega20 experimental smu11 support merge
Add initial RAS (Reliability, Availability, Serviceability) support to amdgpu on supported boards. Features include SRAM and VRAM ECC, bad page tracking, and error containment commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
BACO (Bus Active, Chip Off) support for vega12 commit, commit, commit
NV12 planes support commit
colorspace properties for planes commit
Expose generic SDP message access interface commit
Expose support for DRM_FORMAT_RGB565 commit
Expose support for alpha blending on overlays commit
Add sysfs files for returning VRAM/GTT info2 commit
Enable XGMI mapping for peer device commit
Add sysfs entries for xgmi hive commit
amdkfd: Add missing Polaris10 ID commit
Add debugfs dpcd interface commit
Add debugfs entry for amdgpu_dm_visual_confirm commit
Generic SDP message access in debugfs commit
- panel
- msm
- meson
- malidp
- omapdrm
- nouveau
- rockchip
rk3066 hdmi support commit
- sun4i
DSI burst mode support commit
- v3d
v3d v4.2 support commit
- rcar-du
Display writeback support commit
- vc4
Add a debugfs entry to disable/enable the load tracker commit
- cirrus
Rewrite and modernize driver commit
backlight: lm3630a: Add firmware node support commit
Add library for shmem backed GEM objects commit
12.2. Storage
ahci: qoriq: add ls1028a platforms support commit
ahci: qoriq: add lx2160 platforms support commit
nvmet-tcp: implement C2HData SUCCESS optimization commit
- SCSI
mpt3sas: Load balance to improve performance and avoid soft lockups commit
qedf: Add driver state to 'driver_stats' debugfs node commit
qla2xxx: qla2xxx: Add support for ISP28XX (Gen7) adapter commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
smartpqi: add H3C controller IDs commit
target: Add device product id and revision configfs attributes commit
ufs-cdns: Add support for UFSHCI with M31 PHY commit
ufs-mediatek: Add UFS support for Mediatek SoC chips commit
12.3. Drivers in the Staging area
spi: mt7621: Move SPI driver out of staging commit
iio: ad7780: moving ad7780 out of staging commit
erofs: support IO read error injection commit
iio: ad7780: add gain & filter gpio support commit
most: enable configfs support commit
Add Fieldbus Device subsystem commit
fieldbus: anybus-s: support HMS Anybus-S bus commit
fieldbus: anybus-s: support the Arcx anybus controller commit
fieldbus: support HMS Profinet IRT industrial controller commit
kpc2000: add initial set of Daktronics drivers commit
kpc2000: Add DMA driver commit
media: cedrus: Add support for H6 commit
media: zoran: remove deprecated driver commit
m57621-mmc: delete driver from the tree commit
Remove mt7621-eth commit
rtlwifi: delete the staging driver commit
12.4. Networking
- Bluetooth
hfi1: Add debugfs to control expansion ROM write protect commit
Add the Elastic Fabric Adapter (EFA) driver commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
ipoib: Allow user space differentiate between valid dev_port commit
Allow FDB, RAW flows and DEVX on representors together with small fixes commit, commit, commit, commit, commit, commit
aquantia: Implement hwmon api for chip temperature commit, commit
bnx2x: Add support for detection of P2P event packets commit
- bnxt_en
cxgb4/cxgb4vf: Display advertised FEC in ethtool commit
dpaa2-eth: Add flow steering support without masking commit
- Distributed switch architecture
enetc: Add missing link state info for ethtool commit
hns3: add some DFX info for HNS3 driver commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- i40e
- ice
- igc
- iwlwifi
Add support for 6-7 GHz channels commit
dbg: add DRAM monitor support for AX210 device family commit
dbg_ini: add lmac and umac error tables dumping support commit
dbg_ini: add periodic trigger support commit
for AX210 device support radio GF4 commit
mvm: enable HT/VHT IBSS commit
mvm: support multiple BSSID commit
mvm: support v2 of the WoWLAN patterns command commit
- mlx5
- mlx5e
Add the Support for VLAN modify action and replaces TC VLAN pop and push actions with VLAN modify commit, commit, commit
Offload TC e-switch rules with egress/ingress VLAN devices commit, commit
Add Geneve tunnel stateless offload support commit
XDP, Inline small packets into the TX MPWQE in XDP xmit flow commit
ethtool, Add support for EEPROM high pages query commit
- mlxsw
- mt76
mvneta: Add 2500BaseT support commit
- mvpp2
mwifiex: add support for SD8987 chipset commit
- nfp
- phy
Move Omega PHY entry to Cygnus PHY driver commit
Add amlogic g12a mdio mux support commit
Add support for reset-controller commit
aquantia: add SGMII statistics commit
aquantia: add downshift support commit
marvell: add PHY tunable fast link down support for 88E1540 commit
meson-gxl: add g12a support commit
mscc: add support for VSC8514 PHY commit
- qtnfmac
rsi: add new device model for 9116 commit
rt2x00: add RT3883 support commit
rtw88: new Realtek 802.11ac driver commit
tg3: allow ethtool -p to work for NICs in down state commit
12.5. Audio
aloop: Support S24 sample formats commit
firewire-motu: add support MOTU 8pre !FireWire commit
hda/intel: add !CometLake PCI IDs commit
hda/realtek: Support low power consumption for ALC256 commit and ALC295 commit
oxfw: allow PCM capture for Stanton SCS.1m commit
- ALSA System on Chip
(FEATURED) Add support for Sound Open Firmware for the common DSP framework commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Sound Open Firmware (SOF) - Intel support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Intel: add sof-rt5682 machine driver commit
Intel: common: add Geminilake Realtek+Maxim machine driver entry commit
Intel: skl_hda_dsp_generic: add DMIC support commit
Mediatek: MT8183: Add machine driver with DA7219 commit
Mediatek: MT8183: Add machine driver with TS3A227 commit
Mediatek: MT8183: change supported formats of DL2 and UL1 commit
cs42l51: add reset, regulators, master mode, power management, adc volume control commit, commit, commit, commit, commit, commit
es8316: Add support for inverted jack detect commit
fsl: Add NXP AUDMIX device and machine drivers commit, commit
lochnagar: Add driver to support Lochnagar 2 sound card commit
mchp-i2s-mcc: add driver for I2SC Multi-Channel Controller commit
rt5651: Add support for active-high jack detect commit
rt5677-spi: Add ACPI ID commit
- sprd
- tlv320aic31xx
wm_adsp: Add support for new Halo core DSPs commit
12.6. Tablets, touch screens, keyboards, mouses
Add KEY_KBD_LAYOUT_NEXT, a key to cycle through a set of keyboard layouts commit, commit
Add a driver for GPIO controllable vibrators commit
Add support for Azoteq IQS550/572/525 commit
goodix: add GT5663 CTP support commit
qt1050: add Microchip AT42QT1050 support commit
sun4i-a10-lradc-keys: add support for A83T commit
max77650: Add onkey support commit
- HID
Add driver for U2F Zero built-in LED and RNG commit
intel-ish-hid: Add Comet Lake PCI device ID commit
intel-ish-hid: ISH firmware loader client driver commit
logitech: Handling of non DJ receivers in hid-logitech-dj 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
logitech-dj: add support for the Logitech MX5500's Bluetooth Mini-Receiver commit
logitech-hidpp: add support for the MX5500 keyboard commit
logitech-hidpp: Add support for the S510 remote control commit
macally: Add support for Macally ikey keyboard commit
12.7. TV tuners, webcams, video capturers
Media Device Allocator internal API, which allows multiple drivers share a media device. It solves a very common use-case for media devices where one physical device (an USB stick) provides both audio and video commit, commit, commit, commit, commit
v4l: add I / P frame min max QP definitions commit
user api: Add MEDIA_BUS_FMT_BGR888_3X8 media bus format commit
vicodec: Add support for stateless decoder commit
atmel-isc: Add support for BT656 with CRC decoding commit
dvb: Add support for the Avermedia TD310 commit
platform: meson: Add Amlogic Meson G12A AO CEC Controller driver commit
rcar-csi2: Enable support for r8a774a1 commit
rcar-vin: Enable support for r8a774a1 commit
st-mipid02: MIPID02 CSI-2 to PARALLEL bridge driver commit
12.8. Universal Serial Bus
usb/hcd: Send a uevent signaling that the host controller had died commit
xhci: add Immediate Data Transfer support, which allow the HCD to copy small chunks of data (up to 8bytes) directly into its output transfer TRBs. This avoids the somewhat expensive DMA mappings that are performed by default on most URBs submissions commit
gadget: f_ncm: Add OS descriptor support commit
dwc3: Add Amlogic G12A DWC3 glue commit
host: xhci-tegra: Add Tegra186 XUSB support commit
mtu3: add debugfs interface files commit
mtu3: supports new QMU format commit
typec: Add driver for NVIDIA Alt Modes commit
typec: ucsi: Support for DisplayPort alt mode commit
typec: ucsi: ccg: add firmware flashing support commit
usb-storage: Add new ID to ums-realtek commit
serial: pl2303: add Allied Telesis VT-Kit3 commit
serial: option: add Telit 0x1260 and 0x1261 compositions commit
serial: option: add support for Simcom SIM7500/SIM7600 RNDIS mode commit
12.9. Serial Peripheral Interface (SPI)
bcm2835aux: add driver stats to debugfs commit
dw: Add support for an optional interface clock commit
imx: add module parameter to control DMA use commit
lpspi: Add i.MX8 boards support for lpspi commit
lpspi: add dma mode support commit
lpspi: enable runtime pm for lpspi commit
pxa2xx: Add support for Intel Comet Lake commit
spi-mem: Add support for Zynq QSPI controller commit
tegra114: add 3 wire transfer mode support commit
tegra114: add dual mode support commit
12.10. Watchdog
bd70528: Initial support for ROHM BD70528 watchdog block commit
imx_sc: Add i.MX system controller watchdog support commit
12.11. Serial
serial: f81232: add high baud rate support commit
serial: Add Milbeaut serial control commit
serial: sprd: Add DMA mode support commit
12.12. ACPI, EFI, cpufreq, thermal, Power Management
ACPI/IORT: Add support for the SMMU Performance Monitor Counter Group information from ACPI commit
cpufreq: qoriq: Add ls1028a chip support commit
cpufreq: qoriq: add support for lx2160a commit
thermal: Add some functionalities for Tegra soctherm commit, commit, commit, commit, commit, commit, commit, commit
thermal: tsens: Add generic support for TSENS v1 IP commit
thermal: Introduce Amazon's Annapurna Labs Thermal Driver commit
thermal: rockchip: Support the PX30 SoC in thermal driver commit
12.13. Real Time Clock (RTC)
Add ASPEED RTC driver commit
ds1672: remove sysfs debug interface commit
pcf85063: add alarm, nvram, offset correction and microcrystal rv8263 support commit, commit, commit, commit, commit
12.14. Voltage, current regulators, power capping, power supply
- Power
Add over-current health state commit
Add standard, adaptive and custom charge types commit
Add new properties for start/end charge threshold commit, commit
UCS1002 Programmable USB Port Power Controller commit
Ingenic JZ47xx Battery Fuel Gauge commit
AXP20x USB Power: Add AXP813 support commit
AT91 poweroff: Add SAM9X60 support commit
OLPC battery: Add XO-1.5 and XO-1.75 support commit
gpio-charger: Add support for charger status commit
max77650: Add support for battery charger commit
regulator: Add support for stm32 power regulators commit
12.15. Pin Controllers (pinctrl)
lochnagar: Add support for the Cirrus Logic Lochnagar commit
mediatek: Add MT8516 Pinctrl driver commit
Add pinctrl support for BM1880 SoC commit
Add STMFX GPIO expander Pinctrl/GPIO driver commit
12.16. Multi Media Card (MMC)
12.17. Memory Technology Devices (MTD)
afs: add v2 partition parsing commit
rawnand: atmel: add sam9x60 nand controller support commit
rawnand: ingenic: Add support for the JZ4725B commit
rawnand: ingenic: Add support for the JZ4740 commit
spi-nor: intel-spi: Add support for Intel Comet Lake SPI serial flash commit
12.18. Industrial I/O (iio)
accel: add support to LIS2DE12 commit
accel: kxcjk1013: Add KIOX0008 ACPI Hardware-ID commit
adc: Add driver for the TI ADS8344 A/DC chips commit
adc: ad7616: Add support for AD7616 ADC commit
adc: lpc32xx: Add scale feature commit
adc: stm32-dfsdm: add support for buffer modes commit and scan mode commit
counter: stm32-lptimer: Add power management support commit
gyro: add core driver for fxas21002c commit
gyro: fxas21002c: add i2c driver commit and spi driver commit
imu: adis16480: Add support for ADIS1649x family of devices commit
imu: adis16480: Add support for external clock commit
imu: st_lsm6dsx: add support to LSM6DSOX commit
imu: st_lsm6dsx: add support to LSM6DSR commit
light: vcnl4000 add support for the VCNL4040 proximity and light sensor commit
temperature: Add MAX31856 thermocouple support commit
srf04.c: add maxbotix ultrasonic sensors commit
12.19. Multi Function Devices (MFD)
Add ST Multi-Function eXpander (STMFX) core driver commit
Add new driver for MAX77650 PMIC commit
altera-sysmgr: Add SOCFPGA System Manager commit
axp20x: Add USB power supply mfd cell to AXP803 commit and AXP813 commit
cros_ec: Add host_sleep_event_v1 command commit
intel-lpss: Add Intel Comet Lake PCI IDs commit
max77620: Support Maxim 77663 commit
sec: Add support for the RTC on S2MPA01 commit
syscon: Add optional clock support commit
12.20. Pulse-Width Modulation (PWM)
pwm: Add i.MX TPM PWM driver support commit
12.21. Inter-Integrated Circuit (I2C)
i2c-piix4: Add Hygon Dhyana SMBus support commit
Add drivers for the AMD PCIe MP2 I2C controller commit
at91: added slave mode support commit
designware: Add support for an interface clock commit
iproc: Add slave mode support commit
iproc: add NIC I2C support commit
iproc: add polling support commit
mediatek: Add i2c support for MediaTek MT8183 commit
12.22. Hardware monitoring (hwmon)
Add support for samples attributes to ABI commit
ina3221: Add averaging mode support commit and voltage conversion time settings commit
lm75: Add support for TMP75B commit
max6650: add thermal cooling device capability commit
mlxreg-fan: Add support for fan capability registers commit
pmbus/ir38064: Add driver for Infineon IR38064 Voltage Regulator commit
pmbus/isl68137: Add driver for Intersil ISL68137 PWM Controller commit
pwm-fan: Add RPM support via external interrupt commit
lochnagar: Add Lochnagar 2 hardware monitoring driver commit
12.23. General Purpose I/O (gpio)
Add driver for Mellanox BlueField GPIO controller commit
ixp4xx: Add driver for the IXP4xx GPIO commit
max77650: Add GPIO support commit
12.24. Leds
12.25. DMA engines
12.26. Cryptography hardware acceleration
cavium/nitrox - Added rfc4106(gcm(aes)) cipher support commit
ccp: introduce SEV_GET_ID2 command commit
ccree: add CID and PID support commit
ccree: add SM4 protected keys support commit
ccree: add support for sec disabled mode commit
mxc-scc: Remove broken driver commit
12.27. PCI
al: Add Amazon Annapurna Labs PCIe host controller driver commit
keystone: Add support for PCIe EP commit and PCIe RC in AM654x Platforms commit
12.28. Thunderbolt
Bring same kind of functionality for older Apple systems than we have in PCs. Software connection manager is used on Apple hardware with Light Ridge, Cactus Ridge or Falcon Ridge controllers to create PCIe tunnels when a Thunderbolt device is connected. Currently only one PCIe tunnel is supported. On newer Alpine Ridge based Apple systems the driver starts the firmware which then takes care creating tunnels. These patches improve the connection manager to bring full PCIe daisy chains (up to 6 devices), Display Port tunneling and P2P networking. It also adds support for Titan Ridge based Apple systems 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 support for DMA tunnels commit
Add support for Display Port tunnels commit
Add support for XDomain connections commit
Add XDomain UUID exchange support commit
12.29. Clock
analogbits: add Wide-Range PLL library commit
at91: add support for the sam9x60 clocks handled by the PMC commit, commit, commit, commit
imx: pllv4: add fractional-N pll support commit
lochnagar: Add support for the Cirrus Logic Lochnagar commit
mediatek: Add MT8183 clock support commit
mediatek: add clock driver for MT8516 commit
meson: axg-audio: add g12a support commit
qcom: Add QCS404 TuringCC commit
renesas: r8a774c0: Add Z2 clock commit
sifive: add a driver for the SiFive FU540 PRCI IP block commit
stm32: Introduce clocks of STM32F769 board commit
milbeaut: Add Milbeaut M10V clock controller commit
clocksource/drivers/ixp4xx: Add driver commit
12.30. PHY ("physical layer" framework)
Add usb phy support for hi3660 Soc of Hisilicon commit
amlogic: Add Amlogic G12A USB3 + PCIE Combo PHY Driver commit
amlogic: add Amlogic G12A USB2 PHY Driver commit
qcom-qmp: Add msm8998 PCIe QMP PHY support commit
rcar-gen3-usb2: Add support for r8a77470 commit
renesas: phy-rcar-gen2: Add support for r8a77470 commit
sr-usb: Add Stingray USB PHY driver commit
tegra: xusb: Add Tegra186 support commit, add support for power supplies commit
ti: Add a new SERDES driver for TI's AM654x SoC commit
12.31. EDAC (Error Detection And Correction)
12.32. Various
extcon: intel-cht-wc: Enable external charger commit
fpga manager: Adding FPGA Manager support for Xilinx zynqmp commit
- habanalabs
mailbox: Add support for Armada 37xx rWTM mailbox commit
mei: expose device state in sysfs commit
mtip32xx: remove trim support commit
nvmem: Add driver for STM32 factory-programmed read only mem commit
nvmem: imx-ocotp: add support for imx8mq commit
nvmem: stm32: add support for STM32MP15 BSEC to control OTP data commit
of: address: Add support for the parent DMA bus commit
platform/mellanox: Add !TmFifo driver for Mellanox BlueField Soc commit
pps: pps-gpio PPS ECHO implementation commit
soc: imx: Add generic i.MX8 SoC driver commit
soc: ti: Add MSI domain bus support for Interrupt Aggregator commit
irqchip/ti-sci-inta: Add msi domain support commit
irqchip/ti-sci-inta: Add support for Interrupt Aggregator driver commit
irqchip/ti-sci-intr: Add support for Interrupt Router driver commit
irqchip: Add driver for IXP4xx commit
tty: rocket: Remove RCPK_GET_STRUCT ioctl commit and deprecate the rp_ioctl commit
13. List of feature merges
14. Other news sites
LWN's merge summary part 1, part 2, Statistics from the 5.2 kernel — and before
Phoronix Linux 5.2 feature overview