Commit Graph

1172 Commits

Author SHA1 Message Date
Stefano Garzarella
83e2f3f506 buildkite: add main-tests.json
`vhost-device-gpu` has dependencies that do not work well on musl.
Also `vhost-device-gpio` has the same problem, but we merged
workarounds.

Instead of continuing to make hacks to compile empty main for these
applications. Better to have our own pipeline also for the main
workspace. In that way we can easily exclude applications (e.g. that
do not support musl) as discussed in
  https://github.com/rust-vmm/vhost-device/pull/801

The new `.buildkite/main-tests.json` file is copied from
rust-vmm-ci/.buildkite/test_description.json from commit 09aef99
("chore: update container version to v48")

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2025-02-11 19:51:01 +05:30
Xuewei Niu
2c8440a99f vhost-device-console: Fix a typo in README
In the example of using `vhost-user-console-pci`, the id should be
`con0` instead of `con`.

Signed-off-by: Xuewei Niu <niuxuewei.nxw@antgroup.com>
2025-02-11 12:38:16 +05:30
Dorinda Bassey
8e7b710931 vhost-device-sound: Add controls field in VirtioSoundConfig
This commit introduces a new controls field in
VirtioSoundConfig to represent the total number of
available control elements. It's based on the recent
changes to the virtio-snd header file in QEMU.

