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.