KernelNewbies
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Kernel Hacking

  • Frontpage

  • Kernel Hacking

  • Kernel Documentation

  • Kernel Glossary

  • FAQ

  • Found a bug?

  • Kernel Changelog

  • Upstream Merge Guide

Projects

  • KernelJanitors

  • KernelMentors

  • KernelProjects

Community

  • Why a community?

  • Regional Kernelnewbies

  • Personal Pages

  • Upcoming Events

References

  • Mailing Lists

  • Related Sites

  • Programming Links

Wiki

  • Recent Changes

  • Site Editors

  • Side Bar

  • Tips for Editors

  • Hosted by WikiWall

Navigation

  • RecentChanges
  • FindPage
  • HelpContents
KernelNewbies:
  • Linux_6.0
Last updated at 2022-10-29 06:27:40

Linux 6.0 has been released on Sunday, 2 Oct 2022.

Summary: This release includes a Runtime Verification system that aims to complement classical exhaustive verification techniques; several io_uring features such as async buffered writes, a io_uring based userspace block driver, and networking zero-copy send, a new Btrfs send protocol version with improvement features, XFS scalability enhancements; task scheduler performance improvements; a dma-buf API for exporting and importing sync files; BPF improvements; and LRU list quality improvement with DAMON. As always, there are many other features, new drivers, improvements and fixes.

Contents

  1. Prominent features
    1. io_uring features
    2. Runtime verification system
    3. Btrfs send v2 and other improvements
    4. XFS scalability improvements
    5. New perf tools: lock contention and kwork
    6. BPF improvements
    7. Task scheduler improvements
    8. Better LRU list quality with DAMON
    9. dma-buf: Add API for exporting and importing sync files
    10. Support for Intel SGX2
  2. Core (various)
  3. File systems
  4. Memory management
  5. Block layer
  6. Tracing, perf and BPF
  7. Virtualization
  8. Cryptography
  9. Security
  10. Networking
  11. Architectures
    1. ARM
    2. X86
    3. POWERPC
    4. LOONGARCH
    5. RISCV
    6. S390
    7. UM
    8. ARC
  12. 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
    10. Serial Peripheral Interface (SPI)
    11. Serial
    12. CPU Frequency scaling
    13. Device Voltage and Frequency Scaling
    14. Voltage, current regulators, power capping, power supply
    15. Real Time Clock (RTC)
    16. Pin Controllers (pinctrl)
    17. Memory Technology Devices (MTD)
    18. Industrial I/O (iio)
    19. Multi Function Devices (MFD)
    20. Pulse-Width Modulation (PWM)
    21. Inter-Integrated Circuit (I2C + I3C)
    22. Hardware monitoring (hwmon)
    23. DMA engines
    24. Cryptography hardware acceleration
    25. PCI
    26. Non-Transparent Bridge (NTB)
    27. Thunderbolt
    28. Clock
    29. PHY ("physical layer" framework)
    30. Various
  13. List of Pull Requests
  14. Other news sites

1. Prominent features

1.1. io_uring features

This release includes several io_uring improvements: async buffered writes (3x performance improvements using XFS), an userspace block driver which delivers io request from an ublk block device (/dev/ublkbN) into ublk server; a synchronous cancellation API, networking zerocopy send, LSM hooks for IORING_OP_URING_CMD, multishot recvmsg, and other features.

Recommended LWN article: Zero-copy network transmission with io_uring

1.2. Runtime verification system

Runtime Verification is a lightweight (yet rigorous) method that complements classical exhaustive verification techniques (such as model checking and theorem proving) with a more practical approach for complex systems.

Instead of relying on a fine-grained model of a system (e.g., a re-implementation a instruction level), RV works by analyzing the trace of the system's actual execution, comparing it against a formal specification of the system behavior.

Recommended LWN article: The runtime verification subsystem

Recommended video: Formal Verification Made Easy (and fast!)

1.3. Btrfs send v2 and other improvements

This release includes support for a new version of the protocol that is used by the btrfs send/receive utility. The protocol includes new commands: ability write larger data chunks than 64K, send raw compressed extents using the encoded data ioctls (avoiding the uncompress-compress process), send 'otime' (inode creation time), send file attributes (file flags and xflags).

