Eugen Hristev
January 11, 2024
Reading time:
2024 is here, and with it comes Linux kernel 6.7, a brand new kernel release with some notable highlights that are worth underlining. In addition to being one of the largest in the recent history of the kernel, and the biggest in the 6.x series, contributors also made it the largest merge window and kernel release in the entirety of the kernel's history!
Collabora's kernel team was also very active in this development cycle. We introduced a new kselftest for verifying driver probe of Devicetree-based platforms, made multiple improvements to further improve support for MediaTek SoCs found in Chromebooks, and made strides in our upstream enablement efforts of Rockchip's flagship RK3588 SoC.
However, before we discuss these contributions, let's have a quick overview of what are the other important changes that this release has on the radar. As usual, LWN.net gathered a complete list of new features and different changes, which you can find here and here.
One of the most exciting features is that it finally added support for Bcachefs, which has been in development for nearly ten years now and is still somehow in an experimental phase, even though it has been marked as "stable" since 2002. It's a file system based on the Bcache (block cache) which has been in the kernel for some time. Bcachefs has been in peer review since 2019, and it's a good example of the fact that features get into mainline Linux when they are ready. Some early benchmarks can be found here however they place Bcachefs very low in performance compared to any other file system available today.
On core changes, the new FUTEX2 syscalls have been merged, and also there are noticeable changes to Rust bindings, BPF exceptions, and additions to io_uring new operations. Kernel Samepage Merging (KSM) has a new smartscan that is now enabled by default and tracks pages that were unsuccessfully merged to avoid rescanning them too often in the future.
For desktop Linux users with recent NVIDIA GPUs, Nouveau support for the GSP firmware has been merged. With this final piece, NVIDIA's newer Ada (RTX 4000-series) GPUs now work with Nouveau. For Turing (RTX 2000-series and GTX 1650) and later GPUs, enabling the GSP firmware fixes Nouveau's long-standing power management issues by enabling NVIDIA's firmware power management, allowing the GPU to run at full clock and memory frequencies with proper fan control.
There are plenty of hardware updates all over, including architecture: RISC-V, LoongArch and networking, security, new hardware support for new devices like USB controllers, sensors, pin controllers, and many more.
As mentioned, Collabora's kernel team contributed a number of important patches for this Kernel release, so let's take a look at some of these contributions:
Muhammad Usama Anjum added PAGE_SCAN IOCTL which provides a generic IOCTL to read and optionally reset some page flags with in-kernel filtering. The page flags are read to find the status of the pages. This IOCTL not only helps in detecting memory writes to translate GetWriteWatch() and ResetWriteWatch() Windows APIs on Linux, but also several other pieces of software like CRIU that can find the status of the flags way efficiently by replacing ancient soft-dirty mechanisms.
In this release we continued to improve the support for MediaTek SoCs that are present in Chromebooks: Nicolas Prado added support for newer revisions of the Spherion Chromebook which uses a different audio codec chip, while AngeloGioacchino del Regno restructured the MediaTek Display Gamma driver, along with adding support for newer Gamma hardware blocks, which can be found on many newer MediaTek SoCs, such as the Kompanio 1200/1380T, Dimensity 1100/1200, Dimensity 8000 series and others. As well as enabling the Embedded DisplayPort internal screen on the MT8195 Acer Chromebook Spin 513, he also added support for the MT6795 Helio X10 SoC's display hardware blocks, including DisplayPort and DSI outputs, and therefore enabled the Sony Xperia M5's display output as a consequence. As of now, while all MediaTek Smartphone SoCs still require battery charging and modem drivers, the MediaTek Kompanio Chromebooks based on the MT8192 SoC are missing support for the external display output. Still, the ones based on the MT8195 SoC are finally featureful and fully usable out of the box on the vanilla mainline kernel v6.7.
Additionally, in order to fix a longstanding issue on all MediaTek SoCs, where the Global Command Engine (GCE) Hardware could not send all events to the kernel, he implemented Runtime Power Management support in the CMDQ Mailbox driver to stabilize (and, in some cases, to reduce) frame latency, which in turn generally enhances the user experience.
As a final note, Angelo has also upstreamed an important fix for an issue that prevented the kernel from successfully entering system suspend on the MediaTek MT8195 and MT8395 SoCs due to a missing clock in the Video Encoder power domain. This prevented the IOMMU driver from setting the "sleep" bit in the Video Encoder IOMMU and therefore waking up the system immediately after entering suspend.
Eugen Hristev fixed a problem with the MT8186 SoC that caused wrong power on/power off sequences for power domains, causing cascading failures on different power domains. For example, the display power domain was not working at all anymore at boot time after a few power off/power on sequences.
Work on the RK3588 continued. In this cycle we added support for one of the three USB3 host controllers. The other two depend on a new PHY driver that still needs to be upstreamed. Unfortunately this work has not yet been enabled for any boards, but it is expected to happen in the next release. Apart from that, we enabled PCIe support for the EVB1 and the Rock 5B, which finally brings working Ethernet support to it! Also, the AV1 decoder work has been finished, so all RK3588(s) boards should be able to do this efficiently in hardware. Last but not least, the status LED of the Rock 5B has been enabled.
Cristian Ciocaltea improved the existing support for the CS35L41 smart boosted audio amplifier, which is used as part of the AMD Van Gogh sound machine driver to power the speakers on Valve's Steam Deck. In addition to various runtime power management fixes, the submitted patch series addresses a shared boost activation issue, required to get functional speaker protection capability.
We had Adrián Larumbe working on adding fdinfo support to Panfrost. On DRM/CI, Helen Koike worked on several adjustments and fixes; now, developers can easily execute IGT tests on Gitlab freedesktop to verify their code.
Muhammad Usama Anjum added several test cases for PAGEMAP_SCAN IOCTL and made misc fixes in other kselftests. Nicolas Prado introduced a new kselftest to verify the successful probe of the devices described in the Devicetree. For more information on that, see this blog post.
Adrián Larumbe (8):
AngeloGioacchino DEl Regno (33):
Benjamin Gaignard (3):
Cristian Ciocaltea (11):
Daniel Stone (2):
David Heidelberg (5):
Dmitry Osipenko (1):
Eugen Hristev (6):
Frédéric Danis (1):
Helen Koike (11):
Muhammad Usama Anjum (13):
Nícolas F. R. A. Prado (11):
Ricardo Cañuelo (1):
Sebastian Reichel (14):
Vignesh Raman (1):
AngeloGioacchino DEl Regno (7):
Dmitry Osipenko (1):
Sebastian Reichel (89):
AngeloGioacchino DEl Regno (11):
Muhammad Usama Anjum (1):
Nícolas F. R. A. Prado (1):
Andrzej Pietrasiewicz (1):
AngeloGioacchino DEl Regno (146):
AngeloGioacchino Del Regno (1):
Benjamin Gaignard (1):
Boris Brezillon (5):
Christopher Obbard (3):
David Heidelberg (9):
Dmitry Osipenko (6):
Eugen Hristev (1):
Faith Ekstrand (2):
Faith Ekstrand (1):
Helen Koike (3):
Muhammad Usama Anjum (1):
Nicolas Dufresne (4):
Nícolas F. R. A. Prado (5):
Sebastian Reichel (28):
Boris Brezillon (1):
Eugen Hristev (1):
Helen Koike (5):
Pekka Paalanen (3):
AngeloGioacchino DEl Regno (21):
Christopher Obbard (3):
Eugen Hristev (1):
Helen Koike (3):
Julien Massot (13):
Laura Nao (1):
Nícolas F. R. A. Prado (1):
Vignesh Raman (1):
AngeloGioacchino DEl Regno (1):
Boris Brezillon (1):
Nicolas Dufresne (1):
20/12/2024
The Rockchip RK3588 upstream support has progressed a lot over the last few years. As 2024 comes to a close, it is a great time to have…
09/12/2024
Collabora will be at NeurIPs this week to dive into the latest academic findings in machine learning and research advancements that are…
05/12/2024
Now based on Debian Bookworm, Apertis is a collaborative OS platform that includes an operating system, but also tools and cloud services…
Comments (0)
Add a Comment