* [PATCH v12 2/7] vhost_user.rst: Align VhostUserMsg excerpt members
@ 2026-02-04 9:37 Albert Esteve
2026-02-04 9:37 ` [PATCH v12 3/7] vhost_user.rst: Add SHMEM_MAP/_UNMAP to spec Albert Esteve
` (5 more replies)
0 siblings, 6 replies; 13+ messages in thread
From: Albert Esteve @ 2026-02-04 9:37 UTC (permalink / raw)
To: qemu-devel
Cc: jasowang, slp, hi, Pierrick Bouvier, Laurent Vivier,
manos.pitsidianakis, stevensd, dbassey, Stefano Garzarella,
Fabiano Rosas, Philippe Mathieu-Daudé, Peter Xu, stefanha,
Alex Bennée, mst, Paolo Bonzini
Add missing members to the VhostUserMsg excerpt in
the vhost-user spec documentation.
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Albert Esteve <aesteve@redhat.com>
---
docs/interop/vhost-user.rst | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/docs/interop/vhost-user.rst b/docs/interop/vhost-user.rst
index 93a9c8df2b..17a68a62eb 100644
--- a/docs/interop/vhost-user.rst
+++ b/docs/interop/vhost-user.rst
@@ -366,11 +366,15 @@ In QEMU the vhost-user message is implemented with the following struct:
struct vhost_vring_state state;
struct vhost_vring_addr addr;
VhostUserMemory memory;
+ VhostUserMemRegMsg mem_reg;
VhostUserLog log;
struct vhost_iotlb_msg iotlb;
VhostUserConfig config;
+ VhostUserCryptoSession session;
VhostUserVringArea area;
VhostUserInflight inflight;
+ VhostUserShared object;
+ VhostUserTransferDeviceState transfer_state;
};
} QEMU_PACKED VhostUserMsg;
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v12 3/7] vhost_user.rst: Add SHMEM_MAP/_UNMAP to spec
2026-02-04 9:37 [PATCH v12 2/7] vhost_user.rst: Align VhostUserMsg excerpt members Albert Esteve
@ 2026-02-04 9:37 ` Albert Esteve
2026-02-05 13:53 ` Alyssa Ross
2026-02-04 9:37 ` [PATCH v12 4/7] vhost_user: Add frontend get_shmem_config command Albert Esteve
` (4 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Albert Esteve @ 2026-02-04 9:37 UTC (permalink / raw)
To: qemu-devel
Cc: jasowang, slp, hi, Pierrick Bouvier, Laurent Vivier,
manos.pitsidianakis, stevensd, dbassey, Stefano Garzarella,
Fabiano Rosas, Philippe Mathieu-Daudé, Peter Xu, stefanha,
Alex Bennée, mst, Paolo Bonzini
Add SHMEM_MAP/_UNMAP request to the vhost-user
spec documentation.
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Signed-off-by: Albert Esteve <aesteve@redhat.com>
---
docs/interop/vhost-user.rst | 59 +++++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)
diff --git a/docs/interop/vhost-user.rst b/docs/interop/vhost-user.rst
index 17a68a62eb..6c1d66d7d3 100644
--- a/docs/interop/vhost-user.rst
+++ b/docs/interop/vhost-user.rst
@@ -350,6 +350,27 @@ Device state transfer parameters
In the future, additional phases might be added e.g. to allow
iterative migration while the device is running.
+MMAP request
+^^^^^^^^^^^^
+
++-------+---------+-----------+------------+-----+-------+
+| shmid | padding | fd_offset | shm_offset | len | flags |
++-------+---------+-----------+------------+-----+-------+
+
+:shmid: a 8-bit shared memory region identifier
+
+:fd_offset: a 64-bit offset of this area from the start
+ of the supplied file descriptor
+
+:shm_offset: a 64-bit offset from the start of the
+ pointed shared memory region
+
+:len: a 64-bit size of the memory to map
+
+:flags: a 64-bit value:
+ - 0: Pages are mapped read-only
+ - 1: Pages are mapped read-write
+
C structure
-----------
@@ -375,6 +396,7 @@ In QEMU the vhost-user message is implemented with the following struct:
VhostUserInflight inflight;
VhostUserShared object;
VhostUserTransferDeviceState transfer_state;
+ VhostUserMMap mmap;
};
} QEMU_PACKED VhostUserMsg;
@@ -1064,6 +1086,7 @@ Protocol features
#define VHOST_USER_PROTOCOL_F_XEN_MMAP 17
#define VHOST_USER_PROTOCOL_F_SHARED_OBJECT 18
#define VHOST_USER_PROTOCOL_F_DEVICE_STATE 19
+ #define VHOST_USER_PROTOCOL_F_SHMEM 20
Front-end message types
-----------------------
@@ -1872,6 +1895,42 @@ is sent by the front-end.
when the operation is successful, or non-zero otherwise. Note that if the
operation fails, no fd is sent to the backend.
+``VHOST_USER_BACKEND_SHMEM_MAP``
+ :id: 9
+ :equivalent ioctl: N/A
+ :request payload: fd and ``struct VhostUserMMap``
+ :reply payload: N/A
+
+ When the ``VHOST_USER_PROTOCOL_F_SHMEM`` protocol feature has been
+ successfully negotiated, this message can be submitted by the backends to
+ advertise a new mapping to be made in a given VIRTIO Shared Memory Region.
+ Upon receiving the message, the front-end will mmap the given fd into the
+ VIRTIO Shared Memory Region with the requested ``shmid``.
+ If ``VHOST_USER_PROTOCOL_F_REPLY_ACK`` is negotiated, and
+ back-end set the ``VHOST_USER_NEED_REPLY`` flag, the front-end
+ must respond with zero when operation is successfully completed,
+ or non-zero otherwise.
+
+ Mapping over an already existing map is not allowed and requests shall fail.
+ Therefore, the memory range in the request must correspond with a valid,
+ free region of the VIRTIO Shared Memory Region. Also, note that mappings
+ consume resources and that the request can fail when there are no resources
+ available. Lastly, mappings are automatically unmapped by the front-end
+ across device reset operation.
+
+``VHOST_USER_BACKEND_SHMEM_UNMAP``
+ :id: 10
+ :equivalent ioctl: N/A
+ :request payload: ``struct VhostUserMMap``
+ :reply payload: N/A
+
+ When the ``VHOST_USER_PROTOCOL_F_SHMEM`` protocol feature has been
+ successfully negotiated, this message can be submitted by the backends so
+ that the front-end un-mmaps a given range (``shm_offset``, ``len``) in the
+ VIRTIO Shared Memory Region with the requested ``shmid``. Note that the
+ given range shall correspond to the entirety of a valid mapped region.
+ A reply is generated indicating whether unmapping succeeded.
+
.. _reply_ack:
VHOST_USER_PROTOCOL_F_REPLY_ACK
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v12 4/7] vhost_user: Add frontend get_shmem_config command
2026-02-04 9:37 [PATCH v12 2/7] vhost_user.rst: Align VhostUserMsg excerpt members Albert Esteve
2026-02-04 9:37 ` [PATCH v12 3/7] vhost_user.rst: Add SHMEM_MAP/_UNMAP to spec Albert Esteve
@ 2026-02-04 9:37 ` Albert Esteve
2026-02-04 9:37 ` [PATCH v12 5/7] vhost_user.rst: Add GET_SHMEM_CONFIG message Albert Esteve
` (3 subsequent siblings)
5 siblings, 0 replies; 13+ messages in thread
From: Albert Esteve @ 2026-02-04 9:37 UTC (permalink / raw)
To: qemu-devel
Cc: jasowang, slp, hi, Pierrick Bouvier, Laurent Vivier,
manos.pitsidianakis, stevensd, dbassey, Stefano Garzarella,
Fabiano Rosas, Philippe Mathieu-Daudé, Peter Xu, stefanha,
Alex Bennée, mst, Paolo Bonzini
The frontend can use this command to retrieve
VirtIO Shared Memory Regions configuration from
the backend. The response contains the number of
shared memory regions, their size, and shmid.
This is useful when the frontend is unaware of
specific backend type and configuration,
for example, in the `vhost-user-device` case.
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Albert Esteve <aesteve@redhat.com>
---
include/hw/virtio/vhost-backend.h | 10 ++++++++++
include/hw/virtio/vhost-user.h | 1 +
include/hw/virtio/virtio.h | 2 ++
3 files changed, 13 insertions(+)
diff --git a/include/hw/virtio/vhost-backend.h b/include/hw/virtio/vhost-backend.h
index ff94fa1734..ce58b4d2d6 100644
--- a/include/hw/virtio/vhost-backend.h
+++ b/include/hw/virtio/vhost-backend.h
@@ -163,6 +163,15 @@ typedef int (*vhost_set_device_state_fd_op)(struct vhost_dev *dev,
int *reply_fd,
Error **errp);
typedef int (*vhost_check_device_state_op)(struct vhost_dev *dev, Error **errp);
+/*
+ * Max regions is VIRTIO_MAX_SHMEM_REGIONS, so that is the maximum
+ * number of memory_sizes that will be accepted.
+ */
+typedef int (*vhost_get_shmem_config_op)(struct vhost_dev *dev,
+ int *nregions,
+ uint64_t *memory_sizes,
+ Error **errp);
+
typedef struct VhostOps {
VhostBackendType backend_type;
@@ -220,6 +229,7 @@ typedef struct VhostOps {
vhost_supports_device_state_op vhost_supports_device_state;
vhost_set_device_state_fd_op vhost_set_device_state_fd;
vhost_check_device_state_op vhost_check_device_state;
+ vhost_get_shmem_config_op vhost_get_shmem_config;
} VhostOps;
int vhost_backend_update_device_iotlb(struct vhost_dev *dev,
diff --git a/include/hw/virtio/vhost-user.h b/include/hw/virtio/vhost-user.h
index 55d5725ef8..8ac2120cfd 100644
--- a/include/hw/virtio/vhost-user.h
+++ b/include/hw/virtio/vhost-user.h
@@ -32,6 +32,7 @@ enum VhostUserProtocolFeature {
/* Feature 17 reserved for VHOST_USER_PROTOCOL_F_XEN_MMAP. */
VHOST_USER_PROTOCOL_F_SHARED_OBJECT = 18,
VHOST_USER_PROTOCOL_F_DEVICE_STATE = 19,
+ VHOST_USER_PROTOCOL_F_SHMEM = 20,
VHOST_USER_PROTOCOL_F_MAX
};
diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
index 40d881ca09..9aef913af0 100644
--- a/include/hw/virtio/virtio.h
+++ b/include/hw/virtio/virtio.h
@@ -82,6 +82,8 @@ typedef struct VirtQueueElement
#define VIRTIO_NO_VECTOR 0xffff
+#define VIRTIO_MAX_SHMEM_REGIONS 256
+
/* special index value used internally for config irqs */
#define VIRTIO_CONFIG_IRQ_IDX -1
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v12 5/7] vhost_user.rst: Add GET_SHMEM_CONFIG message
2026-02-04 9:37 [PATCH v12 2/7] vhost_user.rst: Align VhostUserMsg excerpt members Albert Esteve
2026-02-04 9:37 ` [PATCH v12 3/7] vhost_user.rst: Add SHMEM_MAP/_UNMAP to spec Albert Esteve
2026-02-04 9:37 ` [PATCH v12 4/7] vhost_user: Add frontend get_shmem_config command Albert Esteve
@ 2026-02-04 9:37 ` Albert Esteve
2026-02-05 13:55 ` Alyssa Ross
2026-02-04 9:37 ` [PATCH v12 6/7] qmp: add shmem feature map Albert Esteve
` (2 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Albert Esteve @ 2026-02-04 9:37 UTC (permalink / raw)
To: qemu-devel
Cc: jasowang, slp, hi, Pierrick Bouvier, Laurent Vivier,
manos.pitsidianakis, stevensd, dbassey, Stefano Garzarella,
Fabiano Rosas, Philippe Mathieu-Daudé, Peter Xu, stefanha,
Alex Bennée, mst, Paolo Bonzini
Add GET_SHMEM_CONFIG vhost-user frontend
message to the spec documentation.
Reviewed-by: Alyssa Ross <hi@alyssa.is>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Albert Esteve <aesteve@redhat.com>
---
docs/interop/vhost-user.rst | 41 +++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/docs/interop/vhost-user.rst b/docs/interop/vhost-user.rst
index 6c1d66d7d3..e314313806 100644
--- a/docs/interop/vhost-user.rst
+++ b/docs/interop/vhost-user.rst
@@ -371,6 +371,22 @@ MMAP request
- 0: Pages are mapped read-only
- 1: Pages are mapped read-write
+VIRTIO Shared Memory Region configuration
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
++-------------+---------+------------+----+--------------+
+| num regions | padding | mem size 0 | .. | mem size 255 |
++-------------+---------+------------+----+--------------+
+
+:num regions: a 32-bit number of regions
+
+:padding: 32-bit
+
+:mem size: an array of 256 64-bit fields representing the size of each
+ VIRTIO Shared Memory Region. ``num regions`` specifies the
+ number of valid regions (non-zero size). The array index
+ corresponds to the shared memory ID (shmid).
+
C structure
-----------
@@ -397,6 +413,7 @@ In QEMU the vhost-user message is implemented with the following struct:
VhostUserShared object;
VhostUserTransferDeviceState transfer_state;
VhostUserMMap mmap;
+ VhostUserShMemConfig shmem;
};
} QEMU_PACKED VhostUserMsg;
@@ -1761,6 +1778,30 @@ Front-end message types
Using this function requires prior negotiation of the
``VHOST_USER_PROTOCOL_F_DEVICE_STATE`` feature.
+``VHOST_USER_GET_SHMEM_CONFIG``
+ :id: 44
+ :equivalent ioctl: N/A
+ :request payload: N/A
+ :reply payload: ``struct VhostUserShMemConfig``
+
+ When the ``VHOST_USER_PROTOCOL_F_SHMEM`` protocol feature has been
+ successfully negotiated, this message can be submitted by the front-end
+ to gather the VIRTIO Shared Memory Region configuration. The back-end will
+ respond with the number of VIRTIO Shared Memory Regions it requires, and
+ each shared memory region size in an array. The shared memory IDs are
+ represented by the array index. The information returned shall comply
+ with the following rules:
+
+ * The shared information will remain valid and unchanged for the entire
+ lifetime of the connection.
+
+ * The Shared Memory Region size must be a multiple of the page size
+ supported by mmap(2).
+
+ * The size may be 0 if the region is unused. This can happen when the
+ device does not support an optional feature but does support a feature
+ that uses a higher shmid.
+
Back-end message types
----------------------
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v12 6/7] qmp: add shmem feature map
2026-02-04 9:37 [PATCH v12 2/7] vhost_user.rst: Align VhostUserMsg excerpt members Albert Esteve
` (2 preceding siblings ...)
2026-02-04 9:37 ` [PATCH v12 5/7] vhost_user.rst: Add GET_SHMEM_CONFIG message Albert Esteve
@ 2026-02-04 9:37 ` Albert Esteve
2026-02-04 9:37 ` [PATCH v12 7/7] vhost-user-device: Add shared memory BAR Albert Esteve
2026-02-08 17:18 ` [PATCH v12 2/7] vhost_user.rst: Align VhostUserMsg excerpt members Michael S. Tsirkin
5 siblings, 0 replies; 13+ messages in thread
From: Albert Esteve @ 2026-02-04 9:37 UTC (permalink / raw)
To: qemu-devel
Cc: jasowang, slp, hi, Pierrick Bouvier, Laurent Vivier,
manos.pitsidianakis, stevensd, dbassey, Stefano Garzarella,
Fabiano Rosas, Philippe Mathieu-Daudé, Peter Xu, stefanha,
Alex Bennée, mst, Paolo Bonzini
Add new vhost-user protocol
VHOST_USER_PROTOCOL_F_SHMEM feature to
feature map.
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Albert Esteve <aesteve@redhat.com>
---
hw/virtio/virtio-qmp.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hw/virtio/virtio-qmp.c b/hw/virtio/virtio-qmp.c
index 968299fda0..e3d0a10a59 100644
--- a/hw/virtio/virtio-qmp.c
+++ b/hw/virtio/virtio-qmp.c
@@ -127,6 +127,9 @@ static const qmp_virtio_feature_map_t vhost_user_protocol_map[] = {
FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_DEVICE_STATE, \
"VHOST_USER_PROTOCOL_F_DEVICE_STATE: Backend device state transfer "
"supported"),
+ FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_SHMEM, \
+ "VHOST_USER_PROTOCOL_F_SHMEM: Backend shared memory mapping "
+ "supported"),
{ -1, "" }
};
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v12 7/7] vhost-user-device: Add shared memory BAR
2026-02-04 9:37 [PATCH v12 2/7] vhost_user.rst: Align VhostUserMsg excerpt members Albert Esteve
` (3 preceding siblings ...)
2026-02-04 9:37 ` [PATCH v12 6/7] qmp: add shmem feature map Albert Esteve
@ 2026-02-04 9:37 ` Albert Esteve
2026-02-08 17:18 ` [PATCH v12 2/7] vhost_user.rst: Align VhostUserMsg excerpt members Michael S. Tsirkin
5 siblings, 0 replies; 13+ messages in thread
From: Albert Esteve @ 2026-02-04 9:37 UTC (permalink / raw)
To: qemu-devel
Cc: jasowang, slp, hi, Pierrick Bouvier, Laurent Vivier,
manos.pitsidianakis, stevensd, dbassey, Stefano Garzarella,
Fabiano Rosas, Philippe Mathieu-Daudé, Peter Xu, stefanha,
Alex Bennée, mst, Paolo Bonzini
Add shared memory BAR support to vhost-user-device-pci
to enable direct file mapping for VIRTIO Shared
Memory Regions.
The implementation creates a consolidated shared
memory BAR that contains all VIRTIO Shared
Memory Regions as subregions. Each region is
configured with its proper shmid, size, and
offset within the BAR. The number and size of
regions are retrieved via VHOST_USER_GET_SHMEM_CONFIG
message sent by vhost-user-base during realization
after virtio_init().
Specifiically, it uses BAR 3 to avoid conflicts, as
it is currently unused.
The shared memory BAR is only created when the
backend supports VHOST_USER_PROTOCOL_F_SHMEM and
has configured shared memory regions. This maintains
backward compatibility with backends that do not
support shared memory functionality.
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Albert Esteve <aesteve@redhat.com>
---
hw/virtio/vhost-user-base.c | 46 ++++++++++++++++++++++++--
hw/virtio/vhost-user-test-device-pci.c | 38 +++++++++++++++++++--
2 files changed, 79 insertions(+), 5 deletions(-)
diff --git a/hw/virtio/vhost-user-base.c b/hw/virtio/vhost-user-base.c
index 01ab9ca56b..e5e8abae96 100644
--- a/hw/virtio/vhost-user-base.c
+++ b/hw/virtio/vhost-user-base.c
@@ -16,6 +16,7 @@
#include "hw/virtio/virtio-bus.h"
#include "hw/virtio/vhost-user-base.h"
#include "qemu/error-report.h"
+#include "migration/blocker.h"
static void vub_start(VirtIODevice *vdev)
{
@@ -276,7 +277,8 @@ static void vub_device_realize(DeviceState *dev, Error **errp)
{
VirtIODevice *vdev = VIRTIO_DEVICE(dev);
VHostUserBase *vub = VHOST_USER_BASE(dev);
- int ret;
+ uint64_t memory_sizes[VIRTIO_MAX_SHMEM_REGIONS];
+ int i, ret, nregions, regions_processed = 0;
if (!vub->chardev.chr) {
error_setg(errp, "vhost-user-base: missing chardev");
@@ -319,7 +321,7 @@ static void vub_device_realize(DeviceState *dev, Error **errp)
/* Allocate queues */
vub->vqs = g_ptr_array_sized_new(vub->num_vqs);
- for (int i = 0; i < vub->num_vqs; i++) {
+ for (i = 0; i < vub->num_vqs; i++) {
g_ptr_array_add(vub->vqs,
virtio_add_queue(vdev, vub->vq_size,
vub_handle_output));
@@ -333,11 +335,49 @@ static void vub_device_realize(DeviceState *dev, Error **errp)
VHOST_BACKEND_TYPE_USER, 0, errp);
if (ret < 0) {
- do_vhost_user_cleanup(vdev, vub);
+ goto err;
+ }
+
+ ret = vub->vhost_dev.vhost_ops->vhost_get_shmem_config(&vub->vhost_dev,
+ &nregions,
+ memory_sizes,
+ errp);
+
+ if (ret < 0) {
+ goto err;
+ }
+
+ for (i = 0; i < VIRTIO_MAX_SHMEM_REGIONS && regions_processed < nregions; i++) {
+ if (memory_sizes[i]) {
+ regions_processed++;
+ if (vub->vhost_dev.migration_blocker == NULL) {
+ error_setg(&vub->vhost_dev.migration_blocker,
+ "Migration disabled: devices with VIRTIO Shared Memory "
+ "Regions do not support migration yet.");
+ ret = migrate_add_blocker_normal(
+ &vub->vhost_dev.migration_blocker,
+ errp);
+
+ if (ret < 0) {
+ goto err;
+ }
+ }
+
+ if (memory_sizes[i] % qemu_real_host_page_size() != 0) {
+ error_setg(errp, "Shared memory %d size must be a power of 2 "
+ "no smaller than the page size", i);
+ goto err;
+ }
+
+ virtio_new_shmem_region(vdev, i, memory_sizes[i]);
+ }
}
qemu_chr_fe_set_handlers(&vub->chardev, NULL, NULL, vub_event, NULL,
dev, NULL, true);
+ return;
+err:
+ do_vhost_user_cleanup(vdev, vub);
}
static void vub_device_unrealize(DeviceState *dev)
diff --git a/hw/virtio/vhost-user-test-device-pci.c b/hw/virtio/vhost-user-test-device-pci.c
index 7f6d751690..22678e3277 100644
--- a/hw/virtio/vhost-user-test-device-pci.c
+++ b/hw/virtio/vhost-user-test-device-pci.c
@@ -12,10 +12,13 @@
#include "hw/virtio/vhost-user-base.h"
#include "hw/virtio/virtio-pci.h"
+#define VIRTIO_DEVICE_PCI_SHMEM_BAR 4
+
struct VHostUserDevicePCI {
VirtIOPCIProxy parent_obj;
VHostUserBase vub;
+ MemoryRegion shmembar;
};
#define TYPE_VHOST_USER_TEST_DEVICE_PCI "vhost-user-test-device-pci-base"
@@ -25,10 +28,41 @@ OBJECT_DECLARE_SIMPLE_TYPE(VHostUserDevicePCI, VHOST_USER_TEST_DEVICE_PCI)
static void vhost_user_device_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
{
VHostUserDevicePCI *dev = VHOST_USER_TEST_DEVICE_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vub);
+ DeviceState *dev_state = DEVICE(&dev->vub);
+ VirtIODevice *vdev = VIRTIO_DEVICE(dev_state);
+ VirtioSharedMemory *shmem, *next;
+ uint64_t offset = 0, shmem_size = 0;
+ vpci_dev->modern_mem_bar_idx = 2;
vpci_dev->nvectors = 1;
- qdev_realize(vdev, BUS(&vpci_dev->bus), errp);
+ qdev_realize(dev_state, BUS(&vpci_dev->bus), errp);
+
+ QSIMPLEQ_FOREACH_SAFE(shmem, &vdev->shmem_list, entry, next) {
+ if (shmem->mr.size > UINT64_MAX - shmem_size) {
+ error_setg(errp, "Total shared memory required overflow");
+ return;
+ }
+ shmem_size = shmem_size + shmem->mr.size;
+ }
+ if (shmem_size) {
+ if (vpci_dev->flags & VIRTIO_PCI_FLAG_MODERN_PIO_NOTIFY) {
+ error_setg(errp, "modern-pio-notify is not supported due to PCI BAR layout limitations");
+ return;
+ }
+ memory_region_init(&dev->shmembar, OBJECT(vpci_dev),
+ "vhost-device-pci-shmembar", shmem_size);
+ QSIMPLEQ_FOREACH_SAFE(shmem, &vdev->shmem_list, entry, next) {
+ memory_region_add_subregion(&dev->shmembar, offset, &shmem->mr);
+ virtio_pci_add_shm_cap(vpci_dev, VIRTIO_DEVICE_PCI_SHMEM_BAR,
+ offset, shmem->mr.size, shmem->shmid);
+ offset = offset + shmem->mr.size;
+ }
+ pci_register_bar(&vpci_dev->pci_dev, VIRTIO_DEVICE_PCI_SHMEM_BAR,
+ PCI_BASE_ADDRESS_SPACE_MEMORY |
+ PCI_BASE_ADDRESS_MEM_PREFETCH |
+ PCI_BASE_ADDRESS_MEM_TYPE_64,
+ &dev->shmembar);
+ }
}
static void vhost_user_device_pci_class_init(ObjectClass *klass,
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v12 3/7] vhost_user.rst: Add SHMEM_MAP/_UNMAP to spec
2026-02-04 9:37 ` [PATCH v12 3/7] vhost_user.rst: Add SHMEM_MAP/_UNMAP to spec Albert Esteve
@ 2026-02-05 13:53 ` Alyssa Ross
2026-02-09 8:38 ` Albert Esteve
0 siblings, 1 reply; 13+ messages in thread
From: Alyssa Ross @ 2026-02-05 13:53 UTC (permalink / raw)
To: Albert Esteve, qemu-devel
Cc: jasowang, slp, Pierrick Bouvier, Laurent Vivier,
manos.pitsidianakis, stevensd, dbassey, Stefano Garzarella,
Fabiano Rosas, Philippe Mathieu-Daudé, Peter Xu, stefanha,
Alex Bennée, mst, Paolo Bonzini
[-- Attachment #1: Type: text/plain, Size: 2210 bytes --]
Albert Esteve <aesteve@redhat.com> writes:
> +``VHOST_USER_BACKEND_SHMEM_MAP``
> + :id: 9
> + :equivalent ioctl: N/A
> + :request payload: fd and ``struct VhostUserMMap``
> + :reply payload: N/A
> +
> + When the ``VHOST_USER_PROTOCOL_F_SHMEM`` protocol feature has been
> + successfully negotiated, this message can be submitted by the backends to
> + advertise a new mapping to be made in a given VIRTIO Shared Memory Region.
> + Upon receiving the message, the front-end will mmap the given fd into the
> + VIRTIO Shared Memory Region with the requested ``shmid``.
> + If ``VHOST_USER_PROTOCOL_F_REPLY_ACK`` is negotiated, and
> + back-end set the ``VHOST_USER_NEED_REPLY`` flag, the front-end
> + must respond with zero when operation is successfully completed,
> + or non-zero otherwise.
> +
> + Mapping over an already existing map is not allowed and requests shall fail.
> + Therefore, the memory range in the request must correspond with a valid,
> + free region of the VIRTIO Shared Memory Region. Also, note that mappings
> + consume resources and that the request can fail when there are no resources
> + available. Lastly, mappings are automatically unmapped by the front-end
> + across device reset operation.
> +
> +``VHOST_USER_BACKEND_SHMEM_UNMAP``
> + :id: 10
> + :equivalent ioctl: N/A
> + :request payload: ``struct VhostUserMMap``
> + :reply payload: N/A
> +
> + When the ``VHOST_USER_PROTOCOL_F_SHMEM`` protocol feature has been
> + successfully negotiated, this message can be submitted by the backends so
> + that the front-end un-mmaps a given range (``shm_offset``, ``len``) in the
> + VIRTIO Shared Memory Region with the requested ``shmid``. Note that the
> + given range shall correspond to the entirety of a valid mapped region.
> + A reply is generated indicating whether unmapping succeeded.
Shouldn't this be phrased like VHOST_USER_BACKEND_SHMEM_MAP above,
since as we've established replies are only generated if negotiated?
If ``VHOST_USER_PROTOCOL_F_REPLY_ACK`` is negotiated, and the back-end
sets the ``VHOST_USER_NEED_REPLY`` flag, the front-end must respond with
zero when operation is successfully completed, or non-zero otherwise.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v12 5/7] vhost_user.rst: Add GET_SHMEM_CONFIG message
2026-02-04 9:37 ` [PATCH v12 5/7] vhost_user.rst: Add GET_SHMEM_CONFIG message Albert Esteve
@ 2026-02-05 13:55 ` Alyssa Ross
2026-02-09 8:43 ` Albert Esteve
0 siblings, 1 reply; 13+ messages in thread
From: Alyssa Ross @ 2026-02-05 13:55 UTC (permalink / raw)
To: Albert Esteve, qemu-devel
Cc: jasowang, slp, Pierrick Bouvier, Laurent Vivier,
manos.pitsidianakis, stevensd, dbassey, Stefano Garzarella,
Fabiano Rosas, Philippe Mathieu-Daudé, Peter Xu, stefanha,
Alex Bennée, mst, Paolo Bonzini
[-- Attachment #1: Type: text/plain, Size: 3136 bytes --]
Albert Esteve <aesteve@redhat.com> writes:
> Add GET_SHMEM_CONFIG vhost-user frontend
> message to the spec documentation.
>
> Reviewed-by: Alyssa Ross <hi@alyssa.is>
> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
> Signed-off-by: Albert Esteve <aesteve@redhat.com>
> ---
> docs/interop/vhost-user.rst | 41 +++++++++++++++++++++++++++++++++++++
> 1 file changed, 41 insertions(+)
>
> diff --git a/docs/interop/vhost-user.rst b/docs/interop/vhost-user.rst
> index 6c1d66d7d3..e314313806 100644
> --- a/docs/interop/vhost-user.rst
> +++ b/docs/interop/vhost-user.rst
> @@ -371,6 +371,22 @@ MMAP request
> - 0: Pages are mapped read-only
> - 1: Pages are mapped read-write
>
> +VIRTIO Shared Memory Region configuration
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> +
> ++-------------+---------+------------+----+--------------+
> +| num regions | padding | mem size 0 | .. | mem size 255 |
> ++-------------+---------+------------+----+--------------+
> +
> +:num regions: a 32-bit number of regions
> +
> +:padding: 32-bit
> +
> +:mem size: an array of 256 64-bit fields representing the size of each
> + VIRTIO Shared Memory Region. ``num regions`` specifies the
> + number of valid regions (non-zero size). The array index
> + corresponds to the shared memory ID (shmid).
> +
> C structure
> -----------
>
> @@ -397,6 +413,7 @@ In QEMU the vhost-user message is implemented with the following struct:
> VhostUserShared object;
> VhostUserTransferDeviceState transfer_state;
> VhostUserMMap mmap;
> + VhostUserShMemConfig shmem;
> };
> } QEMU_PACKED VhostUserMsg;
>
> @@ -1761,6 +1778,30 @@ Front-end message types
> Using this function requires prior negotiation of the
> ``VHOST_USER_PROTOCOL_F_DEVICE_STATE`` feature.
>
> +``VHOST_USER_GET_SHMEM_CONFIG``
> + :id: 44
> + :equivalent ioctl: N/A
> + :request payload: N/A
> + :reply payload: ``struct VhostUserShMemConfig``
> +
> + When the ``VHOST_USER_PROTOCOL_F_SHMEM`` protocol feature has been
> + successfully negotiated, this message can be submitted by the front-end
> + to gather the VIRTIO Shared Memory Region configuration. The back-end will
> + respond with the number of VIRTIO Shared Memory Regions it requires, and
> + each shared memory region size in an array. The shared memory IDs are
> + represented by the array index. The information returned shall comply
> + with the following rules:
> +
> + * The shared information will remain valid and unchanged for the entire
> + lifetime of the connection.
> +
> + * The Shared Memory Region size must be a multiple of the page size
> + supported by mmap(2).
> +
> + * The size may be 0 if the region is unused. This can happen when the
> + device does not support an optional feature but does support a feature
> + that uses a higher shmid.
This is still phrased as if unused regions after the last used one can
be ommitted. If 256 sizes are always sent, then size must be 0 for all
unused regions.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v12 2/7] vhost_user.rst: Align VhostUserMsg excerpt members
2026-02-04 9:37 [PATCH v12 2/7] vhost_user.rst: Align VhostUserMsg excerpt members Albert Esteve
` (4 preceding siblings ...)
2026-02-04 9:37 ` [PATCH v12 7/7] vhost-user-device: Add shared memory BAR Albert Esteve
@ 2026-02-08 17:18 ` Michael S. Tsirkin
2026-02-09 8:32 ` Albert Esteve
5 siblings, 1 reply; 13+ messages in thread
From: Michael S. Tsirkin @ 2026-02-08 17:18 UTC (permalink / raw)
To: Albert Esteve
Cc: qemu-devel, jasowang, slp, hi, Pierrick Bouvier, Laurent Vivier,
manos.pitsidianakis, stevensd, dbassey, Stefano Garzarella,
Fabiano Rosas, Philippe Mathieu-Daudé, Peter Xu, stefanha,
Alex Bennée, Paolo Bonzini
thread borken.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v12 2/7] vhost_user.rst: Align VhostUserMsg excerpt members
2026-02-08 17:18 ` [PATCH v12 2/7] vhost_user.rst: Align VhostUserMsg excerpt members Michael S. Tsirkin
@ 2026-02-09 8:32 ` Albert Esteve
0 siblings, 0 replies; 13+ messages in thread
From: Albert Esteve @ 2026-02-09 8:32 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: qemu-devel, jasowang, slp, hi, Pierrick Bouvier, Laurent Vivier,
manos.pitsidianakis, stevensd, dbassey, Stefano Garzarella,
Fabiano Rosas, Philippe Mathieu-Daudé, Peter Xu, stefanha,
Alex Bennée, Paolo Bonzini
On Sun, Feb 8, 2026 at 6:18 PM Michael S. Tsirkin <mst@redhat.com> wrote:
>
> thread borken.
Yeah broke because david's email does no longer exist and so had to
unset auto-cc for R-b lines :(
I sent the rest in a different thread here
https://lore.kernel.org/qemu-devel/20260204093758.1250167-1-aesteve@redhat.com/T/#t
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v12 3/7] vhost_user.rst: Add SHMEM_MAP/_UNMAP to spec
2026-02-05 13:53 ` Alyssa Ross
@ 2026-02-09 8:38 ` Albert Esteve
0 siblings, 0 replies; 13+ messages in thread
From: Albert Esteve @ 2026-02-09 8:38 UTC (permalink / raw)
To: Alyssa Ross
Cc: qemu-devel, jasowang, slp, Pierrick Bouvier, Laurent Vivier,
manos.pitsidianakis, stevensd, dbassey, Stefano Garzarella,
Fabiano Rosas, Philippe Mathieu-Daudé, Peter Xu, stefanha,
Alex Bennée, mst, Paolo Bonzini
On Sat, Feb 7, 2026 at 8:05 PM Alyssa Ross <hi@alyssa.is> wrote:
>
> Albert Esteve <aesteve@redhat.com> writes:
>
> > +``VHOST_USER_BACKEND_SHMEM_MAP``
> > + :id: 9
> > + :equivalent ioctl: N/A
> > + :request payload: fd and ``struct VhostUserMMap``
> > + :reply payload: N/A
> > +
> > + When the ``VHOST_USER_PROTOCOL_F_SHMEM`` protocol feature has been
> > + successfully negotiated, this message can be submitted by the backends to
> > + advertise a new mapping to be made in a given VIRTIO Shared Memory Region.
> > + Upon receiving the message, the front-end will mmap the given fd into the
> > + VIRTIO Shared Memory Region with the requested ``shmid``.
> > + If ``VHOST_USER_PROTOCOL_F_REPLY_ACK`` is negotiated, and
> > + back-end set the ``VHOST_USER_NEED_REPLY`` flag, the front-end
> > + must respond with zero when operation is successfully completed,
> > + or non-zero otherwise.
> > +
> > + Mapping over an already existing map is not allowed and requests shall fail.
> > + Therefore, the memory range in the request must correspond with a valid,
> > + free region of the VIRTIO Shared Memory Region. Also, note that mappings
> > + consume resources and that the request can fail when there are no resources
> > + available. Lastly, mappings are automatically unmapped by the front-end
> > + across device reset operation.
> > +
> > +``VHOST_USER_BACKEND_SHMEM_UNMAP``
> > + :id: 10
> > + :equivalent ioctl: N/A
> > + :request payload: ``struct VhostUserMMap``
> > + :reply payload: N/A
> > +
> > + When the ``VHOST_USER_PROTOCOL_F_SHMEM`` protocol feature has been
> > + successfully negotiated, this message can be submitted by the backends so
> > + that the front-end un-mmaps a given range (``shm_offset``, ``len``) in the
> > + VIRTIO Shared Memory Region with the requested ``shmid``. Note that the
> > + given range shall correspond to the entirety of a valid mapped region.
> > + A reply is generated indicating whether unmapping succeeded.
>
> Shouldn't this be phrased like VHOST_USER_BACKEND_SHMEM_MAP above,
> since as we've established replies are only generated if negotiated?
Right, it would be more clear and consistent. The code includes the
check so it is just missing clarification here in specs. I will change
it.
Since the patch missed the recent PULL due to build issues, I will
wait a few days to give time for the community to review and send a
new version with this fixed.
>
> If ``VHOST_USER_PROTOCOL_F_REPLY_ACK`` is negotiated, and the back-end
> sets the ``VHOST_USER_NEED_REPLY`` flag, the front-end must respond with
> zero when operation is successfully completed, or non-zero otherwise.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v12 5/7] vhost_user.rst: Add GET_SHMEM_CONFIG message
2026-02-05 13:55 ` Alyssa Ross
@ 2026-02-09 8:43 ` Albert Esteve
2026-02-09 11:39 ` Alyssa Ross
0 siblings, 1 reply; 13+ messages in thread
From: Albert Esteve @ 2026-02-09 8:43 UTC (permalink / raw)
To: Alyssa Ross
Cc: qemu-devel, jasowang, slp, Pierrick Bouvier, Laurent Vivier,
manos.pitsidianakis, stevensd, dbassey, Stefano Garzarella,
Fabiano Rosas, Philippe Mathieu-Daudé, Peter Xu, stefanha,
Alex Bennée, mst, Paolo Bonzini
On Sat, Feb 7, 2026 at 8:05 PM Alyssa Ross <hi@alyssa.is> wrote:
>
> Albert Esteve <aesteve@redhat.com> writes:
>
> > Add GET_SHMEM_CONFIG vhost-user frontend
> > message to the spec documentation.
> >
> > Reviewed-by: Alyssa Ross <hi@alyssa.is>
> > Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
> > Signed-off-by: Albert Esteve <aesteve@redhat.com>
> > ---
> > docs/interop/vhost-user.rst | 41 +++++++++++++++++++++++++++++++++++++
> > 1 file changed, 41 insertions(+)
> >
> > diff --git a/docs/interop/vhost-user.rst b/docs/interop/vhost-user.rst
> > index 6c1d66d7d3..e314313806 100644
> > --- a/docs/interop/vhost-user.rst
> > +++ b/docs/interop/vhost-user.rst
> > @@ -371,6 +371,22 @@ MMAP request
> > - 0: Pages are mapped read-only
> > - 1: Pages are mapped read-write
> >
> > +VIRTIO Shared Memory Region configuration
> > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > +
> > ++-------------+---------+------------+----+--------------+
> > +| num regions | padding | mem size 0 | .. | mem size 255 |
> > ++-------------+---------+------------+----+--------------+
> > +
> > +:num regions: a 32-bit number of regions
> > +
> > +:padding: 32-bit
> > +
> > +:mem size: an array of 256 64-bit fields representing the size of each
> > + VIRTIO Shared Memory Region. ``num regions`` specifies the
> > + number of valid regions (non-zero size). The array index
> > + corresponds to the shared memory ID (shmid).
> > +
> > C structure
> > -----------
> >
> > @@ -397,6 +413,7 @@ In QEMU the vhost-user message is implemented with the following struct:
> > VhostUserShared object;
> > VhostUserTransferDeviceState transfer_state;
> > VhostUserMMap mmap;
> > + VhostUserShMemConfig shmem;
> > };
> > } QEMU_PACKED VhostUserMsg;
> >
> > @@ -1761,6 +1778,30 @@ Front-end message types
> > Using this function requires prior negotiation of the
> > ``VHOST_USER_PROTOCOL_F_DEVICE_STATE`` feature.
> >
> > +``VHOST_USER_GET_SHMEM_CONFIG``
> > + :id: 44
> > + :equivalent ioctl: N/A
> > + :request payload: N/A
> > + :reply payload: ``struct VhostUserShMemConfig``
> > +
> > + When the ``VHOST_USER_PROTOCOL_F_SHMEM`` protocol feature has been
> > + successfully negotiated, this message can be submitted by the front-end
> > + to gather the VIRTIO Shared Memory Region configuration. The back-end will
> > + respond with the number of VIRTIO Shared Memory Regions it requires, and
> > + each shared memory region size in an array. The shared memory IDs are
> > + represented by the array index. The information returned shall comply
> > + with the following rules:
> > +
> > + * The shared information will remain valid and unchanged for the entire
> > + lifetime of the connection.
> > +
> > + * The Shared Memory Region size must be a multiple of the page size
> > + supported by mmap(2).
> > +
> > + * The size may be 0 if the region is unused. This can happen when the
> > + device does not support an optional feature but does support a feature
> > + that uses a higher shmid.
>
> This is still phrased as if unused regions after the last used one can
> be ommitted. If 256 sizes are always sent, then size must be 0 for all
> unused regions.
Had to read it a couple of times to see what you meant. But yeah, it
implies that a zero is always followed by some valid region and is not
always the case. I guess I can keep only the first sentence and delete
the rest.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v12 5/7] vhost_user.rst: Add GET_SHMEM_CONFIG message
2026-02-09 8:43 ` Albert Esteve
@ 2026-02-09 11:39 ` Alyssa Ross
0 siblings, 0 replies; 13+ messages in thread
From: Alyssa Ross @ 2026-02-09 11:39 UTC (permalink / raw)
To: Albert Esteve
Cc: qemu-devel, jasowang, slp, Pierrick Bouvier, Laurent Vivier,
manos.pitsidianakis, stevensd, dbassey, Stefano Garzarella,
Fabiano Rosas, Philippe Mathieu-Daudé, Peter Xu, stefanha,
Alex Bennée, mst, Paolo Bonzini
[-- Attachment #1: Type: text/plain, Size: 3738 bytes --]
Albert Esteve <aesteve@redhat.com> writes:
> On Sat, Feb 7, 2026 at 8:05 PM Alyssa Ross <hi@alyssa.is> wrote:
>>
>> Albert Esteve <aesteve@redhat.com> writes:
>>
>> > Add GET_SHMEM_CONFIG vhost-user frontend
>> > message to the spec documentation.
>> >
>> > Reviewed-by: Alyssa Ross <hi@alyssa.is>
>> > Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
>> > Signed-off-by: Albert Esteve <aesteve@redhat.com>
>> > ---
>> > docs/interop/vhost-user.rst | 41 +++++++++++++++++++++++++++++++++++++
>> > 1 file changed, 41 insertions(+)
>> >
>> > diff --git a/docs/interop/vhost-user.rst b/docs/interop/vhost-user.rst
>> > index 6c1d66d7d3..e314313806 100644
>> > --- a/docs/interop/vhost-user.rst
>> > +++ b/docs/interop/vhost-user.rst
>> > @@ -371,6 +371,22 @@ MMAP request
>> > - 0: Pages are mapped read-only
>> > - 1: Pages are mapped read-write
>> >
>> > +VIRTIO Shared Memory Region configuration
>> > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>> > +
>> > ++-------------+---------+------------+----+--------------+
>> > +| num regions | padding | mem size 0 | .. | mem size 255 |
>> > ++-------------+---------+------------+----+--------------+
>> > +
>> > +:num regions: a 32-bit number of regions
>> > +
>> > +:padding: 32-bit
>> > +
>> > +:mem size: an array of 256 64-bit fields representing the size of each
>> > + VIRTIO Shared Memory Region. ``num regions`` specifies the
>> > + number of valid regions (non-zero size). The array index
>> > + corresponds to the shared memory ID (shmid).
>> > +
>> > C structure
>> > -----------
>> >
>> > @@ -397,6 +413,7 @@ In QEMU the vhost-user message is implemented with the following struct:
>> > VhostUserShared object;
>> > VhostUserTransferDeviceState transfer_state;
>> > VhostUserMMap mmap;
>> > + VhostUserShMemConfig shmem;
>> > };
>> > } QEMU_PACKED VhostUserMsg;
>> >
>> > @@ -1761,6 +1778,30 @@ Front-end message types
>> > Using this function requires prior negotiation of the
>> > ``VHOST_USER_PROTOCOL_F_DEVICE_STATE`` feature.
>> >
>> > +``VHOST_USER_GET_SHMEM_CONFIG``
>> > + :id: 44
>> > + :equivalent ioctl: N/A
>> > + :request payload: N/A
>> > + :reply payload: ``struct VhostUserShMemConfig``
>> > +
>> > + When the ``VHOST_USER_PROTOCOL_F_SHMEM`` protocol feature has been
>> > + successfully negotiated, this message can be submitted by the front-end
>> > + to gather the VIRTIO Shared Memory Region configuration. The back-end will
>> > + respond with the number of VIRTIO Shared Memory Regions it requires, and
>> > + each shared memory region size in an array. The shared memory IDs are
>> > + represented by the array index. The information returned shall comply
>> > + with the following rules:
>> > +
>> > + * The shared information will remain valid and unchanged for the entire
>> > + lifetime of the connection.
>> > +
>> > + * The Shared Memory Region size must be a multiple of the page size
>> > + supported by mmap(2).
>> > +
>> > + * The size may be 0 if the region is unused. This can happen when the
>> > + device does not support an optional feature but does support a feature
>> > + that uses a higher shmid.
>>
>> This is still phrased as if unused regions after the last used one can
>> be ommitted. If 256 sizes are always sent, then size must be 0 for all
>> unused regions.
>
> Had to read it a couple of times to see what you meant. But yeah, it
> implies that a zero is always followed by some valid region and is not
> always the case. I guess I can keep only the first sentence and delete
> the rest.
Sounds good to me.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2026-02-09 13:34 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-04 9:37 [PATCH v12 2/7] vhost_user.rst: Align VhostUserMsg excerpt members Albert Esteve
2026-02-04 9:37 ` [PATCH v12 3/7] vhost_user.rst: Add SHMEM_MAP/_UNMAP to spec Albert Esteve
2026-02-05 13:53 ` Alyssa Ross
2026-02-09 8:38 ` Albert Esteve
2026-02-04 9:37 ` [PATCH v12 4/7] vhost_user: Add frontend get_shmem_config command Albert Esteve
2026-02-04 9:37 ` [PATCH v12 5/7] vhost_user.rst: Add GET_SHMEM_CONFIG message Albert Esteve
2026-02-05 13:55 ` Alyssa Ross
2026-02-09 8:43 ` Albert Esteve
2026-02-09 11:39 ` Alyssa Ross
2026-02-04 9:37 ` [PATCH v12 6/7] qmp: add shmem feature map Albert Esteve
2026-02-04 9:37 ` [PATCH v12 7/7] vhost-user-device: Add shared memory BAR Albert Esteve
2026-02-08 17:18 ` [PATCH v12 2/7] vhost_user.rst: Align VhostUserMsg excerpt members Michael S. Tsirkin
2026-02-09 8:32 ` Albert Esteve
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.