There are also performance improvement in several areas, especially in direct I/O reads (improved throughput by 3x on sample workload).

1.4. XFS scalability improvements

This release includes some XFS log scalability improvements by removing spinlocks and global synchronization points. Also, there are lockless lookups for the buffer cache, which provide much better performance with higher CPU counts.

1.5. New perf tools: lock contention and kwork

This release brings support for a new 'perf lock contention' subtool, using new lock contention tracepoints and using BPF for in kernel aggregation and then userspace processing using the perf tooling infrastructure for resolving symbols, target specification, etc

There is also a new 'perf kwork' tool to trace time properties of kernel work (such as softirq, and workqueue), uses eBPF skeletons to collect info in kernel space, aggregating data that then gets processed by the userspace tool.

1.6. BPF improvements

As usual, the BPF subsystem includes support for several new features. This release adds support for type match support, 64 bit enums, sleepable uprobes, improved loop performance, a new eBPF-based LSM flavor, and many other improvements.

1.7. Task scheduler improvements

This release includes several improvements for the task scheduler: improved NUMA balancing on AMD Zen systems for affine workloads; improve handling of reduced-capacity CPUs in load-balancing; energy Model improvements; spend much less time searching for an idle CPU on overloaded systems, improved NUMA imbalance behavior, improved core scheduling and wakeup-balancing...

1.8. Better LRU list quality with DAMON

This release includes a DAMON-based LRU-lists Sorting, a static kernel module that is aimed to improve the quality of LRU-lists, which are used to determine if a page has

As page-granularity access checking overhead could be significant on huge systems, LRU lists are normally not proactively sorted but partially and reactively sorted for special events including specific user requests, system calls and memory pressure. As a result, LRU lists are sometimes not so perfectly prepared to be used as a trustworthy access pattern source for some situations including reclamation target pages selection under sudden memory pressure.

DAMON can identify access patterns of best-effort accuracy while inducing only user-specified range of overhead, so proactively running DAMON_LRU_SORT could be helpful for making LRU lists more trustworthy access pattern source with low and controlled overhead. DAMON_LRU_SORT finds hot pages (pages of memory regions that showing access rates that higher than a user-specified threshold) and cold pages (pages of memory regions that showing no access for a time that longer than a user-specified threshold) using DAMON, and prioritizes hot pages while deprioritizing cold pages on their LRU-lists. To avoid it consuming too much CPU for the prioritizations, a CPU time usage limit can be configured.

Documentation: DAMON-based LRU-lists Sorting

1.9. dma-buf: Add API for exporting and importing sync files

Modern userspace APIs like Vulkan are built on an explicit synchronization model. This doesn't always play nicely with the implicit synchronization used in the kernel and assumed by X11 and Wayland. The client -> compositor half of the synchronization isn't too bad, because the kernel can control whether or not the graphic driver synchronizes on the buffer and whether or not it's considered written. The harder part is the compositor -> client synchronization when we get the buffer back from the compositor. We're required to be able to provide the client with a VkSemaphore and VkFence representing the pointin time where the window system (compositor and/or display) finished using the buffer. With current APIs, it's very hard to do this in such a way that we don't get confused by the Vulkan driver's access of the buffer. In particular, once we tell the kernel that we're rendering to the buffer again, any CPU waits on the buffer or GPU dependencies will wait on some of the client rendering and not just the compositor.

This release adds a new ioctl that solves this problem by allowing to get a snapshot of the implicit synchronization state of a given dma-buf in the form of a sync file. It's effectively the same as a poll() or I915_GEM_WAIT only, instead of CPU waiting directly, it encapsulates the wait operation, at the current moment in time, in a sync_file so we can check/wait on it later. As long as the Vulkan driver does the sync_file export from the dma-buf before we re-introduce it for rendering, it will only contain fences from the compositor or display. This allows to accurately turn it into a VkFence or VkSemaphore without any over-synchronization.

There is also another ioctl that allows you to import a sync_file into a dma-buf. Unlike the previous one, however, this does add genuinely new functionality to dma-buf. Without this, the only way to attach a sync_file to a dma-buf is to submit a batch to your driver of choice which waits on the sync_file and claims to write to the dma-buf. Even if said batch is a no-op, a submit is typically way more overhead than just attaching a fence. A submit may also imply extra synchronization with other work because it happens on a hardware queue.

