qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Call for GSoC/Outreachy internship project ideas


From: Eugenio Perez Martin
Subject: Re: Call for GSoC/Outreachy internship project ideas
Date: Mon, 29 Jan 2024 19:53:02 +0100

On Mon, Jan 15, 2024 at 5:33 PM Stefan Hajnoczi <stefanha@gmail.com> wrote:
>
> Dear QEMU and KVM communities,
> QEMU will apply for the Google Summer of Code and Outreachy internship
> programs again this year. Regular contributors can submit project
> ideas that they'd like to mentor by replying to this email before
> January 30th.
>


=== Add packed virtqueue to Shadow Virtqueue ===
Summary: Add the packed virtqueue format support to QEMU's Shadow Virtqueue.

To perform a virtual machine live migration with an external device to
qemu, qemu needs a way to know which memory the device modifies so it
is able to resend it. Otherwise the guest would resume with invalid /
outdated memory in the destination.

This is especially hard with passthrough hardware devices, as
transports like PCI imposes a few security and performance challenges.
As a method to overcome this for virtio devices, qemu can offer an
emulated virtqueue to the device, called Shadow Virtqueue (SVQ),
instead of allowing the device to communicate directly with the guest.
SVQ will then forward the writes to the guest, being the effective
writer in the guest memory and knowing when a portion of it needs to
be resent.

Compared with original Split Virtqueues, already supported by Shadow
Virtqueue, Packed virtqueue is a more compact representation that uses
less memory size and allows both devices and drivers to exchange the
same amount of information with less memory operations.

The task is to complete the packed virtqueue support for SVQ, using
the kernel virtio ring driver as a reference. There is already a setup
that can be used to test the changes.

Links:
* 
https://www.redhat.com/en/blog/virtio-devices-and-drivers-overview-headjack-and-phone
* https://www.redhat.com/en/blog/virtqueues-and-virtio-ring-how-data-travels
* https://www.redhat.com/en/blog/packed-virtqueue-how-reduce-overhead-virtio
* https://www.youtube.com/watch?v=x9ARoNVzS04

Details:
* Skill level: Intermediate
* Language: C




reply via email to

[Prev in Thread] Current Thread [Next in Thread]