Go to file
uran0sH 8efaa64ca3 vsock: make TX buffer size configurable
That buffer is used to store bytes coming from the guest before
sending them to the Unix domain socket. Some use cases might want
to increase or decrease this space, so it would be best to make it
user-customizable. Users can use "--tx-buffer-size=" to configure
TX buffer.

Fixes: #319

Signed-off-by: uran0sH <huangwenyuu@outlook.com>
2023-05-04 12:16:12 +05:30
.cargo Ignore advisory: RUSTSEC-2021-0145 2022-11-30 12:01:14 +05:30
.github dependabot: Allow updating dependencies 2021-09-06 12:54:53 +05:30
crates vsock: make TX buffer size configurable 2023-05-04 12:16:12 +05:30
rust-vmm-ci@8627b3766b build(deps): bump rust-vmm-ci from 3640704 to 8627b37 2023-04-17 12:37:48 +05:30
.gitignore Add .gitignore 2021-08-19 09:52:14 +03:00
.gitmodules Initial commit 2021-05-26 10:18:40 +03:00
Cargo.lock build(deps): bump rustix from 0.36.12 to 0.36.13 2023-05-04 11:59:22 +05:30
Cargo.toml Move all crates in crates directory 2022-10-13 16:28:11 +05:30
CODEOWNERS CODEOWNERS: add stefano-garzarella 2022-10-13 09:41:24 +02:00
coverage_config_x86_64.json gpio: Migrate to the upstream version of libgpiod 2023-02-15 08:09:13 -07:00
LICENSE-APACHE Initial commit 2021-05-26 10:18:40 +03:00
LICENSE-BSD-3-Clause Add BSD-3-Clause license for the crates 2022-10-27 11:19:40 -06:00
README.md gpio: Migrate to the upstream version of libgpiod 2023-02-15 08:09:13 -07:00

vhost-device

Design

This repository hosts various 'vhost-user' device backends in their own crates. See their individual README.md files for specific information about those crates.

Here is the list of device backends that we support:

Testing and Code Coverage

Like the wider rust-vmm project we expect new features to come with comprehensive code coverage. However as a multi-binary repository there are cases where avoiding a drop in coverage can be hard and an exception to the approach is allowable. These are:

  • adding a new binary target (aim at least 60% overall coverage)
  • expanding the main function (a small drop is acceptable)

However any new feature added to an existing binary should not cause a drop in coverage. The general aim should be to always improve coverage.

Separation of Concerns

The binaries built by this repository can be run with any VMM which can act as a vhost-user frontend. Typically they have been tested with QEMU although the rust-vmm project does provide a vhost-user frontend crate for rust based VMMs.

While it's possible to implement all parts of the backend inside the vhost-device workspace consideration should be given to separating the VirtQueue handling and response logic to a crate in vm-virtio devices. This way a monolithic rust-vmm VMM implementation can reuse the core logic to service the virtio requests directly in the application.

Build dependency

The GPIO crate needs a local installation of libgpiod library to be available, which can be done like:

$ git clone --depth 1 --branch v2.0-rc1 https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/ $ cd libgpiod $ ./autogen.sh && make

Either you can do a 'make install' now on your system, or provide path to the locally build library like this while building vhost-device crates:

$ RUSTFLAGS='-L /home//libgpiod/lib/.libs/' cargo build --release