LWN, Linux, and Benchmarks
-
LWN ☛ LWN's guide to 2024
The kernel community will begin to move away from email as the core of its development process. Progress will be slow, and many kernel developers will prove strongly resistant to any alternative workflow, often for good reasons, but there will be at least a few developers who are able to get work reviewed, updated, and merged without having to touch a mail client. In a world where even Linus Torvalds is saying that the time has come to make a change, the unthinkable stands a good chance of actually coming to pass.
The next long-term stable kernel will be 6.12, which will be released on December 1, 2024 (unless Linus Torvalds declines to make a release immediately after the US Thanksgiving holiday, in which case it will be one week later).
The first user-visible Rust code will be merged into the kernel, perhaps as soon as the 6.8 release (which will happen in March). That code may not be used on many systems initially, but it still marks an important transition: once Rust is used for user-visible features, the kernel community will no longer have the option of easily dropping support for the language. Merging user-visible Rust code into the kernel will, in other words, be a declaration that the Rust experiment is a success.
-
LWN ☛ Data-type profiling for perf
Tooling for profiling the effects of memory usage and layout has always lagged behind that for profiling processor activity, so Namhyung Kim's patch set for data-type profiling in perf is a welcome addition. It provides aggregated breakdowns of memory accesses by data type that can inform structure layout and access pattern changes. Existing tools have either, like heaptrack, focused on profiling allocations, or, like perf mem, on accounting memory accesses only at the address level. This new work builds on the latter, using DWARF debugging information to correlate memory operations with their source-level types.
Recent kernel history is full of examples of commits that reorder structures, pad fields, or pack them to improve performance. But how does one discover structures in need of optimization and characterize access to them to make such decisions? Pahole gives a static view of how data structures span cache lines and where padding exists, but can't reveal anything about access patterns. perf c2c is a powerful tool for identifying cache-line contention, but won't reveal anything useful for single-threaded access. To understand the access behavior of a running program, a broader picture of accesses to data structures is needed. This is where Kim's data type profiling work comes in.
-
LWN ☛ The trouble with MAX_ORDER
One might not think that much could be said about a simple macro defining a constant integer value. But the kernel is special, it seems. A change to the definition of MAX_ORDER has had a number of follow-on effects, and the task of cleaning up after this change is not done yet. So perhaps a look at MAX_ORDER is in order.
Like everything else in the earliest releases of the Linux kernel, memory management was simple; it was mostly concerned with the tracking and management of individual pages. Around 1994, though, as memory sizes increased and the kernel became more complex, it became clear that the ability to deal with pages in larger chunks would be useful. The 1.1.0 release in April 1994 included the beginnings of what was to become the kernel's "buddy allocator", which tracks and allocates pages in blocks sized in powers of two.
-
LWN ☛ The Linux graphics stack in a nutshell, part 2
Displaying an application's graphical output onto the screen requires compositing and mode setting that are correctly synchronized among the various pieces, with low overhead. In this second and final article in the series, we will look at those pieces of the Linux graphics stack. In the first installment, we followed the path of graphics from the application, through Mesa, while using the memory-management features of the kernel's Direct Rendering Manager (DRM) subsystem. We ended up with an application's graphics data stored in an output buffer, so now it's time to display the image to the user.
-
WCCF Tech ☛ MESA “RADV” Vulkan Driver To Recieve Performance Optimizations For AMD FSR 3 & VKD3D-Proton
For those who are unaware of VKD3D-Proton, it is an open-source project that aims to provide a DirectX 12 to Vulkan translation layer for the Proton compatibility tool used in the Steam Play feature on Linux. It helps to improve compatibility and performance for Windows games running on Linux.
Not only is VKD3D-Proton vital for Steam Deck users, but it also aids in making gaming a more seamless experience on Linux, and with the new set of optimizations, the feature would become much more improved.
-
Mobile Systems/Mobile Applications
-
Phone Arena ☛ Tensor-powered Pixels rumored to receive rare update
Comments left by Google engineers on the Android Open Source Project (AOSP) site indicate that current Tensor-powered Pixels will get an update to Linux kernel 6.1. Pixels powered by the Tensor G1 and G2 application processors (AP) currently run on Linux kernel 5.10, while Tensor G3 Pixels run on Linux 5.15.
-