We can arrange external supervision for theses and projects related to specific industrial-driven products. In this respect we cooperate with companies such as JetBrains, IBM, Oracle, RedHat, SUSE or SysGo.

These kind of projects are sometimes initiated by the students (e.g. by having a part time job) and sometimes by our industrial partners. We can help you with some of the formal requirements but we expect that in the end students will bring their topics.

Project ideas

Please, take the list below as an overview of what is possible, not as an exhustive list: many of the projects are closed sourced and cannot be easily shared on our site.

Allow for processes to exit in parallel (SUSE)

Mostly to handle very large address space tear down.

API call for cheap free userspace allocator (SUSE)

Design an API and implementation for userspace allocator with cheap free (ideally MADV_FREE like) while still allowing to catch use after free bugs. The primary focus is on reducing overhead of page table manipulation.

Improve memory fragmentation for large block sizes by improving compaction (SUSE)

When using large block sizes for I/O, memory fragmentation increases, setting an effective upper limit on the block size we can support. With improved compaction, we should be able to reduce memory fragmentation and support even larger block sizes.

Memory compaction vs zswap (SUSE)

Memory compaction reduces fragmentation, thus making swap less likely. zswap compresses pages, thus making swap consuming less bandwidth. Both, however, do consume additional CPU, thereby increasing latency. It would be interesting to see how these methods compare against normal swap - does the increased latency outweigh the reduced bandwidth and how?

Network queue steering for NVMe-TCP (SUSE)

NVMe goes to great lengths to align I/O with the submitting CPU. That works great for submission, but for completion we’re at the mercy of the network card to do “something”. The idea is to implement receive flow steering to classify incoming network traffic to the correct queue and thus CPU.

NVMe scaling (SUSE)

NVMe scaling is always an exciting topic. We just had a report that things really do go down south beyond 4k drives, it would be interesting to see where the actual limits are (10k drives ? 100k drives ? who knows ?) …

Simulation of very large memory setup (SUSE)

The simulation would use CXL.mem (or CXL.cache) on QEMU.

systemd scalability (SUSE)

systemd is PID 1, that means it is a system-wide reaper and a single thread. There are certain operations that require O(n) time, although not in fast-paths, that may cause inconvenient latencies of some necessary tasks (daemon-reload). The goal is to identify non-scaling parts and improve their behavior.

Verifying the BPF verifier (SUSE)

The BPF verifier makes sure unsafe code does not make it into the kernel. But the verifier also needs to be verified. We want to use the CBMC checker to verify some internal functions of the BPF verifier, with integration into BPF tests and run on BPF CI.