Commit graph

76 commits

Author SHA1 Message Date
Albert Esteve
03c9524bc4 vhost-user: Add support for GET_SHMEM_CONFIG message
Add support for GET_SHMEM_CONFIG message to retrieve
VirtIO Shared Memory Regions configuration.

This is useful when the frontend is unaware of specific
backend type and configuration of the memory layout.

Based on the patch [1] which is just waiting for being
merged.

[1] -
https://lore.kernel.org/all/20251111091058.879669-1-aesteve@redhat.com/

Signed-off-by: Albert Esteve <aesteve@redhat.com>
2026-02-26 15:57:06 +02:00
Jorge E. Moreira
8c00b8829f vhost-user-backend: Avoid losing vring kicks
By registering the file descriptors only when the queue is ready and
enabled. This fixes a race in which a buffer could be added to the queue
and the kick sent after registration but before it being enabled which
causes the kick to be lost and the event never delivered to the backend.
This was particularly prevalent when restoring a snapshot.

Signed-off-by: Jorge E. Moreira <jemoreira@google.com>
2026-02-26 09:13:22 +01:00
Albert Esteve
fd169b9df3 vhost_user: Add support for SHMEM_MAP/UNMAP backend requests
Add request defintions and methods for using the new SHMEM_MAP/UNMAP
backend requests.

Note that at the time of writing this, these requests are part of this RFC
in QEMU:
https://mail.gnu.org/archive/html/qemu-devel/2024-06/msg05736.html

Co-authored-by: Albert Esteve <aesteve@redhat.com>
Co-authored-by: Matej Hrica <mhrica@redhat.com>