In the Vulkan world, this is useful for dealing with the out-fence from !vkQueuePresent. Current Linux window-systems (X11, Wayland, etc.) all rely on dma-buf implicit sync. Since Vulkan is an explicit sync API, we get a set of fences (VkSemaphores) in vkQueuePresent and have to stash those as an exclusive (write) fence on the dma-buf. We handle it in Mesa today with the above mentioned dummy submit trick. This ioctl would allow us to set it directly without the dummy submit. This may also open up possibilities for GPU drivers to move away from implicit sync for their kernel driver uAPI and instead provide sync files and rely on dma-buf import/export for communicating with other implicit sync clients.

1.10. Support for Intel SGX2

This release includes support for the Intel Software Guard Extensions v2, also referred to as Enclave Dynamic Memory Management (EDMM). These extensions allow for several features absent in the first version, allowing changes to initialized enclaves: modifying enclave page permissions and type, and dynamically adding and removing of enclave pages. When an enclave accesses an address within its address range that does not have a backing page then a new regular page will be dynamically added to the enclave.

2. Core (various)

  • (FEATURED) The Runtime Verification (RV) interface, a lightweight (yet rigorous) method that complements classical exhaustive verification techniques (such as model checking and theorem proving) with a more practical approach for complex systems. Instead of relying on a fine-grained model of a system (e.g., a re-implementation a instruction level), RV works by analyzing the trace of the system's actual execution, comparing it against a formal specification of the system behavior commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Add hostname kernel parameter commit

  • idmapping: Introduce dedicated type for idmapped mounts. They allow to establish a type safety boundary in the VFS for idmapped mounts preventing confusion betwen {g,u}ids mapped into an idmapped mount and {g,u}ids mapped into the caller's or the filesystem's idmapping commit, commit, commit, commit, commit, commit, commit, commit

  • fanotify: New FAN_MARK_IGNORE API for ignoring events, to try and sort the historic mess of FAN_MARK_IGNORED_MASK commit, commit, commit

  • (FEATURED) io_uring
    • Support io-uring async buffered writes, 3x performance improvements commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Userspace block driver, which delivers io request from ublk block device(/dev/ublkbN) into ublk server which is the userspace part of ublk for communicating with ublk driver and handling specific io logic by its target module. Another thing ublk driver handles is to copy data between user space buffer and request/bio's pages, or take zero copy if mm is ready for support it in future. ublk driver doesn't handle any IO logic of the specific driver, so it is small/simple, and all io logics are done by the target code in ublkserver commit, commit

    • LSM hooks for IORING_OP_URING_CMD commit, commit, commit

    • Add sync cancelation API through io_uring_register() commit, commit, commit

    • Cleanups and poll optimisations 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 alloc cache for sendmsg/recvmsg commit, commit, commit, commit

    • Add direct descriptor ring passing commit, commit

    • Networking zerocopy send 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

    • Multishot recvmsg commit, commit, commit

    • Task work lock contention improvments commit, commit, commit, commit, commit, commit, commit

    • Deprecate epoll_ctl support commit

    • Let setting a range for file slot allocation commit

  • Scheduler
    • Energy Model improvements: fix & refine all the energy fairness metrics (PELT), and remove the conservative threshold requiring 6% energy savings to migrate a task. Doing this improves power efficiency for most workloads, and also increases the reliability of energy-efficiency scheduling (recommended LWN article) commit, commit, commit, commit, commit, commit, commit

    • Optimize/tweak select_idle_cpu() to spend (much) less time searching for an idle CPU on overloaded systems. There's reports of several milliseconds spent there on large systems with large workloads commit

    • Improve NUMA imbalance behavior. On certain systems with spare capacity, initial placement of tasks is non-deterministic, and such an artificial placement imbalance can persist for a long time, hurting performance. Note that some performance regressions were reported against this, caused by workloads that are not memory bandwith limited, which benefit from the artificial locality of the placement bug(s); the choice has been done that consistency is better than random workload benefits from non-deterministic bugs commit, commit, commit, commit

    • Improve wakeup latency by allowing same-LLC wakeup of idle CPUs for newly woken tasks commit

    • Do not check capabilities and do not issue capability check denial messages when a scheduler syscall doesn't require privileges (such as increasing niceness) commit

  • Binder: add TF_UPDATE_TXN to replace outdated txn commit

  • Remove CONFIG_ANDROID commit

  • Power management: Add PM_USERSPACE_AUTOSLEEP Kconfig. This allows for certain sleep-sensitive code (wireguard/rng) to decide on what preparatory work should be performed (or not) in their pm_notification callbacks commit

  • RCU: Add an option to offload all CPUs on boot commit

  • RCU: Add option to opt rcuo kthreads out of RT priority commit

  • driver core: Set fw_devlink.strict=1 by default commit

  • kbuild: add dtbs_prepare target commit

  • kunit: tool: introduce --qemu_args commit

