Re: [RFC] hypercall-vsock: add a new vsock transport

From: Stefano Garzarella
Date: Wed Nov 10 2021 - 06:17:27 EST


On Wed, Nov 10, 2021 at 07:12:36AM +0000, Wang, Wei W wrote:
Hi,

We plan to add a new vsock transport based on hypercall (e.g. vmcall on Intel CPUs).
It transports AF_VSOCK packets between the guest and host, which is similar to
virtio-vsock, vmci-vsock and hyperv-vsock.

Compared to the above listed vsock transports which are designed for high performance,
the main advantages of hypercall-vsock are:

1) It is VMM agnostic. For example, one guest working on hypercall-vsock can run on

either KVM, Hyperv, or VMware.

2) It is simpler. It doesn't rely on any complex bus enumeration

(e.g. virtio-pci based vsock device may need the whole implementation of PCI).

An example usage is the communication between MigTD and host (Page 8 at
https://static.sched.com/hosted_files/kvmforum2021/ef/TDX%20Live%20Migration_Wei%20Wang.pdf).
MigTD communicates to host to assist the migration of the target (user) TD.
MigTD is part of the TCB, so its implementation is expected to be as simple as possible
(e.g. bare mental implementation without OS, no PCI driver support).

Adding Andra and Sergio, because IIRC Firecracker and libkrun emulates virtio-vsock with virtio-mmio so the implementation should be simple and also not directly tied to a specific VMM.

Maybe this fit for your use case too, in this way we don't have to maintain another driver.

Thanks,
Stefano