Signed-off-by: Albert Esteve <aesteve@redhat.com>
Signed-off-by: Matej Hrica <mhrica@redhat.com>
2025-12-10 15:28:47 +02:00
Egor Lazarchuk
52b8d40b31 vhost-user: prepare v0.21.0 release
Signed-off-by: Egor Lazarchuk <yegorlz@amazon.co.uk>
2025-11-18 17:57:37 +01:00
dependabot[bot]
1d39cf5cbb build(deps): bump the vhost group across 1 directory with 2 updates
Updates the requirements on [virtio-queue](https://github.com/rust-vmm/vm-virtio) and [vm-memory](https://github.com/rust-vmm/vm-memory) to permit the latest version.

Updates `virtio-queue` to 0.17.0
- [Release notes](https://github.com/rust-vmm/vm-virtio/releases)
- [Commits](https://github.com/rust-vmm/vm-virtio/compare/virtio-queue-v0.16.0...virtio-queue-v0.17.0)

Updates `vm-memory` to 0.17.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.16.2...v0.17.1)

---
updated-dependencies:
- dependency-name: virtio-queue
  dependency-version: 0.17.0
  dependency-type: direct:production
  dependency-group: vhost
- dependency-name: vm-memory
  dependency-version: 0.17.1
  dependency-type: direct:production
  dependency-group: vhost
...

Signed-off-by: dependabot[bot] <support@github.com>
[SG: adapted code to vm-memory changes, mainly related to changes on
 return types (e.g. Option vs Result, etc.)]
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2025-11-18 08:35:16 +01:00
Patrick Roy
6283571832 fix documentation build on docs.rs
Instruct the docs.rs documentation builder to pass --cfg
RUTSDOC_disable_feature_compat_errors in RUSTFLAGS when building
documentation, so that builds dont fail because of compile_error!() and
incompatible features [1].

[1]: https://docs.rs/crate/vhost/0.14.0/builds/2193201

Signed-off-by: Patrick Roy <patrick.roy@linux.dev>
2025-10-21 09:52:47 +02:00
Patrick Roy
f979631610 fix cargo doc CI step
Introduce a dummy feature to hack around `cargo doc --all-features`
always hitting the compile_error!(...) in vhost/src/lib.rs about
incompatible features.

This is happening because when documenting vhost-user-backend, cargo
does not pass --cfg doc to dependencies, meaning the cfg(not(doc))
attribute that is supposed to eliminate this compile_error!() invokation
when building docs does not actually trigger. Hence cargo doc fails.

Introduce a custom cfg, which we tell docs.rs to set during
documentation build, which disables the compile_error!(). Our CI also
sets this flag for the rustdoc step (via an ugly `sed` in the pipeline
definition). This cfg is also set by rust-vmm-ci for the cargo doc step.

Note that we need both cfg(not(doc)) and
cfg(not(RUTSDOC_disable_feature_compat_errors)), because lib.rs gets
processed twice, onces by rustc (where the --cfg is passed via
RUSTFLAGS), and once by rustdoc itself, where RUSTFLAGS are ignored, and
instead the cfg(doc) macro comes into play (but rustdoc is only ran on
the crate for which we are actually generating docs, not the
dependencies).

Signed-off-by: Patrick Roy <patrick.roy@linux.dev>
2025-10-21 09:52:47 +02:00
Patrick Roy
cf91d1defa configure cargo-all-features
Set it up so that it does not try to combine the xen and postcopy
features, and also ignore the test-only test_utils feature.

Signed-off-by: Patrick Roy <patrick.roy@linux.dev>
2025-10-21 09:52:47 +02:00
Alyssa Ross
34b75fdae5 vhost_user: don't take ownership of Listener
The vhost-device devices all call VhostUserDaemon::serve in a loop, to
handle reconnections.  This is not ideal, because a new listener is
created each loop iteration, which means that each time, the old
socket is unlinked and a new one is created.  This means that there's
a potential race where a frontend attempts to connect to the backend
before the new socket is created.

A more robust way to achieve this would be to have the devices create
their own listeners, and pass the same one to VhostUserDaemon::start
on each loop iteration, instead of letting VhostUserDaemon::serve
create it repeatedly.  This was not previously possible though,
because VhostUserDaemon::start consumed the listener, even though it
didn't need to.

Because it's now possible to call VhostUserDaemon::start multiple
times with the same socket, I've removed the TODO about handling
reconnection.

Signed-off-by: Alyssa Ross <hi@alyssa.is>
2025-09-10 09:09:29 +02:00
dependabot[bot]
266854e492 build(deps): update userfaultfd requirement
---
updated-dependencies:
- dependency-name: userfaultfd
  dependency-version: 0.9.0
  dependency-type: direct:production
  dependency-group: vhost
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-28 09:28:01 +02:00
Wenyu Huang
18bf2a5613 Replace Eventfd with EventNotifier/EventConsumer
Eventfd is Linux-specific. To support more platforms, we replace it with
the EventNotifier/EventConsumer abstractions.
EventSender and EventReceiver are wrappers that encapsulate eventfd functionality
Use pipefd to replace eventfd in the test.

Signed-off-by: Wenyu Huang <huangwenyuu@outlook.com>
2025-08-27 10:18:07 +02:00
German Maglione
580f19f16b Fix "mismatched lifetime syntaxes" warning
rust 1.89 made the "mismatched lifetime syntaxes" lint to show a warning
by default:
https://blog.rust-lang.org/2025/08/07/Rust-1.89.0/#mismatched-lifetime-syntaxes-lint

Add a placeholder lifetime to `vhost_user_backend::vring::VringStateMutGuard`
to be explicit.

Signed-off-by: German Maglione <gmaglione@redhat.com>
2025-08-27 10:10:08 +02:00
Stefano Garzarella
92b9df3bfd chore: fix new clippy warnings
clippy in the new rust toolchain (1.87) in our CI is highlighting
something to improve.
Mostly done with `cargo clippy --fix` + silence
`clippy::match_overlapping_arm` since EWOULDBLOCK equals to EGAIN on
linux.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2025-07-17 13:12:15 +02:00
Jinank Jain
eae4f73778 vhost-user-backend: Prepare for new release v0.20.0
This release upgraded virtio-queue and virtio-bindings to latest
released version.

Signed-off-by: Jinank Jain <jinankjain@microsoft.com>
2025-07-03 12:42:25 +02:00
Jinank Jain
9a744c22c8 vhost: Fix clippy warning from nightly compiler
There is a new warning reported by nightly compiler about mismatched
lifetime syntaxes. Add the missing lifetime where ever required.

Signed-off-by: Jinank Jain <jinankjain@microsoft.com>
2025-06-13 10:37:23 +02:00
Jinank Jain
49afe46e17 vhost-user-backend: Prepare for new release v0.19.0
This release upgraded virtio-queue and virtio-bindings to latest
released version.

Signed-off-by: Jinank Jain <jinankjain@microsoft.com>
2025-06-12 13:55:46 +02:00
Babis Chalios
9c8dc0b749 vhost-user-backend: prepare v0.18.0 release
This release
1. Adds support for `VHOST_USER_GET_SHARED_OBJECT`
2. Updates to vhost to 0.14.0, vm-memory 0.16.2 and vmm-sys-util to
   0.14.0

Signed-off-by: Babis Chalios <bchalios@amazon.es>
2025-06-04 10:15:26 +02:00
Babis Chalios
31d323e293 vhost: Prepare v0.14.0 release
This release:
1. Adds support for `VHOST_USER_GET_SHARED_OBJECT`
2. Fixes the reply header for an error case in POSTCOPY_ADVISE
3. `VHOST_USER_PROTOCOL_F_REPLY_ACK` is now always supported by backends
4. Bumps vm-memory to 0.16.2 and vmm-sys-util to 0.14.0

Signed-off-by: Babis Chalios <bchalios@amazon.es>
2025-06-04 10:15:26 +02:00
Alyssa Ross
14db3cd165 vhost_user: fix replies without GET_PROTOCOL_FEATURES
I observed hangs in the following situation when using Cloud
Hypervisor with virtiofsd:

1. Start virtiofsd
2. Start Cloud Hypervisor instance 1, connected to virtiofsd.
3. Start Cloud Hypervisor instance 2, waiting for migration.
4. Migrate VM from Cloud Hypervisor instance 1 to 2.
5. Start virtiofsd again.

The hangs happened because Cloud Hypervisor remembered, as part of the
migration data, which vhost-user protocol features the backend for its
fs device supported.  Instance 2 therefore never sent
GET_PROTOCOL_FEATURES to the second invocation of virtiofsd.  This
should work, but it didn't, because update_reply_ack_flag() checked
whether self.protocol_features contained GET_PROTOCOL_FEATURES, but
self.protocol_features is only filled in when GET_PROTOCOL_FEATURES is
called.  As a result, Cloud Hypervisor expected a reply that virtiofsd
would never send.

Since REPLY_ACK is handled entirely by the vhost-user library, and not
by the backend, there's no need to ask the backend whether it supports
REPLY_ACK in the first place, so we can just drop the check for that
from update_reply_ack_flag().  We know that we always support it, so
we just need to check whether the backend has acked it.  This fixes
the hang described above.

Since we will now always reply if the backend acks the feature,
REPLY_ACK is now always included in the set of features returned by
GET_PROTOCOL_FEATURES, just like with XEN_MMAP (when enabled).

Signed-off-by: Alyssa Ross <hi@alyssa.is>
2025-06-03 15:56:15 +02:00
dependabot[bot]
8c7cc594ac build(deps): update nix requirement
Updates the requirements on [nix](https://github.com/nix-rust/nix) to permit the latest version.

Updates `nix` to 0.30.1
- [Changelog](https://github.com/nix-rust/nix/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nix-rust/nix/compare/v0.29.0...v0.30.1)

---
updated-dependencies:
- dependency-name: nix
  dependency-version: 0.30.1
  dependency-type: direct:production
  dependency-group: vhost
...

Signed-off-by: dependabot[bot] <support@github.com>
[SG] adapted the memfd_create call to comply with the new nix v0.30
     interface
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2025-06-03 13:40:14 +02:00
Paolo Bonzini
888165bd8b set_log_base: use MmapRegion::bitmap() directly
For use in QEMU, I would like GuestMemoryRegion to return a BitmapSlice
instead of a &Bitmap.  This adds some flexibility that QEMU needs in
order to support a single global dirty bitmap that is sliced by the
various GuestMemoryRegions.

However, this removes access to the BitmapReplace trait, because it is of
course not possible to replace a slice of the bitmap only.  Fortunately,
vhost is built around the GM<> type alias, which has a pluggable bitmap
type but hardcodes the backend:

    type GM<B> = GuestMemoryAtomic<GuestMemoryMmap<B>>;

and therefore `region` is known to be a GuestRegionMmap.  Adding a
single dereference of the GuestRegionMmap returns the MmapRegion to
which the bitmap is attached, thus calling MmapRegion::bitmap() instead
of <GuestRegionMmap as GuestRegion>::bitmap().

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-05-21 13:57:16 +02:00
Stefano Garzarella
f936944fd1 vhost-user-backend: fix clippy warnings
New clippy version in the CI highlighted some code to improve.
This patch is generated using `clippy --fix ...`.

Fixed 2 type of warnings:
1 - error: the following explicit lifetimes could be elided: 'a
       --> vhost-user-backend/src/bitmap.rs:109:6
        |
    109 | impl<'a> WithBitmapSlice<'a> for BitmapMmapRegion {

2 - error: unnecessary closure used to substitute value for `Option::None`
       --> vhost-user-backend/src/handler.rs:356:21
        |
    356 |           let vring = self
        |  _____________________^
    357 | |             .vrings
    358 | |             .get(index as usize)
    359 | |             .ok_or_else(|| VhostUserError::InvalidParam)?;

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2024-12-17 14:33:19 +01:00
Dorinda Bassey
176f44a256 CHANGELOG: VHOST_USER_SHARED_OBJECT support
Add VHOST_USER_SHARED_OBJECT support in CHANGELOG.md files

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2024-11-19 13:51:47 +01:00
Dorinda Bassey
274d4dd062 Add test for VHOST_USER_SHARED_OBJECT
add test to trigger the VHOST_USER_SHARED_OBJECT message
on both frontend and backend.

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2024-11-19 13:51:47 +01:00
Dorinda Bassey
83d0f48256 Forward VHOST_USER_GET_SHARED_OBJECT message
Add support for the `VHOST_USER_GET_SHARED_OBJECT` request
in the backend. The GET_SHARED_OBJECT message is only usable
when VhostUserProtocolFeatures::SHARED_OBJECT feature is
negotiated. This support involves implementing a new method
`get_shared_object` to enable the frontend to retrieve a fd
from the backend about shared objects.  When the frontend
sends this `GET_SHARED_OBJECT` message to the backend, the
backend opens a fd for use, and sends it's fd to the frontend.

The implementation of the `get_shared_object` method is
optional, and ensure that the function `get_shared_object`
returns an error if the backend does not implement it.
If the back-end supports shared objects, it should return
a `File` representing the fd.

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2024-11-19 13:51:47 +01:00
Stefano Garzarella
3a49a22ffb CHANGELOGs: uniform and fix some inconsistencies
Every time I do a release I notice this difference between
changelogs in this workspace, so let's try to uniform them by using
the form used in vhost-user-backend: without square brackets in the
title of the release and the `v` as prefix (v0.0.0).

Also fixed some difference in how we link PRs, let's follow the
most used way: [[#000]](url)

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2024-11-05 09:54:44 +01:00
Stefano Garzarella
875f679ca8 vhost-user-backend: prepare v0.17.0 release
This release adds support for `VHOST_USER_RESET_DEVICE` and
updates vm-memory to 0.16.0 and virtio-queue to 0.13.0.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2024-11-04 17:19:57 +01:00
Stefano Garzarella
972a8a5de6 vhost: prepare v0.13.0 release
This release adds support for `VHOST_USER_RESET_DEVICE` and
updates vm-memory to 0.16.0 and virtio-queue to 0.13.0.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2024-11-04 17:19:57 +01:00
Stefano Garzarella
f107ee8f7a vhost-user-backend: yank v0.16.0 release
This version got yanked because the `gpu_socket` feature introduced
in this release was causing problems
(see [#265](https://github.com/rust-vmm/vhost/issues/265)).
Starting with the next version (v0.16.1), the `gpu_socket`
feature was removed.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2024-11-04 09:51:44 +01:00
Hanna Czenczek
d983ae07f7 CHANGELOG: VHOST_USER_RESET_DEVICE support
Announce VHOST_USER_RESET_DEVICE support in both CHANGELOG.md files.

Signed-off-by: Hanna Czenczek <hreitz@redhat.com>
2024-10-25 14:22:08 +02:00
Hanna Czenczek
86eb78875a vhost-user: Provide RESET_DEVICE front-end support
Added mostly for being able to add a reasonable test to
vhost-user-backend/tests/vhost-user-server.rs.

Signed-off-by: Hanna Czenczek <hreitz@redhat.com>
2024-10-25 14:22:08 +02:00
Hanna Czenczek
ff08ca095c vhost-user-server test: Use features constant
Add an associated const to MockVhostBackend that reflects the feature
bits it supports, so we can easily verify this value in other places.

Signed-off-by: Hanna Czenczek <hreitz@redhat.com>
2024-10-25 14:22:08 +02:00
Hanna Czenczek
72379ea0e1 vhost_user: Handle RESET_DEVICE message
Handle RESET_DEVICE messages by disabling all vrings and resetting the
device state (but retaining the protocol state, i.e. the negotiated
protocol flags) as per the specification.

Just like all other protocol features, support for this is not
auto-announced, but back-end implementations must actively decide to do
so in their protocol_features() implementation.

Back-end implementation can define their own reset_device() handler to
reset additional device state, if necessary.

Signed-off-by: Hanna Czenczek <hreitz@redhat.com>
2024-10-25 14:22:08 +02:00
Stefano Garzarella
4c2526bbe8 vhost-user-backend: prepare v0.16.1 release
Remove the gpu-socket feature just introduced, since it doesn't work
well with cargo feature unification.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2024-10-25 12:50:02 +02:00
Stefano Garzarella
c5fb10cec6 vhost: prepare v0.12.1 release
Remove the gpu-socket feature just introduced, since it doesn't work
well with cargo feature unification.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2024-10-25 12:50:02 +02:00
Dorinda Bassey
56a374c09f CHANGELOG: fix feature unification
add CHANGELOG for the PR that fixes feature unification
issues with gpu-socket feature.

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2024-10-25 10:06:09 +02:00
Dorinda Bassey
1350073485 make set_gpu_socket a default implementation
relax the requirement of the trait when implementing
the `set_gpu_socket` method, make the `set_gpu_socket`
method optional, and ensure that the function `set_gpu_socket`
returns an error if the backend does not implement it.

Fixes #265

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2024-10-25 10:06:09 +02:00
Dorinda Bassey
64cc75a8ab Remove gpu-socket feature
Remove conditional compilation because when multiple crates
that are in thesame workspace set different features,
cargo feature unification already defeats the purpose of
the `gpu-socket` feature flag since cargo merges all the
feature flags specified by dependent crates into a single
set when compiling shared dependencies. for reference see:
[feature-unification](https://doc.rust-lang.org/cargo/reference/features.html#feature-unification)

Fixes: #265

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2024-10-25 10:06:09 +02:00
Ruoqing He
071216060f build: Centralize rust-vmm crates to workspace
By centralizing rust-vmm crates to workspace root, effectively reduce
places to look around when updating dependencies manually.

Signed-off-by: Ruoqing He <heruoqing@iscas.ac.cn>
2024-10-21 14:03:27 +02:00
Tyler Fanelli
4f160320a8 vhost-user-backend: impl Debug for AddrMapping
It can be useful to debug the various address mappings sent to a vhost
user device backend. impl Debug for both the postcopy and non-postcopy
versions of AddrMapping.

Signed-off-by: Tyler Fanelli <tfanelli@redhat.com>
2024-10-02 16:25:52 +02:00
Muminul Islam
db344520f5 vhost-user-backend: Prepare v0.16.0 release
This release has the following changes:
  1. Move the set of event_idx property from set_vring_base callback to set_features one
  2. Add shared objects support
  3. Add support for `VHOST_USER_GPU_SET_SOCKET`
  4. Update virtio-queue version from 0.12.0 to 0.13.0 and vm-memory from 0.14.0 to 0.15.0.

Signed-off-by: Muminul Islam <muislam@microsoft.com>
2024-09-13 10:36:19 +02:00
Muminul Islam
6f4279c825 vhost: Prepare v0.12.0 release
This release has the following changes:
  1. Bump vm-memory crate from 0.14.0 to 0.15.0
  2. Add shared objects support
  3. Remove support for FS_* requests
  4. Add support for `VHOST_USER_GPU_SET_SOCKET`
  5. Ignore unknown bits in `VHOST_USER_GET_PROTOCOL_FEATURES` response.

Signed-off-by: Muminul Islam <muislam@microsoft.com>
2024-09-13 10:36:19 +02:00
Muminul Islam
e397bdb7cb builds: bump vm-memory and virtio-queue
Update virtio-queue version from 0.12.0 to 0.13.0 and
vm-memory from 0.14.0 to 0.15.0.

Signed-off-by: Muminul Islam <muislam@microsoft.com>
2024-09-12 11:05:46 +02:00
Matej Hrica
4684f2e9fc Modify changelogs mentioning upcoming gpu-socket feature
Adds links to PR in CHANGELOG.md for both vhost and vhost-user-backend.

Signed-off-by: Matej Hrica <mhrica@redhat.com>
2024-07-23 14:50:25 +02:00
Matej Hrica
9b24090faf Forward VHOST_USER_GPU_SET_SOCKET to VhostUserBackend impls
The VHOST_USER_GPU_SET_SOCKET is only handled when the feature gpu-socket
is enabled. This also introduces a GpuBackend for handling comunication
over the socket.
Signed-off-by: Matej Hrica <mhrica@redhat.com>
2024-07-23 14:50:25 +02:00
dependabot[bot]
48081ddad6 build(deps): update nix requirement from 0.28 to 0.29 in the vhost group
Updates the requirements on [nix](https://github.com/nix-rust/nix) to permit the latest version.

Updates `nix` to 0.29.0
- [Changelog](https://github.com/nix-rust/nix/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nix-rust/nix/compare/v0.28.0...v0.29.0)

---
updated-dependencies:
- dependency-name: nix
  dependency-type: direct:production
  dependency-group: vhost
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-27 09:59:25 +02:00
Albert Esteve
873a9b9bed CHANGELOG.md: Add shared object feature
Signed-off-by: Albert Esteve <aesteve@redhat.com>
2024-06-19 13:11:20 +02:00
Albert Esteve
94be3dfb7d vhost_user.backend_req: check shared_object flag
Check for VHOST_USER_PROTOCOL_F_SHARED_OBJECT flag
before allowing the backend to send SHARED_OBJECT_*
requests.

If it does have negotiated the protocol feature,
avoid sending the message and return error code
(i.e., !=0).

Signed-off-by: Albert Esteve <aesteve@redhat.com>
2024-06-19 13:11:20 +02:00
Eugenio Pérez
043d0d8fa2 vhost-user-backend: set event_idx boolean at set_features
A frontend can skip the call to set_vring_base, assuming the ring will
be initialized at 0.  If that frontend acknowledge EVENT_IDX vring and
VhostUserHandler backend will never know they need to use event idx.

Move the features configuration of the vring and the backend to set_features method.

Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
2024-05-14 12:28:11 +02:00
Matias Ezequiel Vara Larsen
bd6bf1325b vhost-user-backend: Prepare v0.15.0 release
This release changes the dependency for virtio-queue to 0.12.0.

Signed-off-by: Matias Ezequiel Vara Larsen <mvaralar@redhat.com>
2024-04-15 14:51:00 +02:00