QEMU Google Summer of Code 2026 project report
QEMU participated in Google Summer of Code 2026 with 4 contributors working on open source internships from May through August. The contributors gained experience in open source software development working on 12-week projects.
This post covers the GSoC projects that QEMU had this summer.
Fast Snapshot Load in QEMU (Aadeshveer Singh)
When virtual machine snapshots are loaded by QEMU, the entire contents of RAM and all device state is loaded before the virtual machine can start executing. A lazy approach is actually possible where the contents of RAM are loaded on-demand when accessed by the virtual machine. This can significantly speed up snapshot load times since virtual machines may have a large amount of RAM and loading it upfront takes time.
Aadeshveer implemented fast snapshot load by taking advantage of QEMU’s postcopy migration infrastructure, which monitors RAM accesses using Linux userfaultfd(2) so that memory pages can be populated on-demand. A thread is introduced to load RAM in the background while the virtual machine is already running so that on-demand loading is minimized (it affects virtual machine performance). Testing showed that fast snapshot load indeed provides a major speed up.
Aadeshveer has written up a project report as well as a detailed journal if you would like to learn more. This project was mentored by Peter Xu.
Support x86 Process Context Identifiers (PCID) in COCONUT-SVSM (Tanish Desai)
Process Context Identifiers are an x86 CPU feature that improves context switching performance. Without PCID, software has to flush the Translation Lookaside Buffer (TLB) when context switching so that memory translations that are no longer relevant in the new context are no longer used. PCID allows translations from multiple address spaces (contexts) to exist in the TLB and this can help if they are needed again in the near future.
Tanish implemented PCID support in COCONUT-SVSM, software used by confidential virtual machines. This involved:
- Creating a Rust crate for x86 CPUID feature descriptors so that PCID functionality can be detected.
- Adding a PCID to each address space, including writing a bitmap allocator for the available 4,096 PCIDs.
Tanish described this in more detail here. This project was mentored by Luigi Leonardi and Jörg Rödel.
Observability Support for COCONUT-SVSM (Nicola Ramacciotti)
Troubleshooting confidential virtual machines can be challenging because the host is untrusted and does not have visibility into logs, traces, etc from inside the virtual machine. Instead, an operating system running inside the confidential virtual machine could extract logs and the new Observability and Configuration Protocol (OCP) has been defined for this purpose.
Nicola implemented OCP in COCONUT-SVSM, creating the interface that software inside the guest can use to read logs. A Linux device driver was also implemented together with a userspace utility called svsm-tools that exposes OCP functionality to list, read, and write data.
Nicola published a project report that goes into detail here. This project was mentored by Stefano Garzarella, Gerd Hoffmann, and Jörg Rödel.
USB Device Redirection for qemu-rdp (uchouT)
qemu-rdp provides Remote Desktop Protocol functionality via QEMU’s org.qemu.Display1 D-Bus interface so that the display, keyboard, mouse, and other devices can be forwarded from a client to a virtual machine. USB redirection is a missing feature that would allow USB devices to be plugged in on the client and attached remotely to the virtual machine.
uchouT implemented support for QEMU’s -device usb-redir in qemu-rdp and
integrated with the RDP protocol’s URBDRC feature for tunneling USB traffic. In
the course of doing this, uchouT also contributed to the IronRDP Rust
implementation of RDP (qemu-rdp is built on top of it) and FreeRDP (an RDP
client).
uchouT covered this project in detail here. This project was mentored by Marc-André Lureau.
Conclusion
Google Summer of Code brings together talented contributors who would like to participate in open source with mentors from established open source projects. Thanks to Google’s funding, our contributors were able to dedicate their time this summer to implementing these features for QEMU and its ecosystem. We hope to continue to see Aadeshveer, Tanish, Nicola, and uchouT in the open source community.
If you are interested in applying to future rounds of Google Summer of Code, keep an eye on the GSoC website for announcements and timelines.
QEMU version 11.1.0 released
We’d like to announce the availability of the QEMU 11.1.0 release. This release contains 3200+ commits from 285 authors.
Read MoreQEMU version 11.0.0 released
We’d like to announce the availability of the QEMU 11.0.0 release. This release contains 2500+ commits from 237 authors.
Read MoreAnnouncing QEMU Google Summer of Code 2026 internships
QEMU is participating in Google Summer of Code once again! Google Summer of Code is an open source internship program with internships running May through August. Would you like to experience contributing to an open source project? This paid remote work internship opportunity is a great way to get involved!
Read More