Port virtio media simple device as a vhost user media device.#1895
Port virtio media simple device as a vhost user media device.#1895ser-io wants to merge 1 commit intogoogle:mainfrom
Conversation
Why are you copying this code here instead of depending on it? Would it be possible to contribute changes upstream and only implement the cuttlefish-specific changes here? |
base/cvd/cuttlefish/host/commands/vhost_user_media/simple_device/Cargo.toml
Show resolved
Hide resolved
base/cvd/cuttlefish/host/commands/vhost_user_media/simple_device/src/simple_device.rs
Outdated
Show resolved
Hide resolved
d42f8bd to
db5b139
Compare
Removed the copy depending on the upstream implementation. |
833efed to
fadcf29
Compare
| serde = { version = "1.0", features = ["derive"] } | ||
| serde_json = "1" | ||
|
|
||
| [patch.crates-io] |
There was a problem hiding this comment.
I'll remove this once rust-vmm/vhost/pull/339 is merged in.
fadcf29 to
8b2a123
Compare
8b2a123 to
774f02d
Compare
base/cvd/cuttlefish/host/commands/vhost_user_media/simple_device/src/main.rs
Outdated
Show resolved
Hide resolved
Databean
left a comment
There was a problem hiding this comment.
Some of the comments apply in multiple places, like reducing map_err usage in favor of automatic conversion with From.
base/cvd/cuttlefish/host/commands/vhost_user_media/vhu_media/src/lib.rs
Outdated
Show resolved
Hide resolved
base/cvd/cuttlefish/host/commands/vhost_user_media/vhu_media/src/lib.rs
Outdated
Show resolved
Hide resolved
base/cvd/cuttlefish/host/commands/vhost_user_media/vhu_media/src/lib.rs
Outdated
Show resolved
Hide resolved
base/cvd/cuttlefish/host/commands/vhost_user_media/vhu_media/src/lib.rs
Outdated
Show resolved
Hide resolved
base/cvd/cuttlefish/host/commands/vhost_user_media/vhu_media/src/lib.rs
Outdated
Show resolved
Hide resolved
base/cvd/cuttlefish/host/commands/vhost_user_media/vhu_media/src/lib.rs
Outdated
Show resolved
Hide resolved
base/cvd/cuttlefish/host/commands/vhost_user_media/vhu_media/src/lib.rs
Outdated
Show resolved
Hide resolved
base/cvd/cuttlefish/host/commands/vhost_user_media/vhu_media/src/lib.rs
Outdated
Show resolved
Hide resolved
| use vhost::vhost_user::message::VhostUserProtocolFeatures; | ||
| use vhost::vhost_user::message::VhostUserShMemConfig; | ||
| use vhost::vhost_user::message::VhostUserVirtioFeatures; | ||
| use vhost_user_backend::{VhostUserBackendMut, VringRwLock, VringT}; |
There was a problem hiding this comment.
What do you think of using the combined use x::{y, z} syntax more?
It supports multiple levels of nesting, e.g.
use std::{collections::HashMap, convert, io, os::{fd::BorrowedFd, unix::io::AsRawFd}};
...
use log::{error, info};
...It's even possible to combine everything into a single use statement:
use {
std::collection::HashMap,
...
libc::{_SC_PAGESIZE, sysconf},
log::{error, info},
};The style guide also has some opinions, though they don't seem like strict rules.
There was a problem hiding this comment.
Done.
Preferred using multiple imports rather than a multi-line import and avoided modules within brackets as it makes it complicated to trace back the full import path for a given element.
base/cvd/cuttlefish/host/commands/vhost_user_media/vhu_media/src/lib.rs
Outdated
Show resolved
Hide resolved
57c10a8 to
cdc74cb
Compare
Run the device. ``` RUST_LOG=trace cargo run --bin simple_device -- --socket-path /tmp/simple_device.sock or RUST_LOG=trace bazel run simple_device:simple_device -- --socket-path /tmp/simple_device.sock ``` Run the VM. ``` cargo run -- --log-level=debug run --cpus 4 --mem 4096 \ --rwdisk /path/to/debian-12.img \ --params "root=/dev/vda1" \ --vhost-user media,socket=/tmp/simple_device.sock \ /path/to/bzImage v4l2-compliance -d0 -s ``` Bug: 445229097
cdc74cb to
61f4245
Compare
Port virtio media reference device
simple_deviceas a vhost user implementation.First iteration of
simple_device/src/simple_device.rsis the same as in virtio-media upstream https://github.com/chromeos/virtio-media/blob/main/device/src/devices/simple_device.rs.Bug: 445229097