aboutsummaryrefslogtreecommitdiff
path: root/docs/specs
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2015-11-17 13:55:48 +0200
committerMichael S. Tsirkin <mst@redhat.com>2015-11-17 15:41:13 +0200
commit7ebcfe569211f6ff5402b558b85e2ce1e1066cf6 (patch)
tree1afb3155e0e696c1ee8937cbb6b30c6921889a65 /docs/specs
parent5c93c47338dbaa8a21a8ccc9d95dc5ade3f7fa19 (diff)
downloadqemu-7ebcfe569211f6ff5402b558b85e2ce1e1066cf6.zip
qemu-7ebcfe569211f6ff5402b558b85e2ce1e1066cf6.tar.gz
qemu-7ebcfe569211f6ff5402b558b85e2ce1e1066cf6.tar.bz2
specs/vhost-user: fix spec to match reality
We wanted to start/stop rings on VRING_ENABLE, but that is not what QEMU does. Rather than tweaking code some more, with risk to stability, let's just document it as it is. We'll be able to fix this in the future with a new protocol feature bit. Reported-by: Victor Kaplansky <victork@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'docs/specs')
-rw-r--r--docs/specs/vhost-user.txt28
1 files changed, 17 insertions, 11 deletions
diff --git a/docs/specs/vhost-user.txt b/docs/specs/vhost-user.txt
index df40cec..7b9cd6d 100644
--- a/docs/specs/vhost-user.txt
+++ b/docs/specs/vhost-user.txt
@@ -148,20 +148,26 @@ a feature bit was dedicated for this purpose:
Starting and stopping rings
----------------------
-Each ring is initialized in a stopped state, client must not process it until
-ring is enabled.
+Client must only process each ring when it is both started and enabled.
+
+If VHOST_USER_F_PROTOCOL_FEATURES has not been negotiated, the ring is initialized
+in an enabled state.
-If VHOST_USER_F_PROTOCOL_FEATURES has been negotiated, client must start and
-stop ring processing upon receiving VHOST_USER_SET_VRING_ENABLE with parameters
-1 and 0 respoectively.
+If VHOST_USER_F_PROTOCOL_FEATURES has been negotiated, the ring is initialized
+in a disabled state. Client must not process it until ring is enabled by
+VHOST_USER_SET_VRING_ENABLE with parameter 1, or after it has been disabled by
+VHOST_USER_SET_VRING_ENABLE with parameter 0.
+
+Each ring is initialized in a stopped state, client must not process it until
+ring is started, or after it has been stopped.
-If VHOST_USER_F_PROTOCOL_FEATURES has not been negotiated, client must start
-ring processing upon receiving a kick (that is, detecting that file descriptor
-is readable) on the descriptor specified by VHOST_USER_SET_VRING_KICK, and stop
-ring processing upon receiving VHOST_USER_GET_VRING_BASE.
+Client must start ring upon receiving a kick (that is, detecting that file
+descriptor is readable) on the descriptor specified by
+VHOST_USER_SET_VRING_KICK, and stop ring upon receiving
+VHOST_USER_GET_VRING_BASE.
-While rings are running, client must support changing some configuration
-aspects on the fly.
+While processing the rings (when they are started and enabled), client must
+support changing some configuration aspects on the fly.
Multiple queue support
----------------------