KernelNewbies:

Changes done in each Linux kernel release. Other places to get news about the Linux kernel are LWN kernel status, H-Online, or the Linux Kernel mailing list (there is a web interface in www.lkml.org). List of changes of older releases can be found at LinuxVersions. If you're going to add something here look first at LinuxChangesRules!

You can discuss the latest Linux kernel changes on the New Linux Kernel Features Forum.

Linux 5.9 has been released on Sun, 11 Oct 2020.

Summary: This release implements better management of anonymous (malloc'ed) memory; a new cgroup slab controller that improves slab utilization by allowing memory cgroups to share slab memory; support for proactive memory defragmentation; CPU Capacity awareness for the deadline scheduling class; support for running BPF programs on socket lookups; new close_range() system call for easier closing of entire ranges of file descriptors, support for FSGSBASE x86 instructions that provide faster context switching, NFS support for extended attributes; and support for ZSTD compressed kernel, ramdisk and initramfs. As always, there are many other new drivers and improvements.

Contents

  1. Prominent Features
    1. Better management of anonymous memory
    2. New cgroup slab controller shares slab memory
    3. Proactive memory compaction
    4. New close_range() system call for easier closing of file descriptors
    5. Support for running BPF programs on socket lookups
    6. CPU Capacity awareness for the deadline scheduling class
    7. Faster context switch with supports FSGSBASE x86 instructions
    8. NFS support for extended attributes
    9. Support for ZSTD compressed kernel, ramdisk and initramfs
  2. Core (various)
  3. File systems
  4. Memory management
  5. Block layer
  6. Tracing, perf and BPF
  7. Virtualization
  8. Security
  9. Networking
  10. Architectures
    1. ARM
    2. PowerPC
    3. x86
    4. RISC-V
    5. MIPS
    6. C-SKY
    7. Xtensa
    8. S390
    9. SH
    10. SPARC
    11. UNICORE32
    12. OpenRISC
  11. Drivers
    1. Graphics
    2. Power Management
    3. Storage
    4. Drivers in the Staging area
    5. Networking
    6. Audio
    7. Tablets, touch screens, keyboards, mouses
    8. TV tuners, webcams, video capturers
    9. Universal Serial Bus / Thunderbolt
    10. Serial Peripheral Interface (SPI)
    11. Watchdog
    12. Serial
    13. CPU Frequency scaling
    14. Device Voltage and Frequency Scaling
    15. Voltage, current regulators, power capping, power supply
    16. Real Time Clock (RTC)
    17. Pin Controllers (pinctrl)
    18. MultiMediaCard (MMC)
    19. Memory Technology Devices (MTD)
    20. Industrial I/O (iio)
    21. Multi Function Devices (MFD)
    22. Pulse-Width Modulation (PWM)
    23. Inter-Integrated Circuit (I2C + I3C)
    24. Hardware monitoring (hwmon)
    25. General Purpose I/O (gpio)
    26. LEDs
    27. DMA engines
    28. Hardware Random Number Generator (hwrng)
    29. Cryptography hardware acceleration
    30. PCI
    31. Clock
    32. PHY ("physical layer" framework)
    33. Memory Controller Drivers
    34. Firmware Drivers
    35. Remote Processors
    36. Various
  12. List of Pull Requests
  13. Other news sites

1. Prominent Features

1.1. Better management of anonymous memory

This release implements better workload detection and protection of anonymous memory (memory that is not file-backed, ie. malloc'ed memory). The Linux kernel manages the memory of anonymous memory placing its pages in either the active list or inactive list. Under memory pressure, unused pages are moved from the active to the inactive list and unmapped, giving them a chance of being referenced again (aka: soft fault) before being moved to swap, if there is more pressure.

In the previous implementation, newly created or swap-in pages were placed on the active list, which could force actively used pages to the inactive list. In this release, newly created or swap-in anonoymous pages are started in the inactive list (thus protecting existing hot workloads), and only promoted to the active list when they are referenced enough. Aditionally, because this change can also cause newly created or swap-in anonymous pages to swap-out existing pages in the inactive list, the existing workingset detection mechanisms have been extended to deal with the anonymous LRU list to make more optimal decisions.

1.2. New cgroup slab controller shares slab memory

The cgroup slab memory controller was based on the idea of replicating slab allocator internals for each memory cgroup, so those cgroups didn't share slab memory, which lead to low slab utilization and higher slab memory usage. The slab controller used to be an opt-int feature, but today it's enabled by default in the memory controller, and modern systems with systemd create many cgroups, so these ineffiencies affect many people.

This release incorporats a new cgroup slab memory controller that allows to share slab memory between memory cgroups. For Facebook, it saved significant amount of memory, measured from high hundreds of MBs to single GBs per host; on average the size of slab memory was reduced by 35-45%. Desktop systems also benefit: on a 16GB Fedora system, the new slab controller saves ~45-50% of slab memory, measured just after loading of the system.

1.3. Proactive memory compaction

Huge Pages (ie. pages bigger than 4KB on x86) are a processor feature that can improve performance due to reduced TLB usage. Making use of these pages requires having large amounts of contiguous free memory, which can difficult to obtain when memory is heavily fragmented. Linux supports memory compaction (ie. defragmentation), but it is only triggered when a huge page needs to be allocated, which can take time and hence hurts allocation latency. This release adds support for proactive memory compaction, that is, automatically triggering memory compaction before doing any allocation, so that future allocations can succeed faster.

Recommended LWN article: Proactive compaction for the kernel

1.4. New close_range() system call for easier closing of file descriptors

This release incorporates a new system call, close_range(2). It allows to efficiently close a range of file descriptors up to all file descriptors of a calling task. Eg, close_range(3, ~0U); will close all descriptors past stderr. It turns out, quite a bunch of projects need to do exactly that: service managers, libcs, container runtimes, programming language runtimes/standard libraries (Rust/Python). This system call has been coordinated with FreeBSD, so it is also available there.

1.5. Support for running BPF programs on socket lookups

As with every new version, there are many improvements to BPF. An interesting new feature is a new BPF program type named BPF_PROG_TYPE_SK_LOOKUP, which runs when transport layer is looking up a listening socket for a new connection request (TCP), or when looking up an unconnected socket for a packet (UDP). This serves as a mechanism to overcome the limits of the bind() API. Two use-cases driving this work are: 1) steer packets destined to an IP range, fixed port to a single socket, 2) steer packets destined to an IP address, any port to a single socket.

