Linux_7.3 – Linux Kernel Newbies
Linux 7.3 changelog. Summary: Linux 7.3 improves gaming performance on low-end GPUs by improving VRAM management; it also adds completed support for assigning individual BPF task schedulers for each individual cgroup an…
以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。
Kernel Hacking Frontpage
Kernel Hacking
Kernel Documentation
Kernel Glossary
FAQ
Found a bug?
Kernel Changelog
Upstream Merge Guide
Projects KernelTasklists
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_7.3
Last updated at 2026-10-11 14:35:41
Linux 7.3 changelog. Summary: Linux 7.3 improves gaming performance on low-end GPUs by improving VRAM management; it also adds completed support for assigning individual BPF task schedulers for each individual cgroup and more performant cgroup scheduling; better btrfs and ext4 performance; support for a new sandboxing technique using a new failfs pseudofilesystem + a new fchroot(2) system call; support for the RWF_DONTCACHE flag when opening block devices as an alternative to Direct I/O; a more powerful binfmt_misc for distros like NixOS, SMB server support for Apple Time Machine extensions and other improvements; userfaultfd(2) support for better tracking the working set of VM guest memory; and better performance for FUSE servers using io_uring. As always, there are many other features, new drivers, improvements and fixes. You might also be interested in the list of changes done by Linux Weekly News: part 1, part 2 Contents Prominent features Improved VRAM management for low-end GPUs
Support for cgroup sub-schedulers (sched_ext) has been completed
Improved cgroup scheduling and other task scheduling improvements
New sandboxing technique with failfs + fchroot(2)
Btrfs and Ext4 performance improvements
More powerful binfmt_misc for sophisticated distros
SMB server support for Apple Time Machine extensions
Better separation between kernel threads and PID 1
Add support userfaultfd: working set tracking for VM guest memory
Better FUSE io_uring performance
RWF_DONTCACHE for block devices, an alternative for Direct I/O
Core (various)
File systems
Memory management
Block layer
Tracing, perf and BPF
Virtualization
Security
Networking
Architectures
Drivers Graphics
Storage
Networking
Audio
Tablets, touch screens, keyboards, mouses
Serial and tty layer
TV tuners, webcams, video capturers
Universal Serial Bus
Serial Peripheral Interface (SPI)
Watchdog
CPU Frequency scaling
Voltage, current regulators, power capping, power supply
Memory Technology Devices (MTD)
Industrial I/O (iio)
IIO
Inter-Integrated Circuit (I2C + I3C)
Hardware monitoring (hwmon)
General Purpose I/O (gpio)
Cryptography
PCI
Common clock framework
DMA generic offload engine subsystem
DMA mapping
Interconnect api
Irqchip drivers
Pinctrl
Mailbox
PHY
Leds
RTC
Remoteproc
MMC
Various
pmdomain
List of Pull Requests
Other news sites
- Prominent features
1.1. Improved VRAM management for low-end GPUs
When your GPU does not have (as it's usually the case) enough VRAM (Video RAM), different applications can end up competing for VRAM. Due to the way VRAM allocation worked, if two applications consumed a lot of VRAM, the one that arrived the latest, which could have more priority, could not get enough VRAM and end up allocation space from the GTT (system RAM accessible by the GPU). This release allows using the dmem cgroup to alleviate the situation: Instead of backing off immediately, the system will try evicting unprotected buffers from the domain to make space for the protected one. This ensures that applications can actually use all the memory protection awarded to them by the system, without being prone to ping-ponging. Recommended read: Fixing AMDGPU's VRAM management for low-end GPUs Cover letter: cgroup/dmem,drm/ttm: Improve protection in contended cases 1.2. Support for cgroup sub-schedulers (sched_ext) has been completed
After some work, this release has finally completed the implementation of sched_ext: this allows a cgroup have its processes be managed by its own BPF-based task scheduler. Different cgroups can have different BPF sub-schedulers and take different scheduling decisions. Recommended LWN article: Sched-ext: enqueue() for sub-schedulers and proxy-execution support Documentation: Extensible Scheduler Class Merge commit: Pull sched_ext updates 1.3. Improved cgroup scheduling and other task scheduling improvements
Cgroup scheduling has always been problematic and painful. Fair/cgroup isn't working for a number of people; typically the complaint is latencies and/or overhead. The problems starts with weight distribution and end with hierachical picks. This release improves cgroup scheduling in these fronts: It adds various cgroup weight distribution methods via cgroup_mode: 'up', 'max', 'concur' and 'tasks' - with the default being 'concur' which is the most precise (yet also most expensive version). Finally, change cgroup scheduling to a single runqueue. This release also improves the scheduling latency of tasks with shorter slice duration by mainly canceling, updating or minimizing the protection of the running tasks when appropriate. And cluster scheduling in the presence of asymmetric capacity has been fixed. Merge commit: Pull scheduler updates 1.4. New sandboxing technique with failfs + fchroot(2)
This release a new sandboxing mechanism, based on a new pseudo-file system, failfs, a counterpart of nullfs: where nullfs semantics are "there is nothing here", failfs semantics are "nothing is supported here. Because of these properties, nothing can ever be mounted on top of it, it cannot be mounted from userspace either, it cannot be cloned and it does not show up in statmount()/listmount(), /proc/<pid>/mountinfo, or /proc/filesystems. For a process with its root directory or working directory in failfs, absolute paths, absolute symlinks, and AT_FDCWD-relative lookups simply fail. A process can move its root directory into failfs via the new fchroot(2) system call, doing fchroot(FD_FAILFS_ROOT). From that point on every absolute path lookup and every absolute symlink fails with EOPNOTSUPP. Combined with fchdir(FD_FAILFS_ROOT), this leaves the process with lookups anchored at explicit directory file descriptors only. This allows taks to drop their filesystem state completely: the process must have anchored every path lookup at an explicit file descriptor before doing so, or is doomed to fail any lookup. The new fchroot(2) system call mentioned above is a new system call. It is a file descriptor based counterpart to chroot(2): it avoids re-resolving a path that the caller already holds a file descriptor to, no TOCTOU between resolving the target and changing the root. It composes with modern fd-based APIs meaning it works with O_PATH file descriptors and file descriptors to detached mount trees created via open_tree(OPEN_TREE_CLONE). Documentation: failfs Cover letter: fs: add failfs 1.5. Btrfs and Ext4 performance improvements
This release adds some performance improvements in Btrfs: Direct I/O performance has recovered the performance it lost in previous releases due to other unrelated work; and for non-SSD disks, the removal of an unnecesary 1 jiffy delay during logging workloads (eg. fsync) leads to decrease latency and 5x increased throughput. fsync with the no-holes feature enabled (default since btrfs-progs 5.15) is also 5x faster, and an xarray has been replaced with local LRU list for tracking inhibited extent buffers, restoring performance to pre-inhibition state (relatively ~3x). Ext4 has also got some performance improvements: Improve performance of direct I/O parallel writes, improve fallocate() performance, and a buffered-write regression has been fixed. 1.6. More powerful binfmt_misc for sophisticated distros
This release extends the binfmt_misc format registry so a binary type can be matched programmatically and its interpreter computed per exec instead of being a fixed string recorded at registration time. This allows Nix and others to e.g., implement relocatable binaries without patchelf tricks or wrapper scripts, because the interpreter/dynamic loader can be determined programatically, say found relative to the binary. The mechanism is flexible and can support other policies Recommended LWN article: Bringing BPF to binfmt_misc Documentation: bpf-backed handlers Cover letter: Pull binfmt updates 1.7. SMB server support for Apple Time Machine extensions
This release adds SMB server support for various features: opt-in Apple Time Machine support; implement the SMB2 command sequence window (which enforce the credit-based MessageId range for each connection, preventing invalid requests and same-channel replays), SMB3 request replay support, per-share SMB3 encryption support, and SMB Direct RDMA encryption support. Merge commit: Pull smb server updates 1.8. Better separation between kernel threads and PID 1
After the kernel starts PID 1 (eg. systemd), then starts kthreadd, which makes all kthreads (kernel threads) and PID 1 share the same filesystem state. This wierdly allows pivot_root() to rewrite the file system state of all kthreads. In this release PID 1 gets a completely separate fs_struct, while all kthreads are isolated in a separate nullfs mount. Recommended LWN article: Practical uses for a null filesystem Cover letter: fs,kthread: start all kthreads in nullfs 1.9. Add support userfaultfd: working set tracking for VM guest memory
This release adds userfaultfd(2) support for tracking the working set of VM guest memory. A new flag UFFDIO_REGISTER_MODE_RWP enables read-write protection tracking on a memory range. It is similar to (but faster than) mprotect(PROT_NONE) combined with a signal handler. It is designed for VM memory managers that need to track the working set of guest memory for cold page eviction to tiered or remote storage. Recommended LWN article: Working-set tracking for virtual-machine guest memory Documentation: Userfaultfd:Read-Write Protection Cover letter: userfaultfd: working set tracking for VM guest memory 1.10. Better FUSE io_uring performance
This release allows FUSE servers to pass in a buffer pool that the kernel will use as it wishes for servicing requests, in a way that reduces the memory usage requirements needed to use fuse-io-uring and lets the kernel do any optimizations for assigning payload memory to requests. This series additionally adds zero copy to fuse io-uring. The FUSE server can directly access client pages or page cache folios without copying data through an intermediary buffer. This requires CAP_SYS_ADMIN privileges and using buffer pools. Documentation: 3. FUSE-over-io-uring design documentation Cover letter: fuse: add io-uring buffer pools and zero-copy 1.11. RWF_DONTCACHE for block devices, an alternative for Direct I/O
This release allows using the RWF_DONTCACHE flag (used in preadv2(2), pwritev2(2), and io_uring read and write requests) when opening block devices. This allows databases open a raw block device and have the ability to keep data in the kernel's page cache when it benefits from it (not using the flag), and opt out per request for the data that does not (using it), without the downsides of direct I/O. Recommended read: RWF_DONTCACHE for Block Devices Cover letter: block: enable RWF_DONTCACHE for block devices 2. Core (various)
Add failfs: nullfs provides a permanently empty and immutable directory. Lookups fail with ENOENT. The directory can be opened, read, stat, mounted upon. It behaves like nothing is there. This release add its counterpart failfs, where the semantics are not "there is nothing here" but "nothing is supported here". Every operation that reaches the filesystem fails with EOPNOTSUPP. This is accompanied by a new fchroot() system call which makes chrooting via a file descriptor a first class concept. It's possible to chroot() int
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。