Hi all,
On 21.12.23 16:57, Norman Feske wrote:
Reflections of 2023
For me 2023 started out with optimizing Genode's GPU Session for our Intel GPU multiplexer. GPU clients, like Mesa, often make a lot of fine grained video memory allocations, which led to a very large number of capabilities required because each allocation led to the creation of a Buffer object in the multiplexer that needed to be mapped to the client. In order to improve the situation, I removed the Buffer concept from the GPU session and replaced it with the notion of Video RAM (VRAM). A Mesa client now allocates large chunks of video memory (16MB) and handles small allocation locally. This decreased capability usage by an order of magnitude. Additionally, I implemented support for GPU Resets (GPU versions GEN9 and GEN12), so the GPU can recover from hangs caused by malicious or buggy clients.
After that I took a deep dive into the Sailfish-OS SDK in order to use it for application development for Genode on the PinePhone. I learned a little QML and started implementing my own QML Plugin because the GUI part of the Sailfish SDK (Silicia) is not open source. While this effort eventually failed (we settled on Ubuntu Touch or Lomiri how it is called now) it proved to be a valuable experience later in the year.
Because we needed a SIP client for Voip on the PinePhone, Josef and myself ported the LinPhone SDK to Genode. Because the SDK uses CMake as a build system, we could take full advantage of our Goa tool, while adding some improvements there on the way. For the GUI part my previous Sailfish/Ubuntu UI experience came in handy, as we used Ubuntu Touch's "Linphone Simple" as a base on Genode which required Josef to write QML Plugins.
With our ongoing effort to port all legacy DDE-Linux drivers to our new approach, I took care of the USB client drivers (HID, network, and modem). Because the network driver and the LTE-modem driver (MBIM) are very similar I was able to merge them into one driver. The last remaining artifact now is our Linux based IP stack (lxip), which I am currently updating from Linux version 4.4.3 to 6.1.20. Because this port is so ancient, it is more like a complete re-write. We additionally intent to replace the vfs_lxip Plugin with a more generic one that handles lwip and lxip, so this effort might well continue into 2024.
I helped with the Goa Project where my expertise seemed fit and I really like the overall progress.
Plans for 2024
For this year I would like to finally get rid of all the legacy DDE-Linux projects. I would also like to update Mesa to the current version by using Goa. This requires Meson support in Goa, which might become my Hack'n'Hike project 2024.
Since I use an Alder Lake laptop now, 3D acceleration and proper audio driver support would be a nice to have for me personally. If there is spare time, I want to have a look into audio re-sampling, since this becomes an increasingly pressing matter.
Looks like it is going to be an interesting year for Genode,
Sebastian