R: [PATCH RFC v3 0/6] Add Rust virtio bindings and sample device

From: Matteo Giugni

Date: Mon Aug 17 2026 - 09:02:06 EST


> We are mentoring Matteo who is working on his Master thesis at University
> of Pisa. His main effort is to provide crates for virtio drivers (e.g. 
> virtqueue, driver-specific request/reply processing, etc.) that can be
> generic enough to be used in different OSes, providing the right
> abstraction.
> We pointed out to this series and he would like to collaborate.
> Matteo and others can add more on this of course :-)
> Feel free to continue in-list or off-list for sync.

Hello,

As Stefano said, our purpose is to provide generic OS-independent crates for virtio drivers.
To begin working on it, I started from the VirtIO framework introduced by this patchset and
extended it to support the virtio-rng driver, both to take confidence with the current
implementation and also having at disposal a simple driver for tests.
This means that I also had to add the HwRandom wrappers.

You can find the virtio_rng source code in the following repository:
https://github.com/matteogiugni/rust-virtio-rng-driver
You can find the HwRandom extension to this patchset in the following repository:
https://github.com/matteogiugni/linux/tree/virtio-base
at rust/kernel/HwRng.rs

I have recently seen that you implemented yourself the HwRandom wrapper, which followed
a different approach from mine, but did not have the time yet to study it.
I used the same pattern as in miscdevice.rs registration instead.

The framework was missing a few bindings for my driver and in particular the scan callback,
you can check the modifications in the commits.
The driver is a simple baseline that can be optimized and improved.

After the driver implementation I moved to the implementation of the generic Virtqueue crate.
I am currently working on it and i will be pushing the current work soon in this branch of the repository:
https://github.com/matteogiugni/linux/tree/rust-virtqueue
The aim is to make it work with Linux at least, with your implementation of the VirtIO framework
and then extract the OS-independent logic.

This is just a recap of what i am currently doing to get in sync with you, feel free to look at it and
ask whatever question you please or problem you see.

Kind Regards,
Matteo Giugni.