3. File systems

  • BTRFS
    • (FEATURED) Send protocol v2 (backwards compatible). The protocol includes new commands: ability write larger data chunks than 64K, send raw compressed extents using the encoded data ioctls (avoiding the uncompress-compress process), send 'otime' (inode creation time), send file attributes (file flags and xflags) commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Performance improvements and cleanups around delayed items: reduced amount of reserved metadata for delayed items, improvements when inserted items can be batched into one leaf, when deleting batched directory index items, when deleting delayed items used for deletion, overall improved count of files/sec, decreased subvolume lock contention commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Increase direct io limit for read to 256 sectors, improved throughput by 3x on sample workload commit

    • Repair all known bad mirrors commit

    • sysfs
      • Export chunk size in space infos commit

      • Advertise zoned support among features commit

      • Export commit stats commit, commit

      • Remove MIXED_BACKREF feature file commit

      • Remove BIG_METADATA feature files commit

  • XFS
    • (FEATURED) Lockless buffer lookups commit, commit, commit, commit, commit, commit

    • (FEATURED) Improve CIL scalability commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • NFSD
    • Overhaul NFSD filecache, a cache of server-side "struct file" objects recently used by NFS clients. The purposes of this overhaul are an immediate improvement in cache scalability in the number of open files, and preparation for further improvements 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

  • NTFS3
    • Added support for FALLOC_FL_INSERT_RANGE commit, commit

  • CEPH
    • Add session already open notify support commit

  • EROFS
    • Prepare for folios, duplication and kill PG_error commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • EXT2
    • Remove nobh support commit

  • FAT
    • Add support for the renameat2 RENAME_EXCHANGE flag commit, commit, commit, commit

  • AFS
    • Enable multipage folio support commit

4. Memory management

  • smaps: add Pss_Dirty to show the dirty private pages of a process commit

  • (FEATURED) dma-buf: Add an API for exporting sync files. Modern userspace APIs like Vulkan are built on an explicit synchronization model. This doesn't always play nicely with the implicit synchronization used in the kernel and assumed by X11 and Wayland. This release adds a new IOCTL that solves this problem by allowing to get a snapshot of the implicit synchronization state of a given dma-buf in the form of a sync file. It's effectively the same as a poll(), instead of CPU waiting directly, it encapsulates the wait operation, at the current moment in time, in a sync_file so we can check/wait on it later. This allows to accurately turn it into a VkFence or VkSemaphore without any over-synchronization commit, commit

  • hwpoison: enable 1GB hugepage support commit, commit, commit, commit, commit, commit, commit, commit

  • (FEATURED) Extend DAMOS for Proactive LRU-lists Sorting commit, commit, commit, commit, commit, commit, commit, commit

  • hugetlb: support write-faults in shared mappings commit

  • mprotect: try avoiding write faults for exclusive anonymous pages when changing protection commit

  • Introduce shrinker debugfs interface commit, commit, commit, commit, commit, commit

  • page_pool: Add stats counters commit, commit, commit, commit, commit, commit

  • tools/vm/slabinfo: Handle files in debugfs commit

  • Updates cacheinfo to populate and use the information from there for all the cache topology. This intends to fix some discrepancies we have in the CPU topology parsing from the device tree /cpu-map node. Also this diverges from the behaviour on a ACPI enabled platform. The expectation is that both DT and ACPI enabled systems must present consistent view of the CPU topology commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Folios work
    • Finish the conversion from alloc_pages_vma() to vma_alloc_folio(), finish converting shrink_page_list() to folio, start converting shmem from pages to folios commit, commit, commit, commit, commit

    • Convert the swap code to be more folio-based commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Removes find_get_pages_range(), pagevec_lookup() and pagevec_lookup_range(), converting all callers to use the new filemap_get_folios() commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

