First release candidate of Linux kernel 6.9 looks 'fairly normal,' says Torvalds
Improved workqueues mean the end of tasklets is looming at long last
Linus Torvalds just announced the first RC of 6.9 on the Linux Kernel mailing list, saying it "looks to be fairly normal", although it's a recordbreaker in size.
He did call out a few changes in RC-1 of kernel 6.9, which should be ready in roughly mid-May, as especially noteworthy.
One is a very old feature that's being shown the door: the original in-kernel NTFS driver. No, this doesn't mean Linux won't be able to use Windows disks any more – it's the reverse: it will be better able to handle them.
Linux has no fewer than three FOSS drivers for NTFS. Of these, the newest and most capable is called ntfs3
, submitted by Paragon Software back in 2020, finally accepted in mid-2021 and released in kernel version 5.15.
There's also FUSE, the Filesystem in User Space, which is also available for macOS. It can run ntfs-3g, which works fine but is relatively slow, because it's not in the kernel. FUSE isn't going anywhere: it's useful for other disk formats than just NTFS, and also merged into 6.9 are performance improvements for the FUSE subsystem.
Given these three choices, the oldest driver, only able to read NTFS volumes not write to them, is now obsolete and has been removed.
The other "notable" changes are mostly much more niche, but will affect Linux device driver development in the near future. As Torvalds put it:
The timer subsystem had a fairly big rewrite, to have per-cpu timer wheels to improve performance of timers, which can be a big deal particularly for networking. The other fairly notable core update is to the workqueue subsystem, where one notable addition is for BH [that's "bottom half" – Ed] workqueue support. That's notable mainly because it means we finally have a way away from tasklets.
Tasklets are part of the Linux kernel's system for device drivers, and the kernel maintainers have been looking for better replacement for a long time. Linux Weekly News reported on Eliminating Tasklets as long ago as 2007, but it still hasn't happened. Back in 2020, it also looked at Modernizing the Tasklet API, which attracted comments such as "I would MUCH rather see tasklets go the way of the dodo […] Can't we stage an extinction event here instead?" and "I'd rather see tasklets vanish from the planet completely, but that's going to be a daring feat."
It looks like kernel 6.9 may lay the groundwork for this "daring feat" to happen. Torvalds continued:
The tasklet interface has basically been deprecated for a long while, but we've never really had any good alternatives (with threaded interrupt handlers being one suggested use-case, but not realistic in many cases).
Back in 2008, LWN also looked at Moving interrupts to threads, but while it works for the realtime kernel, it's apparently not generally applicable.
Some of the other, smaller changes in 6.9 will be more visible, such as larger console fonts on 4K monitors. The new driver for Intel's next-gen integrated GPU, Intel Xe, gets some improvements, as does the new bcachefs filesystem, and support for the kernel to choose the preferred P-core on heterogenous-multicore AMD CPUs. ®
Bootnote: Danger, Will Robinson, danger
The Reg FOSS desk uses NTFS volumes on various Linux boxes fairly extensively, and the new NTFS driver does introduce a new hazard – which we've not seen mentioned elsewhere. Because NTFS3 is a proper, first-class, in-kernel filesystem, it uses normal Linux access permissions – unlike NTFS-3G, where this stuff is generally invisible. This means you can suddenly find that, when you mount a drive with the new driver – which will be mandatory when kernel 6.9 appears – you might not be able to access some files, as the chances that your Linux credentials happen to match your Windows ones are basically nonexistent.
Also, a reminder: as we described a couple of years ago, Microsoft's on-by-default BitLocker and Fast Startup features will prevent you mounting NTFS volumes from Linux, unless you manually disable them in Windows.