On Thu, Feb 19, 2026 at 02:03:32PM +0100, Albert Esteve wrote:
>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 | 39 +++++++++++++++++++++++++++++++++++++
> 1 file changed, 39 insertions(+)
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
>
>diff --git a/docs/interop/vhost-user.rst b/docs/interop/vhost-user.rst
>index ae4ad6f441..77a763c7c3 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,28 @@ 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.
>+
> Back-end message types
> ----------------------
>
>--
>2.52.0
>