5. Block layer

  • dm verity: optionally use tasklets to DM verity target checksums commit, commit, commit, commit, commit, commit

  • Direct I/O DMA alignment commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • scsi
    • ufs: host: ufs-exynos: Add support for FSD UFS HCI commit

    • ufs: ufs-renesas: Add support for Renesas R-Car UFS controller commit

  • Remove UBLK_IO_F_INTEGRITY commit

6. Tracing, perf and BPF

  • BPF
    • (FEATURED) Introduce type match support, a new way for performing type queries to BPF. It introduces the "type matches" relation, similar to what is already present with "type exists" (in the form of bpf_core_type_exists) commit, commit, commit, commit, commit, commit, commit, commit, commit

    • (FEATURED) Add 64bit enum value support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Add a ksym BPF iterator commit

    • (FEATURED) Sleepable uprobe support commit, commit, commit, commit, commit

    • cgroup_sock lsm flavor for attaching per-cgroup programs to existing lsm hooks commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • bpftool: Add command to list BPF types, helpers commit, commit

    • bpftool: Add KIND_RESTRICT support commit

    • libbpf: Textual representation of enums commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Add SEC("ksyscall")/SEC("kretsyscall") sections and corresponding bpf_program__attach_ksyscall() API that simplifies tracing kernel syscalls through kprobe mechanism commit, commit, commit, commit, commit

    • libbpf: remove deprecated APIs commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • libbpf: perfbuf: Add API to get the ring buffer commit

  • perf
    • (FEATURED) Introduce 'perf lock contention' subtool, using new lock contention tracepoints and using BPF for in kernel aggregation and then userspace processing using the perf tooling infrastructure for resolving symbols, target specification, etc commit, commit, commit, commit, commit, commit, commit

    • (FEATURED) Add new 'perf kwork' tool to trace time properties of kernel work (such as softirq, and workqueue), uses eBPF skeletons to collect info in kernel space, aggregating data that then gets processed by the userspace tool commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Compress the pmu_event tables commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Rewrite jevents program in python commit, commit, commit, commit

    • perf record: Preparation for sideband injection commit, commit, commit, commit, commit

    • perf tools: Support reading PERF_FORMAT_LOST commit, commit, commit, commit

    • perf stat: Add JSON output option commit

    • Add a new read format to get a number of lost samples commit

  • ftrace: host klp and bpf trampoline together commit, commit, commit, commit

7. Virtualization

  • vmxnet3: upgrade to version 7 commit, commit, commit, commit, commit, commit, commit, commit

  • virtio pci support VIRTIO_F_RING_RESET 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

  • virtio_net: notifications coalescing support commit

  • ifcvf/vDPA: support query device config space through netlink commit, commit, commit, commit

  • mlx5 address space and suspend support commit, commit

  • Implement vdpasim suspend operation commit, commit, commit, commit

  • vdpa_sim_blk
    • Add support for VIRTIO_BLK_T_FLUSH commit

    • Add support for discard and write-zeroes commit

  • VDUSE: Support registering userspace memory as bounce buffer commit, commit, commit, commit, commit

  • virtio pci support VIRTIO_F_RING_RESET 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

  • KVM: debugfs: expose pid of vcpu threads commit

  • xen: Add support for HVMOP_set_evtchn_upcall_vector commit

  • vhost scsi: Allow user to control num virtqueues commit

8. Cryptography

  • Remove CONFIG_ARCH_RANDOM commit

  • HCTR2 support commit, commit, commit, commit, commit, commit, commit, commit, commit

  • aria: Implement ARIA symmetric cipher algorithm commit

  • rsa: implement Chinese Remainder Theorem for faster private key operations commit