1.6. CPU Capacity awareness for the deadline scheduling class

Since Linux 3.14 the Linux task scheduler supports a deadline scheduling class, designed around real-time concepts for applications that need strict time requirements. This scheduling class was not aware of the existence of heterogeneous platforms where CPUs have not the same performance (ie. ARM big.LITTLE), which leads to wrong scheduling decisions. This release makes the deadline class aware of the capacity of each CPU.

Recommended LWn article: Capacity awareness for the deadline scheduler

1.7. Faster context switch with supports FSGSBASE x86 instructions

The FSGSBASE instructions are an Intel feature that has been available for a long time. They allow direct access to the FS and FS segment base registers. In addition to benefits to applications, performance improvements to the OS context switch code are possible by making use of these instructions

Recommended LWN article: A possible end to the FSGSBASE saga

1.8. NFS support for extended attributes

This release incorporates support for extended attributes (RFC 8276), which bridges one of the most relevant gaps in NFS.

1.9. Support for ZSTD compressed kernel, ramdisk and initramfs

This release adds support for a ZSTD-compressed kernel, ramdisk, and initramfs in the kernel boot process (ZSTD-compressed ramdisk and initramfs are supported on all architectures, the ZSTD-compressed kernel is only hooked up to x86 for now). ZSTD offers good compression rates and very high decompression speeds. When Facebook switched from a xz compressed initramfs to a zstd compressed initramfs decompression time shrunk from 12 seconds to 3 seconds. When they switched from a xz compressed kernel to a zstd compressed kernel they saved 2 seconds of boot time.

2. Core (various)

3. File systems

  • Btrfs
    • Introduce new rescue mount option to group all existing mount options for recovery. usebackuproot is an alias for rescue=usebackuproot and nologreplay is an alias for rescue=nologreplay commit

    • Better fsync() performance (12% decrease on max latency reported by dbench) commit, commit, commit, commit

    • Massive speed up of parallel fsync by reducing number of checksum tree lookups and contention, the improvements start to show up with 2 tasks with +20% throughput and -16% runtime up to 64 with +200% throughput and -66% runtime commit, commit, commit

    • Speed up parallel fsync of files with reflinked/deduped extents, with jobs 16 to 1024 the throughput gets improved roughly by 50% on average and runtime decreased roughly by 30% on average commit

    • Prefetch chunck tree leaves at mount (can improve mount speed in multi-TB file systems) commit

    • FS_INFO ioctl enhancements: add flags to request/describe newly added items, add item with numeric checksum type and checksum size to deal with new checksum types, add item with the file system generation, add item with the metadata UUID commit, commit, commit

    • qgroup: export qgroups in sysfs commit

    • Start deprecation of mount option inode_cache commit

    • Remove deprecated mount option subvolrootid commit

    • Remove deprecated mount option alloc_start commit

    • sysfs: add bdi link to the fsid directory commit

  • XFS
  • ext4
  • F2FS
    • Add F2FS_IOC_SEC_TRIM_FILE ioctl to send discard commands or/and zero out to selected data area of a regular file for security reason commit

    • Add GC_URGENT_LOW mode in gc_urgent commit

    • Show more debug info for per-temperature log commit

  • NFS
  • UBIFS
    • Add option to specify version for new file systems commit

  • ZONEFS
    • Add support for zone capacity to zonefs. For devices which expose a zone capacity that is different to the zone's size, the maximum zonefs file size will be set to the zone's (usable) capacity, not the zone size commit

  • Ceph
    • Filesystem client metrics are sent to all available MDSes once per second now commit, commit

  • AFS
    • Expose information from afs_vlserver through /proc for debugging commit

  • DLM

