docs: vhost-user: Define memory region separately

The same layout is defined twice, once in "single memory region
description" and then in "memory regions description".

Separate out details of memory region from these two and reuse the same
definition later on.

While at it, also rename "memory regions description" to "multiple
memory regions description", to avoid potential confusion around similar
names. And define single region before multiple ones.

This is just a documentation optimization, the protocol remains the same.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Message-Id: <7c3718e5eb99178b22696682ae73aca6df1899c7.1678351495.git.viresh.kumar@linaro.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
This commit is contained in:
Viresh Kumar 2023-03-09 14:21:00 +05:30 committed by Michael S. Tsirkin
parent 560a997535
commit 17c67f6849
1 changed files with 18 additions and 21 deletions

View File

@ -130,18 +130,8 @@ A vring address description
Note that a ring address is an IOVA if ``VIRTIO_F_IOMMU_PLATFORM`` has
been negotiated. Otherwise it is a user address.
Memory regions description
^^^^^^^^^^^^^^^^^^^^^^^^^^
+-------------+---------+---------+-----+---------+
| num regions | padding | region0 | ... | region7 |
+-------------+---------+---------+-----+---------+
:num regions: a 32-bit number of regions
:padding: 32-bit
A region is:
Memory region description
^^^^^^^^^^^^^^^^^^^^^^^^^
+---------------+------+--------------+-------------+
| guest address | size | user address | mmap offset |
@ -158,19 +148,26 @@ A region is:
Single memory region description
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+---------+---------------+------+--------------+-------------+
| padding | guest address | size | user address | mmap offset |
+---------+---------------+------+--------------+-------------+
+---------+--------+
| padding | region |
+---------+--------+
:padding: 64-bit
:guest address: a 64-bit guest address of the region
A region is represented by Memory region description.
:size: a 64-bit size
Multiple Memory regions description
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:user address: a 64-bit user address
+-------------+---------+---------+-----+---------+
| num regions | padding | region0 | ... | region7 |
+-------------+---------+---------+-----+---------+
:mmap offset: 64-bit offset where region starts in the mapped memory
:num regions: a 32-bit number of regions
:padding: 32-bit
A region is represented by Memory region description.
Log description
^^^^^^^^^^^^^^^
@ -952,8 +949,8 @@ Front-end message types
``VHOST_USER_SET_MEM_TABLE``
:id: 5
:equivalent ioctl: ``VHOST_SET_MEM_TABLE``
:request payload: memory regions description
:reply payload: (postcopy only) memory regions description
:request payload: multiple memory regions description
:reply payload: (postcopy only) multiple memory regions description
Sets the memory map regions on the back-end so it can translate the
vring addresses. In the ancillary data there is an array of file