mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-06 02:25:23 +00:00
Since we're using vmm_vhost only for vhost-user, we can delete vmm_vhost's vhost-kern/vhost-vsock parts. Note that we own vhost crate, which vmm_vhost was copied from. BUG=b:206900656 TEST=cargo test --all-features in vmm_vhost Change-Id: I622fbb856fb99fc2cb078d79f79491fa35ede8e3 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3295217 Tested-by: kokoro <noreply+kokoro@google.com> Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Reviewed-by: Chirantan Ekbote <chirantan@chromium.org>
17 lines
929 B
Markdown
17 lines
929 B
Markdown
# vHost
|
|
|
|
A pure rust library for vhost-user. This is a fork of [rust-vmm/vhost](https://github.com/rust-vmm/vhost).
|
|
|
|
![vhost Architecture](/docs/vhost_architecture.png)
|
|
|
|
The [vhost-user protocol](https://qemu.readthedocs.io/en/latest/interop/vhost-user.html#communication) aims to implement vhost backend drivers in
|
|
userspace, which complements the ioctl interface used to control the vhost
|
|
implementation in the Linux kernel. It implements the control plane needed
|
|
to establish virtqueue sharing with a user space process on the same host.
|
|
It uses communication over a Unix domain socket to share file descriptors in
|
|
the ancillary data of the message.
|
|
|
|
The protocol defines two sides of the communication, master and slave.
|
|
Master is the application that shares its virtqueues, slave is the consumer
|
|
of the virtqueues. Master and slave can be either a client (i.e. connecting)
|
|
or server (listening) in the socket communication.
|