4. Memory management

  • (FEATURED) Implement workingset protection and detection on the anonymous LRU page list. In the previous implementation, newly created or swap-in anonymous (ie. malloc'ed) page were started on the active list, which can demote pages being actively used to the inactive list. In this release, newly created or swap-in anonoymous pages are started in the inactive list, and only promoted to the active list when they are referenced enough. Aditionally, because these changes can cause newly created or swap-in anonymous pages to swap-out existing pages in the inactive list, workingset detection has been extended to deal with the anonymous LRU list to make more optimal decisions commit, commit, commit, commit, commit, commit

  • (FEATURED) New cgroup slab memory controller. It allows to share slab pages between memory cgroups. This leads to a significant win in the slab utilization (up to 45%) and the corresponding drop in the total kernel memory footprint. The reduced number of unmovable slab pages should also have a positive effect on the memory fragmentation commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • (FEATURED) Proactive compaction, instead of on-demand. A new sysctl, vm.compaction_proactiveness, is added which dictates bounds for external fragmentation which kcompactd tries to maintain commit

  • Transparent Huge Pages in the page cache, preparation patches commit, commit, commit, commit, commit, commit, commit

  • SLUB
    • Extend the slub_debug boot parameter syntax so that multiple blocks of either global or slab-specific options can be specified, with blocks delimited by ';' commit

    • Reduce slub_debug overhead in cases where it's compiled in but not enabled during boot, with a static key commit, commit, commit, commit

    • Make some sysfs attributes read only commit, commit, commit, commit

  • vmstat: new VM events which will help in validating THP migration without split commit

  • vmstat: Add pgreuse counter, measures when a page is reused for COW commit

  • Make updates to vm_committed_as stat more scalable commit, commit, commit, commit

  • memcg: reclaim harder before high throttling commit, commit

  • memcg: Add percpu memory accounting to memory cgroups commit, commit, commit, commit, commit

  • tmpfs: To reduce risk of inode number overflows in tmpfs, make inode numbers per-superblock and add inode64 support commit, commit

5. Block layer

  • fscrypt: Adds support for Inline Encryption using inline encryption hardware. Now when an ext4 or f2fs filesystem is mounted with '-o inlinecrypt', the contents of encrypted files will be encrypted/decrypted via blk-crypto, instead of directly using the crypto API. This model allows taking advantage of the inline encryption hardware that is integrated into the UFS or eMMC host controllers on most mobile SoCs commit, commit, commit, commit, commit, commit, commit, commit

  • bcache: extent bucket_size from 16bit to 32bit width. This is the code base for next step to use zoned device as cache device commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Export max open zones and max active zones to sysfs commit, commit

  • blk-cgroup: show global disk stats in root cgroup io.stat commit

  • Device mapper
    • dm crypt: Improve latency and throughput (see article) commit

    • dm crypt: Enable zoned block device support commit

    • dm dust: Introduce interface to list badblocks commit, commit

  • md
    • Allow degraded raid6 do rmw commit, commit

    • raid5: set STRIPE_SIZE as a configurable value in /sys/block/md1/md/stripe_size commit, commit, commit

    • Report the UUID of the MD array in a new md sysfs file 'uuid' read-only commit

6. Tracing, perf and BPF

  • BPF
  • perf
    • Enhance the perf ftrace functionality so that we can make full use of kernel ftrace with perf. Two classes of changes are added: usability of existing functions is improved, and new options to support all other ftrace functions commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Support 'start disabled', 'enable' and 'disable' external control commands which can be provided for stat and record modes of the tool from an external controlling process. 'start disabled' command can be used to postpone enabling of events in the beginning of a monitoring session. 'enable' and 'disable' commands can be used to enable and disable events correspondingly any time after the start of the session. The 'start disabled', 'enable' and 'disable' external control commands can be used to focus measurement on specially selected time intervals of workload execution. Focused measurement reduces tool intrusion and influence on workload behavior, reduces distortion and amount of collected and stored data, mitigates data accuracy loss because measurement and data capturing happen only during intervals of interest
    • Support enable and disable commands in stat and record modes commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • perf bench: Add basic syscall benchmark commit

    • Add support to convert and store time of day in CTF data conversion for 'perf data convert' subcommand. New --tod option is added to 'perf data convert' subcommand to convert data with timestamps converted to wall clock time commit

    • perf tests: Add metrics tests commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Proper cap_user_time* support commit, commit, commit, commit, commit, commit, commit

7. Virtualization

8. Security

9. Networking

  • TCP
  • Support PMTU discovery with bridged UDP tunnels commit, commit, commit, commit, commit, commit

  • geneve: adds transport ports information for route lookup so that IPsec can select Geneve tunnel traffic to do encryption. This is needed for OVS/OVN IPsec with encrypted Geneve tunnels commit

  • icmp4/6: support RFC 4884 commit, commit, commit, commit

  • Netfilter
    • Introduce support for reject at prerouting stage commit

    • Extend the nftables netlink API to support for anonymous non-base chains. Anonymous non-base chains have two properties: 1) The kernel dynamically allocates the (internal) chain name, 2) If the rule that refers to the anonymous chain is removed, then the anonymous chain and its content is also released commit, commit, commit, commit, commit, commit, commit

    • Add extended netlink error reporting for expression commit

  • Bluetooth
    • Add support for Advertisement Monitor API. The commands and events added are: Read Advertisement Monitor Feature, Add Advertisement Pattern Monitor, Remove Advertisement Monitor, Advertisement Monitor Added event, Advertisement Monitor Removed event commit, commit, commit, commit, commit, commit, commit

    • Add functionality to disable and remove advertising instances, and use that functionality in MGMT add/remove advertising calls commit

    • Add support for BT_PKT_STATUS CMSG data for SCO connections commit

    • Adding a configurable autoconnect timeout commit

    • Add support to enable LL privacy using mgmt with existing set_privacy command commit, commit, commit, commit, commit, commit, commit, commit

    • Add support for reading and setting default system parameters from userspace. In particular, combined with the userspace changes, allows platforms to override default system parameters from a main.conf file commit, commit, commit

    • le_simult_central_peripheral experimental feature which allows a clients to determine if the controller is able to support peripheral and central connections separately and at the same time commit

  • Add ethtool extended link state commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • batman-adv: Introduce a configurable per interface hop penalty commit

  • bonding: initial support for hardware crypto offload commit, commit, commit, commit

  • bridge
  • mac80211
    • Add connected to auth server to meshconf commit; add connected to auth server to station info commit

    • Add support for WPA/WPA2-PSK 4-way handshake in AP mode commit

    • Add mesh_param "mesh_nolearn" to skip path discovery commit

    • Add support to advertise OCV support commit

  • DCCP: Add SIOCOUTQ ioctl to get the send buffer fill of a DCCP socket, like UDP and TCP sockets already have commit

  • devlink
  • ethtool: add support for 100 Gbps per lane link modes commit

  • udp_tunnel: add NIC RX port offload infrastructure commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Packet classifier
    • Add stream gate action policing in IEEE802.1Qci (Per-Stream Filtering and Policing) software support and hardware offload support in tc flower commit, commit, commit, commit

    • Introduce qevents. Those are attach points for TC blocks, where filters can be put that are executed as the packet hits well-defined points in the qdisc algorithms. The attached blocks can be shared, in a manner similar to clsact ingress and egress blocks, arbitrary classifiers with arbitrary actions can be put on them, etc commit, commit, commit, commit

    • sch_cake: add RFC 8622 LE PHB support to CAKE diffserv handling commit

    • Allow changing default qdisc to FQ-PIE commit

    • Introduce an extention to the cls flower classifier and allows user to add rules that match on the hash value that is stored in skb->hash while assuming the value was set prior to the classification commit, commit

    • qos offload add flow status with dropped count commit

  • Add support for Parallel Redundancy Protocol (PRP) - a network protocol standard for Ethernet that provides seamless failover against failure of any network component - in the Linux HSR driver as defined in IEC-62439-3 commit, commit, commit, commit, commit, commit, commit

  • Transformation (IPsec)
  • Adds a "strict mode" to the Virtual Routing and Forwarding infrastructure (VRF). It imposes that each VRF can be associated to a routing table only if such routing table is not already in use by any other VRF. The strict mode feature is designed to be network-namespace aware and it can be directly enabled/disabled acting on the "strict_mode" parameter commit, commit, commit, commit, commit

  • Phylink PCS updates commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • rtnetlink
    • Add keepalived rtm_protocol commit

    • Add support for protodown reason commit

  • TIPC: update a binding service via broadcast commit

  • TLS: allow MSG_CMSG_COMPAT in sendmsg commit

  • XDP: introduce new statistics for af_xdp: drops due to rx ring being full, drops due to fill ring being empty, and failures pulling an item from the tx ring commit, commit, commit

