The kernel's software I/O translation lookaside buffer ("swiotlb") is anobscure corner of the DMA-support layer. The swiotlb was initiallyintroduced to enable DMA for devices with special challenges, and one mighthave expected it to fade away as newer peripherals came along. Instead,though, the swiotlb has turned out to be useful in places outside of itsoriginal use cases. Thispatch set from Petr Tesarik now aims to update the swiotlb with an eyetoward its continuing use indefinitely into the future.
Greg Kroah-Hartman has announced the release of two new stable kernels: 6.4.12 and 6.1.47. Both contain lots of important fixesthroughout the kernel tree.
Over the years, there have been multiple examples of open-source softwarethat, suddenly, was no longer open source; on August10, some furtherexamples were added to the pile. That happened when HashiCorp announcedthat it would be switching the license on its products from the Mozilla PublicLicense2.0 (MPL) to the Business Source License1.1(BSL or BUSL). At least one of the products affected by the change, the Terraform infrastructure-automationtool, has attracted an effort to continue it as an open-source tool in theform of a fork that would be maintained by the nascent OpenTF Foundation. That seems like asensible reaction to the move, but it also helps serve up yet anotherreminder that code which is controlled by a single entity is normallyalways at risk of suchadverse changes.
Security updates have been issued by Debian (mediawiki and qt4-x11), Fedora (java-17-openjdk, linux-firmware, and python-yfinance), Red Hat (kernel, kpatch-patch, and subscription-manager), SUSE (evolution, janino, kernel, nodejs16, nodejs18, postgresql15, qt6-base, and ucode-intel), and Ubuntu (inetutils).
ThePineTime is an inexpensivesmartwatch developed by PINE64 that isdesigned to run open-source operating systems. Despite its low cost, however,it has most of the features expected from more expensive, proprietarysmartwatches. Because it runs open-source software, though, interesteddevelopers can add any other useful features that they dream up.
Making a filesystem implementation robust in the face of maliciouslycreated filesystem images is a challenging task even when theimplementation is actively maintained, which many in the kernel are not. There is a way tomake that task even harder, though: modify that filesystem image behind theimplementation's back while it is mounted. A recent discussion on thelinux-fsdevel list reveals an ongoing disagreement over whether (and how)this threat should be addressed.
The Document Foundationhas announcedthe release of LibreOffice7.6 Community. It is the last releaseusing the existing numbering scheme as the office suite will move to date-basedrelease numbers starting with LibreOffice24.2 inFebruary,2024. Highlights of this release include support fordocument themes, including import and export of them, a new navigationpanel for Impress and Draw, zoom-gesture support, font-handlingimprovements, and lots more; the releasenotes have all the details.
Security updates have been issued by Debian (fastdds, flask, and kernel), Fedora (chromium, dotnet6.0, dotnet7.0, gerbv, java-1.8.0-openjdk, libreswan, procps-ng, and spectre-meltdown-checker), SUSE (chromium, kernel-firmware, krb5, opensuse-welcome, and python-mitmproxy), and Ubuntu (clamav, firefox, and vim).
Linus Torvalds has released the 6.5-rc7 kernelprepatch, which looks to be the final release candidate before the likelyrelease of Linux 6.5 next Sunday. Torvalds released it a little earlierthan usual due to some travel; overall things look to be in good shape:
It is fair to say that the DNF packagemanager is not the favorite tool of many Fedora users. It was broughtin as a replacement for Yum but got off to arather rocky start; DNF hasstabilized over the years, though and the complaints have subsided. That can onlymean one thing: it must be time to throw it away and start over from thebeginning. The replacement, called DNF5, was slated to be a part of theFedora39 release, due in October, but that is not going to happen.
SUSE's long story of corporate ownership is gaining a new chapter; thecompany has announcedthat its majority shareholder (Marcel LUX III SARL) will be acquiring theremaining shares, and will take the company private and off of the stockexchange. "SUSE's Management Board and Supervisory Board support thestrategic opportunity from delisting of the company as it will allow SUSEto focus fully on its operational priorities and execution of its long-termstrategy."
In its default configuration, the Linux kernel will allow processes toallocate more memory than the system can actually provide; this policyenables better utilization of physical memory and works just fine - most ofthe time. On occasions, though, the kernel may find itself unable toprovide memory that processes may think already belongs to them. If thesituation gets bad enough, the only solution (short of rebooting) is todeclare a sort of memory bankruptcy and write off some of the kernel'sdebts by killing one or more processes. Over the years, a great deal ofeffort has gone into heuristics to select the processes that the user isleast likely to miss. This problem is still clearly not solved toeverybody's satisfaction, though, so it was only a matter of time beforesomebody introduced a way to select the out-of-memory (OOM) victim usingBPF.
Security updates have been issued by Debian (open-vm-tools, openjdk-11, and openssh), Fedora (librsvg2, llhttp, opensc, and rust), Oracle (.NET 6.0, .NET 7.0, iperf3, microcode_ctl, postgresql:10, and python-requests), SUSE (openssl-1_0_0, perl-Cpanel-JSON-XS, postgresql12, and postgresql15), and Ubuntu (ceph, haproxy, heat, libpod, and postgresql-12, postgresql-14, postgresql-15).
Readers have been pointing us to HashiCorp's announcementthat it is moving to its own "Business Source License" for some of its(formerly) open-source products. Like other companies (example) that have taken this path, HashiCorpis removing the freedom to use its products commercially in ways that itsees as competitive. This is, in a real sense, an old and tiresome story.The lessons to be drawn from this change are old as well. One is to bewareof depending on any platform, free or proprietary, that is controlled by asingle company. It is a rare company that will not try to take advantageof that control at some point.The other is to beware of contributor license agreements. HashiCorp'sagreement usedto read that it existed "to ensure that our projects remain licensedunder Free and Open Source licenses"; the current version doesn't say thatanymore. But both versions give HashiCorp the right to play exactly thiskind of game with any code contributed by outsiders. Developers who werecontributing to a free-software project will now have their code used in arather more proprietary setting. When a company is given the right to takesomebody else's code proprietary, many of them will eventually make use ofthat right.
The call for topics for the LinuxKernelMaintainers Summit went out on August15; one proposed topic hasgenerated some interesting discussion about security-bug reporting for thekernel. A recent patchto the kernel's documentation about how to report security bugs recommendsavoiding posting to the linux-distrosmailing list because its goals and rules do not mesh well with kernelsecurity practices. That led Jiri Kosina to suggesta discussion on security reporting, especially with regard to Linuxdistributions.
Security updates have been issued by Debian (datatables.js and openssl), Fedora (ghostscript, java-11-openjdk, java-latest-openjdk, microcode_ctl, and xen), Red Hat (redhat-ds:11), SUSE (java-1_8_0-openj9, kernel, krb5, pcre2, and perl-HTTP-Tiny), and Ubuntu (gstreamer1.0, mysql-8.0, tiff, and webkit2gtk).
"Subinterpreters", which are separate Python interpreters running in thesame process that can becreated usingthe C API, have been a part of Python since the previous century(version1.5 in1997), but they are largely unknown and unused.Eric Snow has been on something of a quest, since 2015 or so, to bring better multicore processing to Python byway of subinterpreters (or "multiple interpreters"). He has made it partof the way there, with the adoption of a separate global interpreter lock (GIL) for eachsubinterpreter, whichwas added for Python3.12. Back in April, Snow gave a talk (YouTube video) atPyCon about multiple interpreters, their status, and his plans for thefeature in the future.
Version5.0 ("Daedalus") of the Debian-based Devuan distribution has beenreleased. "This is the result of many months of painstaking work by theTeam and detailed testing by the wider Devuan community." Theannouncement lists a couple of new features but mostly defers to theDebian12 ("bookworm") release notes.
Security updates have been issued by Debian (samba), Red Hat (.NET 6.0, .NET 7.0, rh-dotnet60-dotnet, rust, rust-toolset-1.66-rust, and rust-toolset:rhel8), and SUSE (kernel and opensuse-welcome).
The Linux fast user-space mutex ("futex") subsystem debuted with the 2.6.0kernel; it provides a mechanism that can be used to implement user-spacelocking. Since futexes avoid calling into the kernel whenever possible,they can indeed be fast, especially in the uncontended case. The API usedto access futexes has never been seen as one of Linux's strongest points,though, so there has long been a desire to improve it. This patchseries from Peter Zijlstra shows what the future of futexes may looklike.
LWN recently covered a discussion onfile-position locking that demonstrated the hazards that can resultfrom unexpected concurrency. It turns out that this discussion had not yetfully run its course. Since that article was written, additional changesintended to address a performance regression evolved into a core virtualfilesystem (VFS) layer API change to carry out some much-delayed housecleaning.
Greg Kroah-Hartman has announced the release of the6.4.10, 6.1.45, 5.10.190, 5.4.253, 4.19.291, and 4.14.322 stable kernels. Note that 5.15.126was also inthe review process for this batch, but has not (yet) been released. Meanwhile, the rest of the batch all have important fixes throughoutthe kernel tree, as usual.Update: the 5.15.126 announcementhas now gone out as well.
The Open Enterprise Linux Associationhas announced itsexistence. It is a collaboration between CIQ (Rocky Linux), Oracle,and SUSE to provide an RHEL-compatible distribution.
It is the kernel's business to know when a process's memory has beenwritten to; among other things, this knowledge is needed to determine whichpages can be immediately reclaimed or to properly write dirty pages to backing store.Sometimes, though, user space also needs access to this information in areliable and fast manner. Thispatch series from Muhammad Usama Anjum adds a new ioctl() callfor this purpose; using it requires repurposing an existing system call inan unusual way, though.
OpenSSH 9.4 has been released. Changes this time include the ability toforward Unix-domain sockets, a tags mechanism for more flexibleconfiguration, and more.
The global interpreter lock (GIL) has been a part of CPython since thebeginning-nearly-butthat seems likely to change over the next five or so years. As we described last week, thePython steering council has announcedits intention to start moving toward a no-GILCPython, potentially as soon as Python3.13 in October2024for the preliminaries. The no-GIL version of CPython comes from SamGross, who introducedit as a proof-of-concept nearly two yearsago; now, the idea has been formalized in a Python Enhancement Proposal(PEP) that describes no-GIL mode and how it interacts with the rest of thePython ecosystem.
Getting a stack trace of a running program is useful in a variety ofscenarios: tracing, profiling, debugging, performance tuning, and more.There are existing mechanisms to get stack traces, but there are somedownsides to them; the "Simple Frame" (SFrame) stack-trace format cameabout to address the shortcomings in the other techniques. Back in May,Steve Rostedt and Indu Bhagat gave a talk aboutSFrame support in the kernel as part of LSFMM+BPF; a few days later, Bhagat gavea more general talk about SFrame (YouTube video)at OpenSource Summit North America in Vancouver. That second talk helped fillin some other aspects of SFrame and the overall stack-tracing picture.
The6.4.9,6.1.44,5.15.125,5.10.189,5.4.252,4.19.290, and4.14.321stable kernel updates have all been released; they are dominated by fixesfor the latest round ofspeculative-execution vulnerabilities.Do note the warning attached to each of these releases:
Security updates have been issued by Debian (libhtmlcleaner-java and thunderbird), Red Hat (dbus, kernel, kernel-rt, kpatch-patch, and thunderbird), Scientific Linux (thunderbird), SUSE (chromium, gstreamer-plugins-bad, gstreamer-plugins-base, gstreamer-plugins-good, gstreamer-plugins-ugly, kernel-firmware, libqt5-qtbase, libqt5-qtsvg, librsvg, pcre2, perl-Net-Netmask, qt6-base, and thunderbird), and Ubuntu (firefox).
The Linux Containers project hasannounced the addition ofIncus, which is a fork of LXD5.16 started by Aleksa Sarai. Incus was created in response to Canonical's removal of LXD from LinuxContainers.
Return-orientedprogramming (ROP) has, for some years now, been a valuable tool forthose who would subvert a system's security. It is thus not surprisingthat a lot of effort has gone into thwarting ROP attacks, which depend oncorrupting the call stack with a carefully chosen set of return addresses,at both the hardware and software levels. One result of this work isshadow stacks, which can detect corruption of the call stack, allowing theoperating system to react accordingly. The 64-bit Arm implementation ofshadow stacks is called "guarded control stack" (GCS); patches implementingsupport for this feature are currently under discussion.