Kernel watch

2 min read

Jon Masters keeps up with all the latest happenings in the Linux kernel, so you don’t have to.

Linus Torvalds has announced Linux 6.9 release candidate (RC) 7. It is rare to go beyond this point in a development cycle, and thus likely that 6.9 will be released imminently. Probably the most interesting stuff in this release is under the hood, but a few things stand out as of interest to end users. This includes support for AMD SNP (Secure Nested Paging) Confidential Compute guest VMs. It may also be interesting to note that Linux 6.9 will officially deprecate the venerable ext2 filesystem driver. Support for older filesystems will exist most likely for decades – many people have used ext2 on SD storage to easily avoid journaling wear issues, though this can be disabled in ext4 – but users are being encouraged to avoid ext2 because it cannot represent timestamps beyond those supported by 32-bit Unix timestamps (the Y2k38 problem, which you can read about at length in our previous issue, LXF315).

IT’S LINUX, OF COURSE!

TSO memory model

Modern computers are usually formed from a large number of individual CPU cores that operate upon shared memory visible to all of them. As users of these machines, we demand the highest level of performance. But there is a tension between performance and certain intrinsic behaviours inherent to hardware, such as the communication mechanics of data sharing across large numbers of cores. In order to increase performance, certain ‘relaxations’ are often introduced into hardware designs that can (for those not expecting it) be surprising.

A classical example comes in the form of two CPU cores that both operate upon two shared data items (variables), located in memory locations x and y (which start out containing the value zero). Processor A writes the value 1 into location x, then reads y into register (memory local to the core) r1. Meanwhile, processor B writes the value 1 into y, then reads x into its register r1. You might expect that one (or both) of the two processors will write a 1 first, and that either (or both) will see a 1 in its register r1. But in truth, thanks to a hardware