10. Architectures

10.1. ARM

  • New SoCs

    • Initial support for two chips made by MStar, a taiwanese SoC manufacturer that became part of Mediatek in 2012. For now, the added support is fairly minimal, with just two of its Cortex-A7 based 32-bit camera chips getting support for a limited set of on-chip peripherals commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Microchip adds support for their new Sparx5 family of Ethernet switch chips using 64-bit Cortex-A53 cores. These are descended from earlier VSC7xxx SparX and Ocelot chips using 32-bit MIPS cores commit, commit, commit, commit, commit, commit, commit, commit

    • Intel adds support for the new Keem Bay SoC for computer vision, built around a Movidius VPU with Linux running on Arm Cortex-A53 cores commit, commit, commit, commit, commit

    • Amazon Alpine v3, a 16-core Cortex-A72 SoC from Amazon's Annapurna Labs, otherwise known as AL73400 or first-generation GravitonThis one is added together with the official Evaluation platform commit, commit

    • Qualcomm Snapdragon SDM630, a family of mid-range mobile phone chips from 2017 based on Cortex-A53 or Kryo 260 CPUs. A total of five end-user products are added based on these, all Android phones from Sony: Xperia 10, 10 Plus, XA2, XA2 Plus and XA2 Ultra commit, commit, commit

    • Renesas RZ/G2H (r8a774e1), currently the top model in the Renesas RZ/G family, closely related to the RZ/G2N and RZ/G2M models already supportted but has a faster GPU and additional on-chip peripherals. It is added along with the HopeRun HiHope RZ/G2H development board commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • New boards
    • Allwinner sunxi: revision v1.2 of the Pine64 PinePhone smartphone commit

    • Amlogic Meson: WeTek Core2, an Amlogic S912 (GXM) based set-top box commit

    • Aspeed: EthanolX, AMD's EPYC data center rerence platform, using an ASpeed AST2600 baseboard management controller commit

    • Mediatek: Lenovo IdeaPad Duet 10.1" (kukui/krane), a new Chromebook based on the MT8183 (Helio P60t) SoC commit

    • Nvidia Tegra: ASUS Google Nexus 7 and Acer Iconia Tab A500, two Android tablets from around 2012 using Tegra 3 and Tegra 2, respectively commit, commit

    • Nvidia Tegra: The Jetson Xavier NX Developer Kit uses a SoM and carrier board for the Tegra194, their latest 64-bit chip based on Carmel CPU cores and Volta graphics commit

    • NXP i.MX: Five new boards based on the 32-bit i.MX6 series are added: The MYiR MYS-6ULX single-board computer, and four different models of industrial computers from Protonic commit, commit, commit, commit, commit

    • Qualcomm: MikroTik RouterBoard 3011, a rackmounted router based on the 32-bit IPQ8064 networking SoC commit

    • Qualcomm: Three older phones get added, the Snapdragon 808 (msm8992) based Xiaomi Libra (Mi 4C) and Microsoft Lumia 950, originally running Windows Phone, and the Snapdragon 810 (msm8994) based Sony Xperia Z5 commit, commit, commit

    • Renesas: In addition to the HiHope RZ/G2H board mentioned above, this release gains support for board versions 3.0 and 4.0 of the earlier RZ/G2M and RZ/G2N reference boards. Beacon EmbeddedWorks adds another SoM+Carrier development board for RZ/G2M commit, commit, commit, commit, commit, commit, commit, commit

    • Rockchips: Radxa Rock Pi N8 development board and the VMARC RK3288 SoM it is based on, using the high-end 32-bit rk3288 SoC commit, commit

    • imx6qdl-gw: add Gateworks System Controller support commit

    • Inline crypto support on DragonBoard 845c using the Qualcomm Inline Crypto Engine commit, commit, commit, commit

    • Append new variables to vmcoreinfo (TCR_EL1.T1SZ for arm64 and MAX_PHYSMEM_BITS for all archs) commit, commit

    • coresight: etm4x: Add support to skip trace unit power up commit

  • ARM64
  • perf: Expose some new events via sysfs commit

  • KVM: Pointer Authentication available for guests on nVHE hosts commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

