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