Fixes this issue:
https://gitlab.com/qemu-project/qemu/-/issues/2805

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2025-02-10 15:36:36 +05:30
Manos Pitsidianakis
b400db9aff sound: fix clippy::unnecessary_map_or lint
clippy warns:

  error: this `map_or` is redundant
     --> vhost-device-sound/src/audio_backends/pipewire/test_utils.rs:210:12
      |
  210 |         if max_retries.map_or(false, |max| iterations >= max) {
      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use is_some_and instead: `max_retries.is_some_and(|max| iterations >= max)`
      |
      = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2025-02-10 15:03:24 +05:30
lnyng
99ec30759a Disable EPOLLOUT if triggered while txbuf is empty
Currently the vsock connection always triggers on EPOLLOUT. When a host
applicationlistens to the UDS, it's almost always writable, and thus
keeps triggering backend events with EPOLLOUT on the connection. As a
result, vhost-device-vsock daemon consumes 100% CPU.

To make it more CPU efficient, it can instead unsubscribe EPOLLOUT
whenever there is no more data to send. It can re-subscribe if the
connection cannot write out all bytes. This change causes the CPU util
to drop to negligible level.

Signed-off-by: Leon Yang <lnyng@meta.com>
2025-02-04 09:13:28 +05:30
Matej Hrica
ec0f309972 gpu: update README to better reflect current limitations
Update the README to better reflect the limitations of not supporting blob
resources and remove the note about hardcoded number of capsets that has been
fixed.

Signed-off-by: Matej Hrica <mhrica@redhat.com>
2025-01-22 15:15:38 +01:00
Matej Hrica
37082de03a gpu: add CLI arguments for configuring Rutabaga builder
Add command line arguments for configuring which capsets and features are
enabled when configuring Rutabaga.

Since we now specify the capsets explicitly we can drop the MAX_NUM_CAPSETS
constant and fix the TODO.

The curently exposed capsets for virglrenderer are: virgl and virgl2.
For gfxstream they are: gfxstream-vulkan and gfxstream-gles.

Signed-off-by: Matej Hrica <mhrica@redhat.com>
2025-01-22 15:15:38 +01:00
Matej Hrica
432acbae1a gpu: move start_backend from main.rs into lib.rs
This was an oversight - for the user to be able to use the crate as a
library, the start_backend needs to be part of the public API.

Signed-off-by: Matej Hrica <mhrica@redhat.com>
2025-01-22 15:15:38 +01:00
Matej Hrica
4ae31e73d5 gpu: remove CI workarounds
Remove the workaround to disable compiling the code on non-gnu targets.
(the CI now doesn't attempt compiling on musl)

Signed-off-by: Matej Hrica <mhrica@redhat.com>
2025-01-22 15:15:38 +01:00
Matej Hrica
7488f44220 CI: do not build gpu for musl targets
Do not build the GPU device for musl targets. To compile it properly would
require setting up a build enivorment with all the native dependencies
compiled with musl as well.

Signed-off-by: Matej Hrica <mhrica@redhat.com>
2025-01-22 15:15:38 +01:00
Matej Hrica
a2f0f91857 gpu: remove unused duplicate constants
Remove capset constants definitions in protocol.rs, these are unecessary,
because we use the constants defined in the Rutabaga crate.

Signed-off-by: Matej Hrica <mhrica@redhat.com>
2025-01-22 15:15:38 +01:00
Matej Hrica
4c090cf776 gpu: rename --gpu-mode virgl-renderer -> virglrenderer
The name of the project/backend is "virglrenderer", the dash was added by
clap. Adding the dash seems confusing to the user, the old name is kept
as a hidden alias.

Signed-off-by: Matej Hrica <mhrica@redhat.com>
2025-01-22 15:15:38 +01:00
Junnan Wu
53ded3f04d scmi: sensor axis extended attributes support
For Android requirment, virtio-scmi axis descriptor should
support extended attributes. This patch does this things.

We get axis's resolution during reading "scale" and store.
When agent wants to get axis descriptions,
device will add resolution value to extend attribute field.
At the same time, max and min range also have been configured.

Signed-off-by: Junnan Wu <junnan01.wu@samsung.com>
2025-01-17 10:56:04 +01:00
Junnan Wu
d19a265bed scmi: report axis descriptor one by one
In order to support extended attributes, in flow of
handle command SENSOR_AXIS_DESCRIPTION_GET, it should
report frontend the axis info one by one instead of together,
for reason that it will exceed the size of descriptor buffer size.

And this patch also fixs the wrong value number of
remaining sensor axis descriptors.
The remaining value should excludes reported axis.

Signed-off-by: Junnan Wu <junnan01.wu@samsung.com>
2025-01-17 10:56:04 +01:00
Milan Zamazal
add44591cd Set @mz-pdm as the code owner of vhost-device-scmi
mz-pdm (Milan Zamazal) is the primary author of vhost-device-scmi code, making
him a code owner of it for easier handling of the related PRs.

Signed-off-by: Milan Zamazal <mzamazal@redhat.com>
2025-01-14 17:42:45 +02:00
dependabot[bot]
a8148376b7 build(deps): bump the non-rust-vmm group across 2 directories with 30 updates
Bumps the non-rust-vmm group with 20 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [clap](https://github.com/clap-rs/clap) | `4.5.21` | `4.5.23` |
| [env_logger](https://github.com/rust-cli/env_logger) | `0.11.5` | `0.11.6` |
| [thiserror](https://github.com/dtolnay/thiserror) | `2.0.3` | `2.0.9` |
| [socketcan](https://github.com/mbr/socketcan-rs) | `3.3.1` | `3.5.0` |
| [console](https://github.com/console-rs/console) | `0.15.8` | `0.15.10` |
| [libc](https://github.com/rust-lang/libc) | `0.2.167` | `0.2.169` |
| [itertools](https://github.com/rust-itertools/itertools) | `0.13.0` | `0.14.0` |
| [serde](https://github.com/serde-rs/serde) | `1.0.215` | `1.0.217` |
| [anyhow](https://github.com/dtolnay/anyhow) | `1.0.93` | `1.0.95` |
| [bytemuck](https://github.com/Lokathor/bytemuck) | `1.20.0` | `1.21.0` |
| [cc](https://github.com/rust-lang/cc-rs) | `1.2.2` | `1.2.6` |
| [env_filter](https://github.com/rust-cli/env_logger) | `0.1.2` | `0.1.3` |
| [fastrand](https://github.com/smol-rs/fastrand) | `2.2.0` | `2.3.0` |
| [glob](https://github.com/rust-lang/glob) | `0.3.1` | `0.3.2` |
| [home](https://github.com/rust-lang/cargo) | `0.5.9` | `0.5.11` |
| [quote](https://github.com/dtolnay/quote) | `1.0.37` | `1.0.38` |
| redox_syscall | `0.5.7` | `0.5.8` |
| [rustix](https://github.com/bytecodealliance/rustix) | `0.38.41` | `0.38.42` |
| [semver](https://github.com/dtolnay/semver) | `1.0.23` | `1.0.24` |
| [winnow](https://github.com/winnow-rs/winnow) | `0.6.20` | `0.6.21` |

Bumps the non-rust-vmm group with 16 updates in the /staging directory:

| Package | From | To |
| --- | --- | --- |
| [clap](https://github.com/clap-rs/clap) | `4.5.21` | `4.5.23` |
| [env_logger](https://github.com/rust-cli/env_logger) | `0.11.5` | `0.11.6` |
| [thiserror](https://github.com/dtolnay/thiserror) | `2.0.3` | `2.0.9` |
| [libc](https://github.com/rust-lang/libc) | `0.2.167` | `0.2.169` |
| [anyhow](https://github.com/dtolnay/anyhow) | `1.0.93` | `1.0.95` |
| [env_filter](https://github.com/rust-cli/env_logger) | `0.1.2` | `0.1.3` |
| [fastrand](https://github.com/smol-rs/fastrand) | `2.2.0` | `2.3.0` |
| [glob](https://github.com/rust-lang/glob) | `0.3.1` | `0.3.2` |
| [quote](https://github.com/dtolnay/quote) | `1.0.37` | `1.0.38` |
| [rustix](https://github.com/bytecodealliance/rustix) | `0.38.41` | `0.38.42` |
| [semver](https://github.com/dtolnay/semver) | `1.0.23` | `1.0.24` |
| [syn](https://github.com/dtolnay/syn) | `2.0.90` | `2.0.93` |
| [winnow](https://github.com/winnow-rs/winnow) | `0.6.20` | `0.6.21` |
| [predicates](https://github.com/assert-rs/predicates-rs) | `3.1.2` | `3.1.3` |
| [predicates-core](https://github.com/assert-rs/predicates-rs) | `1.0.8` | `1.0.9` |
| [predicates-tree](https://github.com/assert-rs/predicates-rs) | `1.0.11` | `1.0.12` |



Updates `clap` from 4.5.21 to 4.5.23
- [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.21...clap_complete-v4.5.23)

Updates `env_logger` from 0.11.5 to 0.11.6
- [Release notes](https://github.com/rust-cli/env_logger/releases)
- [Changelog](https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-cli/env_logger/compare/v0.11.5...v0.11.6)

Updates `thiserror` from 2.0.3 to 2.0.9
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/2.0.3...2.0.9)

Updates `socketcan` from 3.3.1 to 3.5.0
- [Release notes](https://github.com/mbr/socketcan-rs/releases)
- [Changelog](https://github.com/socketcan-rs/socketcan-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mbr/socketcan-rs/compare/v3.3.1...v3.5.0)

Updates `console` from 0.15.8 to 0.15.10
- [Release notes](https://github.com/console-rs/console/releases)
- [Changelog](https://github.com/console-rs/console/blob/main/CHANGELOG.md)
- [Commits](https://github.com/console-rs/console/compare/0.15.8...0.15.10)

Updates `libc` from 0.2.167 to 0.2.169
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.169/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.167...0.2.169)

Updates `itertools` from 0.13.0 to 0.14.0
- [Changelog](https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-itertools/itertools/compare/v0.13.0...v0.14.0)

Updates `serde` from 1.0.215 to 1.0.217
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.215...v1.0.217)

Updates `anyhow` from 1.0.93 to 1.0.95
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.93...1.0.95)

Updates `bytemuck` from 1.20.0 to 1.21.0
- [Changelog](https://github.com/Lokathor/bytemuck/blob/main/changelog.md)
- [Commits](https://github.com/Lokathor/bytemuck/compare/v1.20.0...v1.21.0)

Updates `cc` from 1.2.2 to 1.2.6
- [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.2.2...cc-v1.2.6)

Updates `clap_builder` from 4.5.21 to 4.5.23
- [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.21...v4.5.23)

Updates `clap_lex` from 0.7.3 to 0.7.4
- [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_lex-v0.7.3...clap_lex-v0.7.4)

Updates `encode_unicode` from 0.3.6 to 1.0.0
- [Changelog](https://github.com/tormol/encode_unicode/blob/master/RELEASES.md)
- [Commits](https://github.com/tormol/encode_unicode/compare/v0.3.6...v1.0.0)

Updates `env_filter` from 0.1.2 to 0.1.3
- [Release notes](https://github.com/rust-cli/env_logger/releases)
- [Changelog](https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-cli/env_logger/compare/env_filter-v0.1.2...env_filter-v0.1.3)

Updates `fastrand` from 2.2.0 to 2.3.0
- [Release notes](https://github.com/smol-rs/fastrand/releases)
- [Changelog](https://github.com/smol-rs/fastrand/blob/master/CHANGELOG.md)
- [Commits](https://github.com/smol-rs/fastrand/compare/v2.2.0...v2.3.0)

Updates `glob` from 0.3.1 to 0.3.2
- [Release notes](https://github.com/rust-lang/glob/releases)
- [Changelog](https://github.com/rust-lang/glob/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/glob/compare/0.3.1...v0.3.2)

Updates `home` from 0.5.9 to 0.5.11
- [Changelog](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/cargo/compare/home-0.5.9...home-0.5.11)

Updates `quote` from 1.0.37 to 1.0.38
- [Release notes](https://github.com/dtolnay/quote/releases)
- [Commits](https://github.com/dtolnay/quote/compare/1.0.37...1.0.38)

Updates `redox_syscall` from 0.5.7 to 0.5.8

Updates `rustix` from 0.38.41 to 0.38.42
- [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.41...v0.38.42)

Updates `semver` from 1.0.23 to 1.0.24
- [Release notes](https://github.com/dtolnay/semver/releases)
- [Commits](https://github.com/dtolnay/semver/compare/1.0.23...1.0.24)

Updates `serde_derive` from 1.0.215 to 1.0.217
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.215...v1.0.217)

Updates `winnow` from 0.6.20 to 0.6.21
- [Changelog](https://github.com/winnow-rs/winnow/blob/main/CHANGELOG.md)
- [Commits](https://github.com/winnow-rs/winnow/compare/v0.6.20...v0.6.21)

Updates `clap` from 4.5.21 to 4.5.23
- [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.21...clap_complete-v4.5.23)

Updates `env_logger` from 0.11.5 to 0.11.6
- [Release notes](https://github.com/rust-cli/env_logger/releases)
- [Changelog](https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-cli/env_logger/compare/v0.11.5...v0.11.6)

Updates `thiserror` from 2.0.3 to 2.0.9
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/2.0.3...2.0.9)

Updates `libc` from 0.2.167 to 0.2.169
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.169/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.167...0.2.169)

Updates `anyhow` from 1.0.93 to 1.0.95
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.93...1.0.95)

Updates `clap_builder` from 4.5.21 to 4.5.23
- [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.21...v4.5.23)

Updates `clap_lex` from 0.7.3 to 0.7.4
- [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_lex-v0.7.3...clap_lex-v0.7.4)

Updates `env_filter` from 0.1.2 to 0.1.3
- [Release notes](https://github.com/rust-cli/env_logger/releases)
- [Changelog](https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-cli/env_logger/compare/env_filter-v0.1.2...env_filter-v0.1.3)

Updates `fastrand` from 2.2.0 to 2.3.0
- [Release notes](https://github.com/smol-rs/fastrand/releases)
- [Changelog](https://github.com/smol-rs/fastrand/blob/master/CHANGELOG.md)
- [Commits](https://github.com/smol-rs/fastrand/compare/v2.2.0...v2.3.0)

Updates `glob` from 0.3.1 to 0.3.2
- [Release notes](https://github.com/rust-lang/glob/releases)
- [Changelog](https://github.com/rust-lang/glob/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/glob/compare/0.3.1...v0.3.2)

Updates `quote` from 1.0.37 to 1.0.38
- [Release notes](https://github.com/dtolnay/quote/releases)
- [Commits](https://github.com/dtolnay/quote/compare/1.0.37...1.0.38)

Updates `rustix` from 0.38.41 to 0.38.42
- [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.41...v0.38.42)

Updates `semver` from 1.0.23 to 1.0.24
- [Release notes](https://github.com/dtolnay/semver/releases)
- [Commits](https://github.com/dtolnay/semver/compare/1.0.23...1.0.24)

Updates `syn` from 2.0.90 to 2.0.93
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/2.0.90...2.0.93)

Updates `windows-sys` from 0.52.0 to 0.59.0
- [Release notes](https://github.com/microsoft/windows-rs/releases)
- [Commits](https://github.com/microsoft/windows-rs/compare/0.52.0...0.59.0)

Updates `winnow` from 0.6.20 to 0.6.21
- [Changelog](https://github.com/winnow-rs/winnow/blob/main/CHANGELOG.md)
- [Commits](https://github.com/winnow-rs/winnow/compare/v0.6.20...v0.6.21)

Updates `predicates` from 3.1.2 to 3.1.3
- [Changelog](https://github.com/assert-rs/predicates-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/assert-rs/predicates-rs/compare/v3.1.2...v3.1.3)

Updates `predicates-core` from 1.0.8 to 1.0.9
- [Changelog](https://github.com/assert-rs/predicates-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/assert-rs/predicates-rs/compare/predicates-core-v1.0.8...predicates-core-v1.0.9)

Updates `predicates-tree` from 1.0.11 to 1.0.12
- [Changelog](https://github.com/assert-rs/predicates-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/assert-rs/predicates-rs/compare/predicates-tree-v1.0.11...predicates-tree-v1.0.12)

Updates `termtree` from 0.4.1 to 0.5.1
- [Changelog](https://github.com/rust-cli/termtree/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-cli/termtree/compare/v0.4.1...v0.5.1)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: env_logger
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: socketcan
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: non-rust-vmm
- dependency-name: console
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: libc
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: itertools
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: non-rust-vmm
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: anyhow
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: bytemuck
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: non-rust-vmm
- dependency-name: cc
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: clap_builder
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: clap_lex
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: encode_unicode
  dependency-type: indirect
  update-type: version-update:semver-major
  dependency-group: non-rust-vmm
- dependency-name: env_filter
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: fastrand
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: non-rust-vmm
- dependency-name: glob
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: home
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: quote
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: redox_syscall
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: rustix
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: semver
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: serde_derive
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: winnow
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: env_logger
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: libc
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: anyhow
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: clap_builder
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: clap_lex
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: env_filter
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: fastrand
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: non-rust-vmm
- dependency-name: glob
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: quote
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: rustix
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: semver
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: syn
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: windows-sys
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: non-rust-vmm
- dependency-name: winnow
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: predicates
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: predicates-core
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: predicates-tree
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: termtree
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: non-rust-vmm
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-07 10:13:07 +01:00
dependabot[bot]
f061552bcc build(deps): bump rust-vmm-ci from 1150c47 to 09aef99
Bumps [rust-vmm-ci](https://github.com/rust-vmm/rust-vmm-ci) from `1150c47` to `09aef99`.
- [Commits](1150c47872...09aef997d8)

---
updated-dependencies:
- dependency-name: rust-vmm-ci
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-16 09:39:43 +01:00
Manos Pitsidianakis
f293c4e8f0 Fix clippy::empty_line_after_doc_comments
Fix new warn by default clippy lint, empty_line_after_doc_comments,
by removing empty lines after doc comments.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2024-12-16 14:00:08 +05:30
Alex Bennée
2998e075e9 README.md: add vhost-device-gpu to staging list
This is worth having listed on the front page of the repo.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2024-12-09 17:19:56 +02:00
Manos Pitsidianakis
14a062cca8 sound: use rusty_fork_test for env-modifying tests
Alsa and Pipewire tests modify their process environment (as part of
setting up their test harnesses), which is incorrect because tests run
on a multi-thread test runner by default. Use the rusty_fork crate to
run those tests in a forked process.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2024-12-09 15:02:46 +01:00
Manos Pitsidianakis
1b4c63ced5 sound: panic in tests if dbus/pipewire don't start
If dbus-daemon or pipewire daemon exit with an error, panic.

This might help us debug CI failures down the road, hopefully.

This commit also changes the `println!`s to `eprintln!`s since the
messages purpose is better suited to stderr.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2024-12-09 15:02:46 +01:00
Manos Pitsidianakis
b596509660 sound/pipewire: add truncated exp backoff to tests
Sometimes pw backend creation on CI fails with errors like for example:

    thread 'audio_backends::pipewire::tests::test_pipewire_backend_invalid_stream' panicked at vhost-device-sound/src/audio_backends/pipewire.rs:98:42:
    Failed to connect to core: CreationFailed

Add a simple kind of truncated exponential backoff retry wrapper to
PwBackend::new().

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2024-12-09 15:02:46 +01:00
Manos Pitsidianakis
d3274444ad sound: make PwBackend::new() return Result
Add a pipewire-specific error enum and make the backend's new() method
return a Result instead of panicking with expect() on error.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2024-12-09 15:02:46 +01:00
Manos Pitsidianakis
ace8e2e821 sound: change Error::UnexpectedAudioBackendError
Change Error::UnexpectedAudioBackendError variant to take a boxed `dyn
Error` value instead of a String. In the following commits we will use
the error variant for errors from the pipewire backend as well.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2024-12-09 15:02:46 +01:00
Stefano Garzarella
da2084d2e9 vsock/readme: add testing section
Add a new section to explain some requirements to run tests, e.g.
`vsock_loopback` kernel module is required if `backend_vsock` feature
is enabled (true by default) when running tests.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2024-12-06 14:05:06 +05:30
Stefano Garzarella
0cd34a69ab vsock/tests: panic if vsock_loopback is not available
test_vsock_thread_backend_vsock() and test_vsock_thread_vsock_backend()
tests use VMADDR_CID_LOCAL which is provided by the `vsock_loopback`
kernel module.

If `vsock_loopback` kernel module is not loaded, these tests will fail
later with unclear messages, so it can be hard to debug.

Let's fail early and print a message with the requirement.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2024-12-06 14:05:06 +05:30
Stefano Garzarella
9b1cc25dc5 vsock/tests: use vsock::VMADDR_CID_LOCAL
Instead of using the direct value (1), let's use the constant value
provided by the vsock crate.

VMADDR_CID_LOCAL is used for loopback communication, which is used
in some of our test cases.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2024-12-06 14:05:06 +05:30
Manos Pitsidianakis
1406ca232b sound: Put AlsaTestHarness static in a LazyLock
Instead of using unsafe {} and undefined behavior (mutable shared static
references) use LazyLock which initializes the harness on first
dereference and provides immutable access only (the harness type has
interior mutability).

Fixes: #785

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2024-12-04 11:44:39 +01:00
Manos Pitsidianakis
9757042216 sound: fix some minor clippy lints
Unnecessary lazy evaluation in Option::ok_or_else uses, constify some
functions.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2024-12-04 11:44:39 +01:00
Stefano Garzarella
937d28daee scmi: add missing lifetime
rustc 1.83.0 (90b35a623 2024-11-26) emits 2 new warnings:

    warning: elided lifetime has a name
      --> vhost-device-scmi/src/devices/common.rs:69:60
       |
    69 |     fn extra<'a>(&'a self, allowed: &[&'a str]) -> HashSet<&str> {
       |              -- lifetime `'a` declared here                ^ this elided lifetime gets resolved as `'a`
       |
       = note: `#[warn(elided_named_lifetimes)]` on by default

    warning: elided lifetime has a name
      --> vhost-device-scmi/src/devices/common.rs:74:63
       |
    74 |     fn missing<'a>(&'a self, required: &[&'a str]) -> HashSet<&str> {
       |                -- lifetime `'a` declared here                 ^ this elided lifetime gets resolved as `'a`

    warning: `vhost-device-scmi` (bin "vhost-device-scmi") generated 2 warnings

Fixes: #786
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2024-12-02 12:22:48 +02:00
Stefano Garzarella
b96475f788 scmi: fix manual arithmetic check warning
clippy 0.1.83 (90b35a6 2024-11-26) emits a new warning:

    warning: manual arithmetic check found
       --> vhost-device-scmi/src/scmi.rs:471:41
        |
    471 |                   let remaining_sensors = if n_sensors > last_non_returned_se...
        |  _________________________________________^
    472 | |                     n_sensors - last_non_returned_sensor
    473 | |                 } else {
    474 | |                     0
    475 | |                 };
        | |_________________^ help: replace it with: `n_sensors.saturating_sub(last_non_returned_sensor)`
        |
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2024-12-02 12:22:48 +02:00
Manos Pitsidianakis
0a5249b903 gpu: guard gfxstream dependency with a feature
Add a new compile-time feature, `gfxstream`, which is included in the
default features. The only thing that changes is that we can now build
without requiring the `gfxstream_backend` library on compilation time,
which helps in cases it is not packaged in a distro, or is not available
at a user's build machine.

Also update `README.md` with information about the build-time feature.

This commit does not change anything other than make gfxstream gpu mode
opt-out at build-time. Everything should continue to work the same.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2024-12-02 10:57:44 +01:00
Manos Pitsidianakis
3eaa0f80f1 gpu: Make some formatting changes to README.md
- Add missing `--gpu-mode` argument from "Synopsis" section"
- Make "Options" section shorter, include --gpu-mode and its possible
  values
- Surround source code identifiers with backticks so they render as code
- Split "Features" section in paragraphs in preparation for next commit,
  which will expand the "gfxstream" part with info about compilation
  details.
- Surround gpu mode values with backticks so they render as code

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2024-12-02 10:57:44 +01:00
Manos Pitsidianakis
28b4d6c868 gpu: run cargo-sort to format Cargo.toml
No functional changes.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2024-12-02 10:57:44 +01:00
dependabot[bot]
70aa6bc3b2 build(deps): bump the non-rust-vmm group across 2 directories with 13 updates
Bumps the non-rust-vmm group with 11 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [libc](https://github.com/rust-lang/libc) | `0.2.164` | `0.2.167` |
| [bytemuck](https://github.com/Lokathor/bytemuck) | `1.19.0` | `1.20.0` |
| [cc](https://github.com/rust-lang/cc-rs) | `1.2.1` | `1.2.2` |
| [hashbrown](https://github.com/rust-lang/hashbrown) | `0.15.1` | `0.15.2` |
| [indexmap](https://github.com/indexmap-rs/indexmap) | `2.6.0` | `2.7.0` |
| [itoa](https://github.com/dtolnay/itoa) | `1.0.11` | `1.0.14` |
| [libloading](https://github.com/nagisa/rust_libloading) | `0.8.5` | `0.8.6` |
| [mio](https://github.com/tokio-rs/mio) | `1.0.2` | `1.0.3` |
| [proc-macro2](https://github.com/dtolnay/proc-macro2) | `1.0.89` | `1.0.92` |
| [rustix](https://github.com/bytecodealliance/rustix) | `0.38.40` | `0.38.41` |
| [unicode-ident](https://github.com/dtolnay/unicode-ident) | `1.0.13` | `1.0.14` |

Bumps the non-rust-vmm group with 8 updates in the /staging directory:

| Package | From | To |
| --- | --- | --- |
| [libc](https://github.com/rust-lang/libc) | `0.2.164` | `0.2.167` |
| [errno](https://github.com/lambda-fairy/rust-errno) | `0.3.9` | `0.3.10` |
| [hashbrown](https://github.com/rust-lang/hashbrown) | `0.15.1` | `0.15.2` |
| [indexmap](https://github.com/indexmap-rs/indexmap) | `2.6.0` | `2.7.0` |
| [proc-macro2](https://github.com/dtolnay/proc-macro2) | `1.0.89` | `1.0.92` |
| [rustix](https://github.com/bytecodealliance/rustix) | `0.38.40` | `0.38.41` |
| [syn](https://github.com/dtolnay/syn) | `2.0.87` | `2.0.90` |
| [unicode-ident](https://github.com/dtolnay/unicode-ident) | `1.0.13` | `1.0.14` |



Updates `libc` from 0.2.164 to 0.2.167
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.167/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.164...0.2.167)

Updates `bytemuck` from 1.19.0 to 1.20.0
- [Changelog](https://github.com/Lokathor/bytemuck/blob/main/changelog.md)
- [Commits](https://github.com/Lokathor/bytemuck/compare/v1.19.0...v1.20.0)

Updates `cc` from 1.2.1 to 1.2.2
- [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.2.1...cc-v1.2.2)

Updates `hashbrown` from 0.15.1 to 0.15.2
- [Changelog](https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/hashbrown/commits)

Updates `indexmap` from 2.6.0 to 2.7.0
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/master/RELEASES.md)
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.6.0...2.7.0)

Updates `itoa` from 1.0.11 to 1.0.14
- [Release notes](https://github.com/dtolnay/itoa/releases)
- [Commits](https://github.com/dtolnay/itoa/compare/1.0.11...1.0.14)

Updates `libloading` from 0.8.5 to 0.8.6
- [Commits](https://github.com/nagisa/rust_libloading/compare/0.8.5...0.8.6)

Updates `mio` from 1.0.2 to 1.0.3
- [Release notes](https://github.com/tokio-rs/mio/releases)
- [Changelog](https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/mio/compare/v1.0.2...v1.0.3)

Updates `proc-macro2` from 1.0.89 to 1.0.92
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.89...1.0.92)

Updates `rustix` from 0.38.40 to 0.38.41
- [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.40...v0.38.41)

Updates `unicode-ident` from 1.0.13 to 1.0.14
- [Release notes](https://github.com/dtolnay/unicode-ident/releases)
- [Commits](https://github.com/dtolnay/unicode-ident/compare/1.0.13...1.0.14)

Updates `libc` from 0.2.164 to 0.2.167
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.167/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.164...0.2.167)

Updates `errno` from 0.3.9 to 0.3.10
- [Release notes](https://github.com/lambda-fairy/rust-errno/releases)
- [Changelog](https://github.com/lambda-fairy/rust-errno/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lambda-fairy/rust-errno/compare/v0.3.9...v0.3.10)

Updates `hashbrown` from 0.15.1 to 0.15.2
- [Changelog](https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/hashbrown/commits)

Updates `indexmap` from 2.6.0 to 2.7.0
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/master/RELEASES.md)
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.6.0...2.7.0)

Updates `proc-macro2` from 1.0.89 to 1.0.92
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.89...1.0.92)

Updates `rustix` from 0.38.40 to 0.38.41
- [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.40...v0.38.41)

Updates `syn` from 2.0.87 to 2.0.90
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/2.0.87...2.0.90)

Updates `unicode-ident` from 1.0.13 to 1.0.14
- [Release notes](https://github.com/dtolnay/unicode-ident/releases)
- [Commits](https://github.com/dtolnay/unicode-ident/compare/1.0.13...1.0.14)

---
updated-dependencies:
- dependency-name: libc
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: bytemuck
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: non-rust-vmm
- dependency-name: cc
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: hashbrown
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: indexmap
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: non-rust-vmm
- dependency-name: itoa
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: libloading
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: mio
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: proc-macro2
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: rustix
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: unicode-ident
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: libc
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: errno
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: hashbrown
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: indexmap
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: non-rust-vmm
- dependency-name: proc-macro2
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: rustix
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: syn
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: unicode-ident
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-02 10:43:14 +02:00
Dorinda Bassey
5f4614e632 vhost-device-gpu: Fix clippy warnings in tests
cleanup tests by addressing clippy warnings

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2024-11-29 15:37:03 +00:00
Dorinda Bassey
ce5c02f9ab vhost-device-gpu: Add more tests for the crate
This commit adds more tests for uncovered code paths
This test also covers some gpu commands functionality

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2024-11-29 15:37:03 +00:00
Stefano Garzarella
32c7b0710f vhost-device-input: prepare release v0.1.0
It seems that we haven't tagged a release since vhost-device-input
PR was merged.

Let's now release the first version: v0.1.0

Closes: #780
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2024-11-21 16:08:37 +01:00
Dorinda Bassey
391e32b82f vhost-device-gpu: Add Initial Implementation
This program is a vhost-user backend daemon that provides
VIRTIO GPU device emulation as specified in the VIRTIO Spec v.1.2
https://docs.oasis-open.org/virtio/virtio/v1.2/csd01/virtio-v1.2-csd01.html
This crate utilizes the rutabaga crate from crosvm with some
minor modification to rutabaga crate to fix compilation.
This crate depends on this PR[rust-vmm/vhost#239]
that implements support for QEMU's vhost-user-gpu protocol.

This device uses the rutabaga_gfx crate to offer two rendering backends:
1. Virglrenderer:
   - Rutabaga translates OpenGL API and Vulkan calls to an intermediate
     representation and allows for OpenGL acceleration on the host.
2. Gfxstream:
   - GLES and Vulkan calls are forwarded to the host.

These backends can be used by simply changing the `--gpu-mode` command
line option.
This crate also includes some modifications from libkrun virtio-gpu device
https://github.com/containers/libkrun/tree/main/src/devices/src/virtio/gpu

Fixes: rust-vmm#598

Co-authored-by: Dorinda Bassey <dbassey@redhat.com>
Co-authored-by: Matej Hrica <mhrica@redhat.com>

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
Signed-off-by: Matej Hrica <mhrica@redhat.com>
2024-11-20 15:02:02 +01:00
dependabot[bot]
b7321b7997 build(deps): bump the non-rust-vmm group across 2 directories with 9 updates
Bumps the non-rust-vmm group with 7 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [clap](https://github.com/clap-rs/clap) | `4.5.20` | `4.5.21` |
| [thiserror](https://github.com/dtolnay/thiserror) | `1.0.69` | `2.0.3` |
| [libc](https://github.com/rust-lang/libc) | `0.2.162` | `0.2.164` |
| [serde](https://github.com/serde-rs/serde) | `1.0.214` | `1.0.215` |
| [cc](https://github.com/rust-lang/cc-rs) | `1.1.37` | `1.2.1` |
| [clap_lex](https://github.com/clap-rs/clap) | `0.7.2` | `0.7.3` |
| [regex-automata](https://github.com/rust-lang/regex) | `0.4.8` | `0.4.9` |

Bumps the non-rust-vmm group with 4 updates in the /staging directory: [clap](https://github.com/clap-rs/clap), [libc](https://github.com/rust-lang/libc), [clap_lex](https://github.com/clap-rs/clap) and [regex-automata](https://github.com/rust-lang/regex).


Updates `clap` from 4.5.20 to 4.5.21
- [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.20...clap_complete-v4.5.21)

Updates `thiserror` from 1.0.69 to 2.0.3
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.69...2.0.3)

Updates `libc` from 0.2.162 to 0.2.164
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Changelog](https://github.com/rust-lang/libc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.162...0.2.164)

Updates `serde` from 1.0.214 to 1.0.215
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.214...v1.0.215)

Updates `cc` from 1.1.37 to 1.2.1
- [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.37...cc-v1.2.1)

Updates `clap_builder` from 4.5.20 to 4.5.21
- [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.20...v4.5.21)

Updates `clap_lex` from 0.7.2 to 0.7.3
- [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_lex-v0.7.2...clap_lex-v0.7.3)

Updates `regex-automata` from 0.4.8 to 0.4.9
- [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/commits/regex-automata-0.4.9)

Updates `serde_derive` from 1.0.214 to 1.0.215
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.214...v1.0.215)

Updates `clap` from 4.5.20 to 4.5.21
- [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.20...clap_complete-v4.5.21)

Updates `libc` from 0.2.162 to 0.2.164
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Changelog](https://github.com/rust-lang/libc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.162...0.2.164)

Updates `clap_builder` from 4.5.20 to 4.5.21
- [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.20...v4.5.21)

Updates `clap_lex` from 0.7.2 to 0.7.3
- [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_lex-v0.7.2...clap_lex-v0.7.3)

Updates `regex-automata` from 0.4.8 to 0.4.9
- [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/commits/regex-automata-0.4.9)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: non-rust-vmm
- dependency-name: libc
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: cc
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: non-rust-vmm
- dependency-name: clap_builder
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: clap_lex
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: regex-automata
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: serde_derive
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: libc
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: clap_builder
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: clap_lex
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
- dependency-name: regex-automata
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: non-rust-vmm
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 09:55:28 +01:00
dependabot[bot]
09c98cb5fe build(deps): bump the rust-vmm group across 1 directory with 4 updates
Bumps the rust-vmm group with 4 updates in the / directory: [vhost](https://github.com/rust-vmm/vhost), [vhost-user-backend](https://github.com/rust-vmm/vhost), [virtio-queue](https://github.com/rust-vmm/vm-virtio) and [vm-memory](https://github.com/rust-vmm/vm-memory).


Updates `vhost` from 0.11.0 to 0.13.0
- [Release notes](https://github.com/rust-vmm/vhost/releases)
- [Commits](https://github.com/rust-vmm/vhost/compare/vhost-v0.11.0...vhost-v0.13.0)

Updates `vhost-user-backend` from 0.15.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.15.0...vhost-user-backend-v0.17.0)

Updates `virtio-queue` from 0.12.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.12.0...virtio-queue-v0.14.0)

Updates `vm-memory` from 0.14.1 to 0.16.1
- [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.14.1...v0.16.1)

---
updated-dependencies:
- dependency-name: vhost
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-vmm
- dependency-name: vhost-user-backend
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-vmm
- dependency-name: virtio-queue
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-vmm
- dependency-name: vm-memory
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-vmm
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 09:34:52 +01:00
Ruoqing He
60a29e2403 dependabot: Group updates to reduce noise
We have missused `exclude-patterns` and `applies-to` in previous setup,
they are documented in [1]:

- `exclude-patterns`: Use to exclude certain dependencies from the
  group. If a dependency is excluded from a group, Dependabot will
  continue to **raise single pull requests** to update the dependency to
  its latest version.
- `applies-to`: Use to specify whether the rules in the group apply to
  version updates or security updates. applies-to can be version-updates
  or security-updates.

Options in `groups` section is a matter of grouping strategy of these
detected udpates.

All in all, to effectively "group" these updates, we need to use `allow`
and `ignore` to specify update "candidates" for dependabot, if the
"candidates" were duplicated in the first place, no matter the grouping
strategy, the PRs raised are bound to be overlaped/duplicated.

[1] https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#groups

Signed-off-by: Ruoqing He <heruoqing@iscas.ac.cn>
2024-11-18 13:50:34 +05:30
Ruoqing He
5340588543 ci: Allow different configs for the same directory
Currently `dependabot` does not allow different configurations for the
same directories. This workaround [1] provides a way to bypass this
restriction.

[1] https://github.com/dependabot/dependabot-core/issues/1778#issuecomment-1988140219

Signed-off-by: Ruoqing He <heruoqing@iscas.ac.cn>
2024-11-14 22:15:40 +05:30
Manos Pitsidianakis
ad30537ab0 console: add crate-level clippy lints
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2024-11-14 13:00:05 +02:00
Manos Pitsidianakis
8a2a11d877 console: run nightly rustfmt to group imports
Nightly rustfmt groups imports neatly, so run it to make things
prettier.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2024-11-14 13:00:05 +02:00
Manos Pitsidianakis
c3a346c63a console: move event constants to QueueEvent enum
For the purpose of "namespacing" them under the enum type.

While at it, move QUEUE_SIZE and NUM_QUEUES as related constants for
VhostUserConsoleBackend.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2024-11-14 13:00:05 +02:00
Manos Pitsidianakis
084d7ed082 console: specify unknown event in HandleEventUnknown
Since we know the unknown event value, we might as well specify it in
the error message of Error::HandleEventUnknown to help users and
developers.

While at it, return an error when trying to access vrings with
`device_event` >= QUEUE_SIZE.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2024-11-14 13:00:05 +02:00
Manos Pitsidianakis
03bf860b28 console: remove extraneous convert::From use
std::convert::From is included in the prelude, so no need to refer to it
by its full path.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2024-11-14 13:00:05 +02:00
Manos Pitsidianakis
c7d4bf6f63 console: remove extraneous newline from expect()
expect(), like panic!(), does not trailing need newlines. Remove them.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2024-11-14 13:00:05 +02:00
Manos Pitsidianakis
ab9a8af504 console: fix wording for CouldNotInitBackend error
Human readable text for this error variant was copied from
CouldNotCreateBackend, so adjust it for its own purpose.

Fixes: c739770 ("vhost-device-console: use worker's epoll for input events")
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2024-11-14 13:00:05 +02:00