10.2. PowerPC

10.3. x86

  • (FEATURED) Enable FSGSBASE instructions, used in 64-bit mode to allow direct access to the FS and GS segment base addresses. In addition to benefits to applications, performance improvements to the OS context switch code are possible by making use of these instructions commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Add functionality to disable writing to MSRs from userspace. Writes can still be allowed by supplying the allow_writes=on module parameter. The kernel will be tainted so that it shows in oopses commit

  • Support Architectural LBR. LBR (Last Branch Records) enables recording of software path history by logging taken branches and other flows within architectural registers. Architectural LBRs generalize the model specific LBR hardware tracing feature into a model-independent, architected performance monitoring feature commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Add Lakefield, Alder Lake and Rocket Lake models to the to Intel CPU family commit

  • x86/split_lock: Enable the split lock feature on Sapphire Rapids and Alder Lake CPUs commit

  • Platforms
    • asus-nb-wmi: add support for ASUS ROG Zephyrus G14 and G15 commit

    • dell-wmi: add new keymap type 0x0012 commit

    • mlx-platform: support new watchdog type with longer timeout commit

    • chrome: support Thunderbolt compatibility mode commit, commit

    • Add support to configure various Type C switches appropriately using the Type C connector class API commit

    • Add new intel_atomisp2_led driver commit

    • ISST: Add new PCI device ids commit

  • powercap
    • intel_rapl: add support for AlderLake commit

    • intel_rapl: add support for RocketLake commit

    • intel_rapl: add support for TigerLake Desktop commit

    • Add Power Limit4 support commit

    • RAPL: Add support for !Lakefield commit

    • intel_rapl: add support for Sapphire Rapids commit

  • KVM
    • Add nopvspin parameter to disable PV spinlocks commit

    • Adds a new capability KVM_CAP_SMALLER_MAXPHYADDR which allows userspace to query if the underlying architecture would support GUEST_MAXPHYADDR < HOST_MAXPHYADDR commit

  • XEN: remove 32-bit Xen PV guest support commit

  • perf
  • intel_idle: Customize IceLake server support commit

  • crypto: aesni: add compatibility with IAS commit

10.4. RISC-V

  • Add STACKPROTECTOR supported commit

  • Add jump-label implementation commit, commit

  • Add kmemleak support commit

  • Allow building with kcov coverage commit

  • Enable LOCKDEP_SUPPORT & fixup TRACE_IRQFLAGS_SUPPORT commit

  • Enable context tracking commit

  • Enables using compressed riscv (RVC) instructions in the rv64 BPF JIT commit, commit, commit

