[Rust-VMM] [RFC, WIP] rust implementation of ghost-user protocol
liuj97 at gmail.com
Mon Feb 4 15:26:46 UTC 2019
> On Feb 4, 2019, at 6:55 PM, Marc-André Lureau <marcandre.lureau at gmail.com <mailto:marcandre.lureau at gmail.com>> wrote:
> On Fri, Jan 25, 2019 at 6:31 AM Liu Jiang <liuj97 at gmail.com <mailto:liuj97 at gmail.com>> wrote:
>> Hi all,
>> As we have discussed, community members have showed interests in rust implementation of the ghost-user protocol. It happens that we are working on implementing ghost-user protocol, but still in very early stage.
>> I think it would be better to share our work with community as early as possible so we could cooperate on the design and implementation.
>> The overall idea is to implement a rust crate for vhost-user protocol, and then extends the vhost driver in crosvm/firecracker to add a thin wrapper support both vhost (kernel) and vhost-user backends. The crate is in very early stage which only implements the skeleton and basic commands, so a long todo list:
>> 1) support dirty page log
>> 2) support live migration
>> 3) support IOMMU/IOTLB
>> 4) better documentation
>> 5) more unit test cases
>> I have hosted the crate at my personal GitHub repository at https://github.com/jiangliu/vhostuser_rs <https://github.com/jiangliu/vhostuser_rs> and hope it could be hosted by the rust-vmm project eventually.
>> Any comments, suggestions and PRs are welcomed!
> I had a quick look. Nice work Liu, it looks like a very good start! I
> hope I can start using & contributing to it soon.
> Is there any user of the crate? In particular, do you have code to
> manipulate the virtio rings?
Glad to know it’s useful and look forward to cooperate on the vhost-user cate.
I’m trying to enable support of vhost-user in firecracker, but there are still some enhancements to firecracker needed. So I plan to do it in steps:
1) enhance firecracker to support memfd/hugetlbfs based guest memory. Please refer to https://github.com/firecracker-microvm/firecracker/pull/914 <https://github.com/firecracker-microvm/firecracker/pull/914> for detail.
2) implement a simple net or blk driver to verify vhost-user crate basic functionality.
3) use dpdk-ovs as net backend. Once it works, it should work with most dpdk/spdk based backend, and the vhost-user crate should be mature enough then.
Any suggestions on cooperation are welcomed!
> Marc-André Lureau
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Rust-vmm