mirror of
https://github.com/rust-vmm/vhost-device.git
synced 2026-01-14 11:47:56 +00:00
Bumps the vhost-device group with 22 updates in the / directory: | Package | From | To | | --- | --- | --- | | [clap](https://github.com/clap-rs/clap) | `4.5.19` | `4.5.20` | | [libc](https://github.com/rust-lang/libc) | `0.2.159` | `0.2.161` | | [thiserror](https://github.com/dtolnay/thiserror) | `1.0.64` | `1.0.67` | | [vhost](https://github.com/rust-vmm/vhost) | `0.12.0` | `0.13.0` | | [vhost-user-backend](https://github.com/rust-vmm/vhost) | `0.16.0` | `0.17.0` | | [virtio-queue](https://github.com/rust-vmm/vm-virtio) | `0.13.0` | `0.14.0` | | [vm-memory](https://github.com/rust-vmm/vm-memory) | `0.15.0` | `0.16.0` | | [virtio-vsock](https://github.com/rust-vmm/vm-virtio) | `0.7.0` | `0.8.0` | | [serde](https://github.com/serde-rs/serde) | `1.0.210` | `1.0.214` | | [anstream](https://github.com/rust-cli/anstyle) | `0.6.15` | `0.6.17` | | [anstyle](https://github.com/rust-cli/anstyle) | `1.0.8` | `1.0.10` | | [anstyle-parse](https://github.com/rust-cli/anstyle) | `0.2.5` | `0.2.6` | | [anstyle-query](https://github.com/rust-cli/anstyle) | `1.1.1` | `1.1.2` | | [anyhow](https://github.com/dtolnay/anyhow) | `1.0.89` | `1.0.92` | | [bytemuck](https://github.com/Lokathor/bytemuck) | `1.18.0` | `1.19.0` | | [cc](https://github.com/rust-lang/cc-rs) | `1.1.28` | `1.1.34` | | [colorchoice](https://github.com/rust-cli/anstyle) | `1.0.2` | `1.0.3` | | [pin-project-lite](https://github.com/taiki-e/pin-project-lite) | `0.2.14` | `0.2.15` | | [proc-macro2](https://github.com/dtolnay/proc-macro2) | `1.0.86` | `1.0.89` | | [regex](https://github.com/rust-lang/regex) | `1.11.0` | `1.11.1` | | [rustix](https://github.com/bytecodealliance/rustix) | `0.38.37` | `0.38.38` | | [uuid](https://github.com/uuid-rs/uuid) | `1.10.0` | `1.11.0` | Updates `clap` from 4.5.19 to 4.5.20 - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.19...clap_complete-v4.5.20) Updates `libc` from 0.2.159 to 0.2.161 - [Release notes](https://github.com/rust-lang/libc/releases) - [Changelog](https://github.com/rust-lang/libc/blob/0.2.161/CHANGELOG.md) - [Commits](https://github.com/rust-lang/libc/compare/0.2.159...0.2.161) Updates `thiserror` from 1.0.64 to 1.0.67 - [Release notes](https://github.com/dtolnay/thiserror/releases) - [Commits](https://github.com/dtolnay/thiserror/compare/1.0.64...1.0.67) Updates `vhost` from 0.12.0 to 0.13.0 - [Release notes](https://github.com/rust-vmm/vhost/releases) - [Commits](https://github.com/rust-vmm/vhost/compare/vhost-v0.12.0...vhost-v0.13.0) Updates `vhost-user-backend` from 0.16.0 to 0.17.0 - [Release notes](https://github.com/rust-vmm/vhost/releases) - [Commits](https://github.com/rust-vmm/vhost/compare/vhost-user-backend-v0.16.0...vhost-user-backend-v0.17.0) Updates `virtio-bindings` from 0.2.3 to 0.2.4 - [Release notes](https://github.com/rust-vmm/vm-virtio/releases) - [Commits](https://github.com/rust-vmm/vm-virtio/compare/virtio-bindings-v0.2.3...virtio-bindings-v0.2.4) Updates `virtio-queue` from 0.13.0 to 0.14.0 - [Release notes](https://github.com/rust-vmm/vm-virtio/releases) - [Commits](https://github.com/rust-vmm/vm-virtio/compare/virtio-queue-v0.13.0...virtio-queue-v0.14.0) Updates `vm-memory` from 0.15.0 to 0.16.0 - [Release notes](https://github.com/rust-vmm/vm-memory/releases) - [Changelog](https://github.com/rust-vmm/vm-memory/blob/main/CHANGELOG.md) - [Commits](https://github.com/rust-vmm/vm-memory/compare/v0.15.0...v0.16.0) Updates `virtio-vsock` from 0.7.0 to 0.8.0 - [Release notes](https://github.com/rust-vmm/vm-virtio/releases) - [Commits](https://github.com/rust-vmm/vm-virtio/compare/virtio-vsock-v0.7.0...virtio-vsock-v0.8.0) Updates `serde` from 1.0.210 to 1.0.214 - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.210...v1.0.214) Updates `anstream` from 0.6.15 to 0.6.17 - [Commits](https://github.com/rust-cli/anstyle/compare/anstream-v0.6.15...anstream-v0.6.17) Updates `anstyle` from 1.0.8 to 1.0.10 - [Commits](https://github.com/rust-cli/anstyle/compare/v1.0.8...v1.0.10) Updates `anstyle-parse` from 0.2.5 to 0.2.6 - [Commits](https://github.com/rust-cli/anstyle/compare/anstyle-parse-v0.2.5...anstyle-parse-v0.2.6) Updates `anstyle-query` from 1.1.1 to 1.1.2 - [Commits](https://github.com/rust-cli/anstyle/compare/anstyle-query-v1.1.1...anstyle-query-v1.1.2) Updates `anstyle-wincon` from 3.0.4 to 3.0.6 - [Commits](https://github.com/rust-cli/anstyle/compare/anstyle-wincon-v3.0.4...anstyle-wincon-v3.0.6) Updates `anyhow` from 1.0.89 to 1.0.92 - [Release notes](https://github.com/dtolnay/anyhow/releases) - [Commits](https://github.com/dtolnay/anyhow/compare/1.0.89...1.0.92) Updates `bytemuck` from 1.18.0 to 1.19.0 - [Changelog](https://github.com/Lokathor/bytemuck/blob/main/changelog.md) - [Commits](https://github.com/Lokathor/bytemuck/compare/v1.18.0...v1.19.0) Updates `cc` from 1.1.28 to 1.1.34 - [Release notes](https://github.com/rust-lang/cc-rs/releases) - [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md) - [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.1.28...cc-v1.1.34) Updates `clap_builder` from 4.5.19 to 4.5.20 - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.5.19...v4.5.20) Updates `colorchoice` from 1.0.2 to 1.0.3 - [Commits](https://github.com/rust-cli/anstyle/compare/colorchoice-v1.0.2...colorchoice-v1.0.3) Updates `pin-project-lite` from 0.2.14 to 0.2.15 - [Release notes](https://github.com/taiki-e/pin-project-lite/releases) - [Changelog](https://github.com/taiki-e/pin-project-lite/blob/main/CHANGELOG.md) - [Commits](https://github.com/taiki-e/pin-project-lite/compare/v0.2.14...v0.2.15) Updates `proc-macro2` from 1.0.86 to 1.0.89 - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.86...1.0.89) Updates `regex` from 1.11.0 to 1.11.1 - [Release notes](https://github.com/rust-lang/regex/releases) - [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/regex/compare/1.11.0...1.11.1) Updates `rustix` from 0.38.37 to 0.38.38 - [Release notes](https://github.com/bytecodealliance/rustix/releases) - [Changelog](https://github.com/bytecodealliance/rustix/blob/main/CHANGELOG.md) - [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.37...v0.38.38) Updates `serde_derive` from 1.0.210 to 1.0.214 - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.210...v1.0.214) Updates `thiserror-impl` from 1.0.64 to 1.0.67 - [Release notes](https://github.com/dtolnay/thiserror/releases) - [Commits](https://github.com/dtolnay/thiserror/compare/1.0.64...1.0.67) Updates `uuid` from 1.10.0 to 1.11.0 - [Release notes](https://github.com/uuid-rs/uuid/releases) - [Commits](https://github.com/uuid-rs/uuid/compare/1.10.0...1.11.0) Updates `uuid-macro-internal` from 1.10.0 to 1.11.0 - [Release notes](https://github.com/uuid-rs/uuid/releases) - [Commits](https://github.com/uuid-rs/uuid/compare/1.10.0...1.11.0) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: libc dependency-type: direct:production update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: thiserror dependency-type: direct:production update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: vhost dependency-type: direct:production update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: vhost-user-backend dependency-type: direct:production update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: virtio-bindings dependency-type: direct:production update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: virtio-queue dependency-type: direct:production update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: vm-memory dependency-type: direct:production update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: virtio-vsock dependency-type: direct:production update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: anstream dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: anstyle dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: anstyle-parse dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: anstyle-query dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: anstyle-wincon dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: anyhow dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: bytemuck dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: cc dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: clap_builder dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: colorchoice dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: pin-project-lite dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: proc-macro2 dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: regex dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: rustix dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: serde_derive dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: thiserror-impl dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: uuid dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: uuid-macro-internal dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|---|---|---|
| .. | ||
| src | ||
| test | ||
| ARCHITECTURE.md | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| LICENSE-APACHE | ||
| LICENSE-BSD-3-Clause | ||
| README.md | ||
vhost-device-scsi
This is a Rust implementation of a vhost-device-scsi daemon.
Usage
Run the vhost-device-scsi daemon:
vhost-device-scsi -r --socket-path /tmp/vhost-user-scsi.sock /path/to/image.raw /path/to/second-image.raw ...
Run QEMU:
qemu-system-x86_64 ... \
-device vhost-user-scsi-pci,num_queues=1,param_change=off,chardev=vus \
-chardev socket,id=vus,path=/tmp/vhost-user-scsi.sock \
# must match total guest meory
-object memory-backend-memfd,id=mem,size=384M,share=on \
-numa node,memdev=mem
Limitations
We are currently only supporting a single request queue and do not support dynamic reconfiguration of LUN parameters (VIRTIO_SCSI_F_CHANGE).
Features
This crate is a work-in-progress. Currently, it's possible to mount and read up to 256 read-only raw disk images. Some features we might like to add at some point, roughly ordered from sooner to later:
- Write support. This should just be a matter of implementing the WRITE command, but there's a bit of complexity around writeback caching we need to make sure we get right.
- Support more LUNs. virtio-scsi supports up to 16384 LUNs per target. After 256, the LUN encoding format is different; it's nothing too complicated, but I haven't gotten around to implementing it.
- Concurrency. Currently, we process SCSI commands one at a time. Eventually, it'd be a good idea to use threads or some fancy async/io_uring stuff to concurrently handle multiple commands. virtio-scsi also allows for multiple request queues, allowing the guest to submit requests from multiple cores in parallel; we should support that.
- iSCSI passthrough. This shouldn't be too bad, but it might be a good idea to decide on a concurrency model (threads or async) before we spend too much time here.