10.5. MIPS

  • ingenic: Add support for the RS90 board commit

  • ingenic: Add support for the JZ4725B SoC commit

  • Add support for Ingenic X1830 SoC and Y&A CU1830-Neo board commit, commit

  • Loongson64: DeviceTree for LS7A PCH commit

  • Add X2000 system type commit

  • KVM: Add kvm guest support for Loongson-3 commit

  • Retire kvm paravirtualization support (it's host side support and QEMU support never landed in upstream) commit

10.6. C-SKY

  • Add SECCOMP_FILTER support commit

  • Add context tracking support commit

  • Use top-down mmap layout commit

10.7. Xtensa

  • Add audit support commit

  • Add seccomp support commit

  • Add uImage and xipImage to targets commit

10.8. S390

  • Implements BPF_PROBE_MEM opcode, which is used in BPF programs that walk chains of kernel pointers commit, commit, commit

  • Provide cex4 cca sysfs attributes for cex3 commit

10.9. SH

  • Add SECCOMP_FILTER support commit

  • Remove SH5-based Cayman platform commit

10.10. SPARC

10.11. UNICORE32

10.12. OpenRISC

  • Add support for external initrd images commit

11. Drivers

11.1. Graphics

  • amdgpu
    • Initial support for Sienna Cichlid GPU merge

    • Initial support for Navy Flounder GPU merge

    • SI UVD/VCE support merge, merge, merge

    • Expose rotation property commit

    • Add support for unique id on Arcturus commit

    • amdkfd: Track SDMA usage per process commit

    • SMI events interface commit

    • Add module parameter choose reset mode commit

    • Added a sysfs interface for thermal throttling related V4 commit

  • Intel
  • panel
    • simple: Add 50 Hz mode to the Frida FRD350H54004 panel commit

    • simple: Add support for KOE TX26D202VM0BWA panel commit

    • simple: add CDTech S070PWS19HP-FC21 and S070SWV29HG-DC44 commit

    • simple: add Tianma TM070JVHG33 commit

    • st7703: Add support for Xingbangda XBD599 commit

  • msm
    • a650/a640 display and GPU enablement commit

    • dpu dither support for 6bpc panels commit

    • mdp5 enablement for sdm630/sdm636/sdm66 commit

    • a6xx: add module param to enable debugbus snapshot commit

  • ingenic
    • Add support for OSD mode commit

    • Add support for the IPU commit

    • Support multiple panels/bridges commit

  • tegra
  • meson
  • drm_fourcc
    • Add uncompressed AFBC modifier commit

    • Add NV15, Q410, Q401 YUV formats commit

  • xen-front
    • Add YUYV to supported formats commit

  • nouveau
  • radeon
    • Default to on chip GART for AGP boards on all arches commit

  • xilinx
    • New Xilinx ZynqMP DisplayPort Subsystem driver commit

  • vkms
  • rockchip
    • Add per-pixel alpha support for the PX30 VOP commit

  • mgag200
    • Dropped hw cursor support commit

  • Remove soft scrollback code commit, commit

  • fbdev
  • backlight
    • generic_bl: Remove this driver as it is unused commit

    • Delete the OT200 backlight driver commit

11.2. Power Management

  • ACPI/NVDIMM: Runtime Firmware Activation commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • thermal
    • genetlink support for events/cmd/sampling commit

    • intel: intel_pch_thermal: Add Cannon Lake Low Power PCH support commit

    • rcar_gen3_thermal: Add r8a774e1 support commit

    • qcom: tsens-v0_1: Add support for MSM8939 commit

    • mediatek: Add tsensor support for V2 thermal system commit

    • Add support for the MCU controlled FAN on Khadas boards commit

  • tools/power/x86/intel-speed-select: Add option to delay mbox commands commit, add retries for mail box commands commit

11.3. Storage

11.4. Drivers in the Staging area

  • most: add USB adapter driver commit

  • media: allegro: add support for allegro firmware 2019.2 commit

  • wfx: add a debugfs entry to force ps_timeout commit

  • media/soc_camera: remove this driver commit

11.5. Networking

11.6. Audio

  • hda
    • hdmi: Add Intel silent stream support, which keeps external HDMI receiver's analog circuitry powered on avoiding 2-3 sec silence during playback start commit

    • realtek: Add model alc298-samsung-headphone commit

    • realtek: Enable front panel headset LED on Lenovo ThinkStation P520 commit

    • hdmi: add Rocketlake support commit

  • line6: add hw monitor volume control for POD HD500 commit

  • usb-audio: Add basic capture support for Pioneer DJ DJM-250MK2 commit

  • usb-audio: Add capture support for Saffire 6 (USB 1.1) commit

  • usb-audio: Add support for Lenovo ThinkStation P620 commit

  • usb-audio: Creative USB X-Fi Pro SB1095 volume knob support commit

  • ASoC:
    • Intel: Add KeemBay platform driver commit, commit, commit

    • Intel: KMB: Add 8kHz audio support commit

    • Intel: bxt-da7219-max98357a: support MAX98390 speaker amp commit

    • Intel: common: add match table for TGL MAX98373 + RT5682 SoundWire driver commit

    • Intel: sof_sdw: Add MAX98373 support commit

    • Intel: sof_sdw: add support for systems without i915 audio commit

    • SOF: imx8: Add SAI dai driver for i.MX/i.MX8X commit

    • amd: Adding support for ALC1015 codec in machine driver commit

    • codecs: max98373: add SoundWire support commit

    • fsl-asoc-card: Add MQS support commit

    • fsl-asoc-card: Support Headphone and Microphone Jack detection commit

    • fsl_spdif: Add support for imx6sx platform commit

    • intel: sof_rt5682: Add support for jsl-max98360a-rt5682 commit

    • mediatek: mt6358: support DMIC one-wire mode commit

    • mediatek: mt8183-da7219: support HDMI jack reporting commit

    • mediatek: mt8183: support HDMI jack reporting commit

    • mediatek: mt8183: support machine driver with max98357b commit

    • mediatek: mt8183: support machine driver for rt1015 commit, commit

    • rl6231: Add new supports on rl6231 commit

    • samsung: Add driver for Aries boards commit

    • samsung: Add sound support for Midas boards commit

    • tegra: add ASoC components for AHUB. The Audio Hub (AHUB) is part of the Audio Processing Engine (APE) which comprises a collection of hardware accelerators for audio pre-processing and post-processing commit, commit, commit, commit, commit, commit

    • ti: Add custom machine driver for j721e EVM (CPB and IVI) commit

    • tlv320adcx140: Add ASI enable for channel 5-8 commit

    • wm8960: Support headphone jack detection function commit

11.7. Tablets, touch screens, keyboards, mouses

11.8. TV tuners, webcams, video capturers

  • CH7322 CEC controller driver commit, commit, commit

  • i2c: Add MAX9286 driver commit

  • i2c: Add RDACM20 driver commit

  • i2c: dw9768: Add DW9768 VCM driver commit

  • i2c: improvements to IMX290 CMOS sensor: 2 lane support, configurable link frequency & pixel rate, test pattern generation, and RAW12 mode support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • rc: add support for Infrared Toy and IR Droid devices commit

  • rcar-csi2: Add support for MEDIA_BUS_FMT_SRGGB8_1X8 format commit

  • rcar-vin: Add support for MEDIA_BUS_FMT_SRGGB8_1X8 format commit

  • xilinx: Add Xilinx MIPI CSI-2 Rx Subsystem driver commit

  • vimc: Add a control to display info on test image commit

11.9. Universal Serial Bus / Thunderbolt

11.10. Serial Peripheral Interface (SPI)

  • Add Renesas RPC-IF driver commit

  • lantiq: Add support to Lightning Mountain SoC commit

  • mediatek: add spi support for mt8192 IC commit

11.11. Watchdog

11.12. Serial

  • imx: add imx earlycon driver commit

  • 8250_pci: Add Realtek 816a and 816b commit

  • stm32: Add RS485 RTS GPIO control commit

11.13. CPU Frequency scaling

  • Allow to specify their CPUfreq governor of choice using the kernel command line (cpufreq.default_governor= parameter), instead of having to wait for the system to fully boot to userspace to switch using the sysfs interface commit, commit

  • Add Tegra194 cpufreq driver commit

  • brcmstb-avs-cpufreq: Support polling AVS firmware commit

  • cpufreq: intel_pstate: Support setting a raw energy performance value in energy_performance_preference; also add an additional attribute energy_efficiency under /sys/devices/system/cpu/intel_pstate/ which allows to enable and disable the "Disable Energy Efficiency Optimization" bit commit, commit

  • intel_pstate: Implement passive mode with HWP enabled commit

  • make schedutil the default for arm and arm64 commit

11.14. Device Voltage and Frequency Scaling

  • Add the delayed timer to devfreq framework in order to support the periodical polling mode without stop caused by CPU idle state. Can be set by users with "echo delayed > /sys/class/devfreq/10c20000.memory-controller/timer" commit, commit

11.15. Voltage, current regulators, power capping, power supply

  • power: reset: add driver for LinkStation power off commit

  • power: supply: bq25150 introduce the bq25150 commit

  • power: supply: bq27xxx_battery: Add the BQ27Z561 Battery monitor commit

  • power: supply: bq27xxx_battery: Add the BQ28z610 Battery monitor commit

  • power: supply: sbs-battery: add PEC support commit

  • power: supply: wilco_ec: Add long life charging mode commit

  • Add support for voltage regulator on ChromeOS EC commit, commit, commit

  • regulator
    • Add support for QCOM PMIC VBUS booster commit

    • qcom_smd: Add MP5496 regulators commit

    • Add support for SY8827N regulator commit

    • pca9450: add pca9450 pmic driver commit

    • fan53880: Add initial support commit

    • qcom: Add labibb driver commit

11.16. Real Time Clock (RTC)

  • pcf2127: add pca2129 device id commit

  • pcf2127: add alarm support commit

  • Remove fb-puv3 driver commit

11.17. Pin Controllers (pinctrl)

  • intel: Add Intel Emmitsburg pin controller support commit

  • Add basic SoC Support for Mediatek MT6779 SoC commit, commit, commit, commit

  • ocelot: Add Sparx5 SoC support commit

  • qcom: ipq4019: add open drain support commit

  • sh-pfc: pfc-r8a77951: Add R8A774E1 PFC support commit

  • tigerlake: Add support for Tiger Lake-H commit

11.18. MultiMediaCard (MMC)

  • mediatek: add MT6779 MMC driver support commit

  • mediatek: command queue support commit

  • sdhci-msm: Add interconnect bandwidth scaling support commit

  • sdhci_am654: Add Support for SR2.0 commit

11.19. Memory Technology Devices (MTD)

  • spi-nor: intel-spi: Add support for Intel Emmitsburg SPI serial flash commit

  • spi-nor: intel-spi: Add support for Intel Tiger Lake-H SPI serial flash commit

  • spi-nor: macronix: Add support for MX25R1635F commit

  • spi-nor: macronix: Add support for mx66u2g45g commit

  • spi-nor: winbond: Add support for w25q64jvm commit

11.20. Industrial I/O (iio)

11.21. Multi Function Devices (MFD)

  • Add support for the Khadas System control Microcontroller commit

  • da9063: Add support for latest DA silicon revision commit

  • intel-lpss: Add Intel Emmitsburg PCH PCI IDs commit

  • intel-lpss: Add Intel Tiger Lake PCH-H PCI IDs commit

  • smsc-ece1099: Remove driver commit

11.22. Pulse-Width Modulation (PWM)

  • Remove pwm-puv3 driver commit

11.23. Inter-Integrated Circuit (I2C + I3C)

  • designware: Add device HID for Hygon I2C controller commit

  • i801: Add support for Intel Emmitsburg PCH commit

  • i801: Add support for Intel Tiger Lake PCH-H commit

  • mediatek: Add apdma sync in i2c driver commit

  • Remove i2c-puv3 driver commit

11.24. Hardware monitoring (hwmon)

  • Add Corsair Commander Pro driver commit

  • corsair-cpro: add reading pwm values commit

  • pmbus/max20730: Add max20710 support commit

  • sparx5: Add Sparx5 SoC temperature driver commit

11.25. General Purpose I/O (gpio)

  • pca953x: Add support for the PCAL9535 commit

  • pca9570: add GPO driver for PCA9570 commit

  • zynq: Add Versal support commit

11.26. LEDs

  • Add a multi color LED framework. This framework presents clustered colored LEDs into an array and allows the user space to adjust the brightness of the cluster using a single file write. The individual colored LEDs intensities are controlled via a single file that is an array of LEDs commit, commit, commit, commit, commit, commit, commit

  • Initial support for Turris Omnia LEDs commit

11.27. DMA engines

  • Add the Xilinx DisplayPort DMA engine driver commit, commit

  • Actions: Add support for S700 DMA engine commit

11.28. Hardware Random Number Generator (hwrng)

  • ba431: add support for BA431 hwrng commit

11.29. Cryptography hardware acceleration

11.30. PCI

  • Add Intel QuickAssist device IDs commit

  • Allow P2PDMA on AMD Zen and newer CPUs commit

  • cadence: Add MSI-X support to Endpoint driver commit

  • j721e: Add TI J721E PCIe driver commit

  • qcom: Add ipq8064 rev2 variant commit

  • xilinx-cpm: Add Versal CPM Root Port driver commit

11.31. Clock

11.32. PHY ("physical layer" framework)

  • bcm63xx-usbh: Add BCM63xx USBH driver commit

  • qcom-qmp: add V4 USB PHYs commit, commit, commit

  • qcom-qmp: Add USB QMP PHY support for IPQ8074 commit

  • qcom: remove ufs qmp phy driver commit

  • qualcomm: add qcom ipq806x dwc usb phy driver commit

  • samsung-ufs: add UFS PHY driver for samsung SoC commit

  • zynqmp: Add PHY driver for the Xilinx ZynqMP Gigabit Transceiver commit

11.33. Memory Controller Drivers

  • Add Renesas RPC-IF driver commit

  • mtk-smi: Add basic support for MT6779 commit

  • samsung: exynos5422-dmc: Add module param to control IRQ mode commit

  • stm32-fmc2-ebi: add STM32 FMC2 EBI controller driver commit

  • tegra: Add EMC scaling sequence code for Tegra210 commit

  • tegra: Add EMC scaling support code for Tegra210 commit

11.34. Firmware Drivers

11.35. Remote Processors

  • Add character device interface to remoteproc commit, commit

  • Add coredump debugfs entry commit

  • k3-dsp: Add a remoteproc driver of K3 C66x DSPs commit

  • k3-dsp: Add support for C71x DSPs commit

  • k3-dsp: Add support for L2RAM loading on C66x DSPs commit

  • k3: Add TI-SCI processor control helper functions commit

  • Add modem debug features commit, commit

11.36. Various

  • bus: fsl-mc: Add ACPI support for fsl-mc commit

  • counter: Add microchip TCB capture counter commit

  • fpga: Add interrupt support to FPGA DFL drivers commit, commit, commit, commit, commit, commit, commit

  • fpga: dfl: pci: add device id for Intel FPGA PAC N3000 commit

  • iommu: NVIDIA ARM SMMU Implementation commit, commit, commit, commit, commit

  • iommu/mediatek: Add mt6779 basic support commit

  • iommu/renesas: Add support for r8a77961 commit

  • irqchip/imx-intmux: Implement intmux runtime power management commit

  • misc: mei: add device kind to sysfs commit

  • misc: rtsx: Add support new chip rts5228 mmc: rtsx: Add support MMC_CAP2_NO_MMC commit

  • nvmem: enables blowing of fuses on Qualcomm SoCs commit, commit, commit, commit

  • nvmem: sc27xx: add sc2730 efuse support commit

  • ocxl: control via sysfs whether the FPGA is reloaded on a link reset commit

  • optee: register drivers on optee bus commit, commit, commit

  • vdpasim: support batch updating commit

12. List of Pull Requests

13. Other news sites

KernelNewbies: LinuxChanges (last edited 2020-10-12 10:52:15 by diegocalleja)