9. Security

  • Add support for proper labeling of memfd_secret anonymous inodes commit

  • Add LSM hook to setgroups() syscall commit

  • LSM hooks for IORING_OP_URING_CMD commit, commit, commit

  • apparmor
    • Enable tuning of policy paranoid load for embedded systems commit

    • Make export of raw binary profile to userspace optional commit

    • Add a kernel label to use on kernel objects commit

  • LoadPin: Enable loading from trusted dm-verity devices commit, commit, commit

  • LSM: SafeSetID: Add setgroups() security policy handling commit

10. Networking

  • Bluetooth
    • Initial support for Isochronous Channels/ISO sockets commit, commit, commit, commit, commit, commit, commit

    • Add bt_status commit

  • IPv4/IPv6: new option to accept garp/untracked na only if in-network commit, commit, commit

  • Allow to inherit from VLAN encapsulated IP commit, commit, commit, commit

  • ip6mr: add RTM_GETROUTE netlink op commit

  • TCP
    • diag: add support for TIME_WAIT sockets to tcp_abort() commit

    • Make global challenge ack rate limitation per net-ns and default disabled commit

  • af_unix
    • Introduce per-netns socket hash table commit, commit, commit, commit, commit, commit

    • Optimise hash table layout commit

  • Bonding
    • Add per-port priority support commit, commit

    • Support balance-alb interface with vlan to bridge commit

  • bridge: allow add/remove permanent mdb entries on disabled ports commit

  • Implement dev info and dev flash for line cards commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • dsa: add get_pause_stats support commit

  • mptcp: Support changes to initial subflow priority commit, commit, commit, commit, commit

  • ping: support ipv6 ping socket flow labels commit

  • seg6: add support for SRv6 Headend Reduced commit, commit, commit, commit

  • smc: Introduce virtually contiguous buffers for SMC-R commit, commit, commit, commit, commit, commit

  • TLS
    • rx: nopad and backlog flushing commit, commit, commit, commit, commit

    • rx: decrypt from the TCP queue commit, commit, commit, commit, commit, commit, commit

  • wifi: more MLO work (required for WiFi 7) 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

  • New BPF nf_conntrack kfuncs for insertion, changing timeout, status commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • tun: support not enabling carrier in TUNSETIFF commit

11. Architectures

