qemu/docs/interop
Kevin Wolf 76b1b64370 docs/vhost-user: Clarifications for VHOST_USER_ADD/REM_MEM_REG
The specification for VHOST_USER_ADD/REM_MEM_REG messages is unclear
in several points, which has led to clients having incompatible
implementations. This changes the specification to be more explicit
about them:

* VHOST_USER_ADD_MEM_REG is not specified as receiving a file
  descriptor, though it obviously does need to do so. All
  implementations agree on this one, fix the specification.

* VHOST_USER_REM_MEM_REG is not specified as receiving a file
  descriptor either, and it also has no reason to do so. rust-vmm does
  not send file descriptors for removing a memory region (in agreement
  with the specification), libvhost-user and QEMU do (which is a bug),
  though libvhost-user doesn't actually make any use of it.

  Change the specification so that for compatibility QEMU's behaviour
  becomes legal, even if discouraged, but rust-vmm's behaviour becomes
  the explicitly recommended mode of operation.

* VHOST_USER_ADD_MEM_REG doesn't have a documented return value, which
  is the desired behaviour in the non-postcopy case. It also implemented
  like this in QEMU and rust-vmm, though libvhost-user is buggy and
  sometimes sends an unexpected reply. This will be fixed in a separate
  patch.

  However, in postcopy mode it does reply like VHOST_USER_SET_MEM_TABLE.
  This behaviour is shared between libvhost-user and QEMU; rust-vmm
  doesn't implement postcopy mode yet. Mention it explicitly in the
  spec.

* The specification doesn't mention how VHOST_USER_REM_MEM_REG
  identifies the memory region to be removed. Change it to describe the
  existing behaviour of libvhost-user (guest address, user address and
  size must match).

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20220407133657.155281-2-kwolf@redhat.com>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
2022-05-16 16:15:40 -04:00
..
barrier.rst docs: Move the protocol part of barrier.txt into interop 2021-08-02 12:55:51 +01:00
bitmaps.rst docs/interop/bitmaps: use blockdev-backup 2021-11-09 18:20:47 +01:00
dbus-display.rst docs: add dbus-display documentation 2021-12-21 10:50:21 +04:00
dbus-vmstate.rst docs: move D-Bus VMState documentation to source XML 2021-12-21 10:50:21 +04:00
dbus.rst docs: add dbus-display documentation 2021-12-21 10:50:21 +04:00
firmware.json docs: expand firmware descriptor to allow flash without NVRAM 2022-02-16 18:53:26 +00:00
index.rst docs: reSTify virtio-balloon-stats documentation and move to docs/interop 2022-01-07 19:30:13 -05:00
live-block-operations.rst qapi: deprecate drive-backup 2021-11-09 18:21:19 +01:00
nbd.txt nbd/server: Allow MULTI_CONN for shared writable exports 2022-05-12 13:10:52 +02:00
parallels.txt parallels.txt: fix bitmap L1 table description 2021-03-08 14:56:54 +01:00
pr-helper.rst global: Squash 'the the' 2019-11-06 17:19:40 +01:00
prl-xml.txt docs/interop/prl-xml: description of Parallels Disk format 2018-01-22 14:02:33 +00:00
qcow2.txt docs: Spell QEMU all caps 2021-11-19 10:16:58 +01:00
qed_spec.txt docs: create interop/ subdirectory 2017-06-15 11:18:39 +02:00
qemu-ga-ref.rst docs: Remove stale TODO comments about license and version 2021-08-02 11:42:38 +01:00
qemu-ga.rst qemu-ga: document vsock-listen in the man page 2020-03-24 11:32:19 -05:00
qemu-qmp-ref.rst docs: Remove stale TODO comments about license and version 2021-08-02 11:42:38 +01:00
qemu-storage-daemon-qmp-ref.rst docs: Remove stale TODO comments about license and version 2021-08-02 11:42:38 +01:00
qmp-intro.txt docs: update to show preferred boolean syntax for -chardev 2021-02-25 14:14:33 +01:00
qmp-spec.txt docs/interop/qmp-spec: Document the request queue limit 2021-02-04 13:20:29 +01:00
vhost-user-gpu.rst docs: vhost-user: replace master/slave with front-end/back-end 2022-05-16 04:38:40 -04:00
vhost-user.json configure: Improve OpenGL dependency detections 2021-03-04 09:35:30 +01:00
vhost-user.rst docs/vhost-user: Clarifications for VHOST_USER_ADD/REM_MEM_REG 2022-05-16 16:15:40 -04:00
vhost-vdpa.rst vhost-vdpa: introduce vhost-vdpa backend 2020-07-07 07:59:51 -04:00
virtio-balloon-stats.rst docs: reSTify virtio-balloon-stats documentation and move to docs/interop 2022-01-07 19:30:13 -05:00
vnc-ledstate-Pseudo-encoding.txt docs: create interop/ subdirectory 2017-06-15 11:18:39 +02:00