[PATCH v13 5/7] vhost_user.rst: Add GET_SHMEM_CONFIG message

Albert Esteve posted 7 patches 1 month, 3 weeks ago
There is a newer version of this series
[PATCH v13 5/7] vhost_user.rst: Add GET_SHMEM_CONFIG message
Posted by Albert Esteve 1 month, 3 weeks ago
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(+)

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
Re: [PATCH v13 5/7] vhost_user.rst: Add GET_SHMEM_CONFIG message
Posted by Stefano Garzarella 1 month, 1 week ago
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
>