11.1. ARM

  • Device Tree updates, new SoCs

    • A whole family of Broadcom broadband SoCs, both 32-bit and 64-bit: BCM63178, BCM63158, BCM4912, BCM6858, BCM6878, BCM6846, BCM63146, BCM6856, commit, BCM6756, BCM63148, and BCM6813.

    • The new NXP i.MX93 SoC, the follow-up to the popular i.MX6 and i.MX8 embedded SoCs, now using Cortex-A55 cores and the Ethos-U65 NPU commit, commit, commit

    • Qualcomm Snapdragon 8cx Gen3 (SC8280XP), the current high end of Arm based Laptop SoCs, and its automotive cousin, the SA8540P. The SC8280XP is used in the Lenovo Thinkpad X13s laptop that also gets added here in addition to the reference boards commit, commit, commit, commit, commit, commit

    • Allwinner H616, a newer version of the H6 SoC, targeted at Set-top-box applications. It comes with dts files for the Orange Pi zero2 single-board computer and the X96 Mate set-top-box commit, commit, commit, commit, commit

    • Marvell Prestera 98DX2530 (AlleyCat5), a network switch chip in the Armada SoC family based on the Cortex-A55 core commit

    • Add Sunplus SP7021 SoC Support commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Nuvoton Arbel NPCM8XX BMC SoC commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Device Tree updates, support for new machines based on previously supported SoC:
    • Several new machines on NXP i.MX platforms: multiple Toradex Colibri boards using the "Iris" commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit and "Ixora" carriers [https://git.kernel.org/linus/966b48d983daa15ae4af56b24ae5ec6ec5eae0d7|commit]], commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, DH electronics i.MX8M Plus DHCOM and PDK2 commit, commit, TQ-Systems TQMa8MPQL commit, and phytech phyBOARD-Polis-i.MX8MM commit

    • Google Chameleon v3 FPGA board based on Intel Arria10 and Stratix 10 Software Virtual platform, both in the SoCFPGA platform commit, commit, commit, commit, commit

    • Two new wireless devices based on Broadcom SoCs: The Asus GT-AX6000 Router commit and the Cisco Meraki MR26 access point commit

    • Improved Chromebook support for both the Mediatek and Qualcomm SoC families brought added machines: Acer Chromebook 514 (MT8192) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, Acer Chromebook Spin 513 (MT8195) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit and a couple of SC7180 based machines including the Lenovo IdeaPad Chromebook Duet 3 commit, commit, commit, commit, commit

    • mediatek: SVS: introduce MTK SVS commit, commit, commit, commit, commit, commit

    • Xiaomi Mi Mix2s commit, LG G7 and LG V35 commit are mobile phones based on Qualcomm SDM845, while Mi 5s Plus commit is based on MSM8996

    • A few development board on other chips: PCB8309 (Microchip lan966x) commit, commit, Radxa Rock Pi S (Rockchips RK3308) commit, DH DRC Compact (ST STM32MP1) commit and Inforce IFC6560 (Qualcomm SDM660) commit

    • dts: aspeed: centriq2400: drop the board commit

    • davinci: Delete DM644x board files commit

    • davinci: Delete DM646x board files commit

    • Add BCM63138 generic board dts commit, commit

    • Add support for Stratix 10 Software Virtual Platform commit

    • Introduce the Qualcomm SA8540P automotive platform and the SA8295P ADP development board commit

  • soc: qcom: Add compatibles for MSM8909 commit, commit, commit, commit, commit, commit, commit, commit

  • ACPI: Enable Platform Runtime Mechanism(PRM) support commit, commit, commit

  • coresight: Add config flag to enable branch broadcast commit

  • ASoC: qcom: soundwire: Add support for controlling audio CGCR from HLOS commit

  • soc: fujitsu: Add A64FX diagnostic interrupt driver commit

  • Support MediaTek devapc for MT8186 commit, commit, commit

  • Add mutex support for MDP commit, commit, commit, commit, commit

  • coresight: Add config flag to enable branch broadcast commit, commit, commit, commit

  • ARM64
    • Enable THP_SWAP for arm64 commit

    • BPF trampoline, which converts native calling convention to bpf calling convention and is used to implement various bpf features, such as fentry, fexit, fmod_ret and struct_ops commit, commit, commit, commit

    • sme: Expose SMIDR through sysfs commit

    • boot: add zstd support commit

    • Trap implementation defined functionality in userspace commit

    • Cleanup ioremap() and support ioremap_prot() commit, commit, commit, commit, commit, commit

    • Disabling SVE/SME from the command-line commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Start allocating upper bits of AT_HWCAP2 commit, commit, commit

    • perf c2c: Support data source and display for Arm64 commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • lib/rwmmio/arm64: Add support to trace register reads/writes commit, commit, commit, commit, commit, commit, commit, commit, commit

11.2. X86

  • Enable STIBP for IBPB mitigated RETBleed commit

  • Prefer MWAIT over HLT on AMD processors commit, commit, commit

  • platform
    • chrome: cros_kbd_led_backlight: add EC PWM backend commit, commit, commit, commit, commit

    • surface: Add support for tablet mode switch via Surface Aggregator Module commit, commit, commit, commit

    • surface: aggregator_registry: Rename and add more HID device nodes commit, commit, commit, commit

    • surface: aggregator: Add support for client hot-removal commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • surface: aggregator_registry: Add support for Surface Laptop Go 2 commit

    • Add Raptor Lake and PCI error recovery support commit, commit, commit, commit

    • intel/pmc: Add Alder Lake N support to PMC core driver commit

    • serial-multi-instantiate: Add CLSA0101 Laptop commit

    • thinkpad-acpi: Add support for automatic mode transitions commit

    • thinkpad-acpi: Add support for hotkey 0x131a commit

  • amd_nb: Add AMD PCI IDs for SMN communication commit

  • Add CPU model numbers for Meteor Lake commit

  • Add new Raptor Lake CPU model number commit

  • tlb: Avoid reading mm_tlb_gen when possible commit

  • rdrand: Remove "nordrand" flag in favor of "random.trust_cpu" commit

  • crypto: Use rng seeds from setup_data commit

  • (FEATURE) Support SGX2 also referred to as Enclave Dynamic Memory Management (EDMM) 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

  • Introducing AMD x2AVIC and hybrid-AVIC modes commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • KVM
    • IPI virtualization support for VM commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • nVMX: Support loading MSRs before nested state commit, commit, commit, commit, commit

    • Add a cap to disable NX hugepages on a VM commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Extend Eager Page Splitting to the shadow MMU commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Add basic support to enable guest PEBS via DS commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Add CMCI and UCNA emulation commit, commit, commit, commit, commit, commit, commit, commit

    • Extend KVM_{G, S}ET_VCPU_EVENTS to support pending triple fault commit

    • VMX: Enable Notify VM exit commit

  • perf
    • amd: Add PerfMonV2 DF event format commit

    • Add generated latest Intel events and metrics commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • amd: Zen4 IBS extensions support commit, commit, commit, commit, commit, commit, commit

  • amd-iommu: Add multiple PCI segments 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

11.3. POWERPC

  • Remove the 'nobats' kernel parameter commit

  • Remove 'noltlbs' kernel parameter commit

  • KASAN Full support for BOOK3E/64 commit

  • Atomics support for eBPF commit, commit, commit, commit, commit

  • Add DTS file for CZ.NIC Turris 1.x routers commit

  • Reorganise virtual memory commit

11.4. LOONGARCH

  • Add LoongArch-related irqchip drivers commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Add unwinder support commit, commit, commit, commit

11.5. RISCV

  • Implement Zicbom-based CMO instructions + the t-head variant commit, commit, commit, commit

  • Add Zihintpause support commit

  • Introduce unified static key mechanism for ISA ext commit, commit

11.6. S390

  • KVM: Add PV dump support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

11.7. UM

  • Seed rng using host OS rng commit

11.8. ARC

  • Drop support for CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 commit

12. Drivers

12.1. Graphics

  • Add support for the LogiCVC display controller commit

  • Add a panel API to set orientation properly commit, commit, commit, commit, commit, commit, commit, commit

  • amdgpu
    • Add support for DCN 3.2 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

    • Enable high priority gfx queue on asics which support it commit

    • Add SubVP required code commit

    • Add basic infrastructure for enabling FAMS commit

    • Add debug parameter to retain default clock table commit

    • Add support for HF-VSIF commit

    • Enable ASPM support for PCIE 7.4.0/7.6.0 commit

    • Adding device coredump support commit

    • Add peer-to-peer support among PCIe connected AMD GPUs commit

    • amdkfd
      • HMM profiler interface commit, commit, commit, commit, commit, commit, commit, commit

      • Add available memory ioctl commit

      • Enable GFX11 usermode queue oversubscription commit

      • Extend KFD device topology to surface peer-to-peer links commit

  • Intel
    • Preparation for Ponte Vecchio and new blitter engines commit, commit, commit, commit, commit

    • Add support for DRM_I915_GEM_VM_BIND/UNBIND ioctl, which allows UMD to bind/unbind GEM buffer objects (BOs) or sections of a BOs at specified GPU virtual addresses on a specified address space (VM) commit, commit, commit

    • dg2: Support 4k@30 on HDMI commit

    • Expose crtc current bpc via debugfs commit

    • Expose media freq factor to per-gt sysfs commit

    • Enable THP on Icelake and beyond commit

    • Support programming the EU priority in the GuC descriptor commit

    • Improve on suspend / resume time with VT-d enabled commit

    • Improve user experience and driver robustness under SIGINT or similar commit

    • Turn on small BAR support commit

  • msm
    • Client utilization via fdinfo support commit

    • adreno: Add A619 support commit, commit

    • Expand CRC to support interface blocks commit, commit, commit, commit

    • Add writeback support for sc7180 commit

    • Drop unused GPIO support commit

  • mediatek
    • Add MT8195 dp_intf driver commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • tegra
    • Add GPCDMA support for Tegra234 commit

    • Host1x context isolation / Tegra234 support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • meson
    • Support YUV422 output commit

  • mgag200
    • Support damage clipping commit

  • mxsfb/lcdif
    • Support i.MX8MP LCD controller commit

  • nouveau
    • Recognise GA103 commit

  • panfrost
    • Add Mali-G57 "Natt" support commit

  • ast
    • Enable primary plane with CRTC commit

    • Support multiple outputs commit

  • bridge
    • Add some DRM bridge drivers support for i.MX8qm/qxp SoCs commit,