From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39520) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a12QN-0004GW-2a for qemu-devel@nongnu.org; Mon, 23 Nov 2015 20:29:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a12QJ-000087-SH for qemu-devel@nongnu.org; Mon, 23 Nov 2015 20:29:39 -0500 Received: from mga02.intel.com ([134.134.136.20]:41534) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a12QJ-00007m-MG for qemu-devel@nongnu.org; Mon, 23 Nov 2015 20:29:35 -0500 Date: Tue, 24 Nov 2015 09:31:31 +0800 From: Yuanhan Liu Message-ID: <20151124013131.GF2325@yliu-dev.sh.intel.com> References: <1448276065-15183-1-git-send-email-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1448276065-15183-1-git-send-email-mst@redhat.com> Subject: Re: [Qemu-devel] [PATCH for-2.5] vhost-user: clarify start and enable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" Cc: Marcel Apfelbaum , =?us-ascii?B?PT9VVEYtOD9xP01hcmMtQW5kcj1DMz1BOT0yMEx1cmVhdT89?= , Victor Kaplansky , qemu-devel@nongnu.org On Mon, Nov 23, 2015 at 12:54:56PM +0200, Michael S. Tsirkin wrote: > It seems that we currently have some duplication between > started and enabled states. > > The actual reason is that enable is not documented correctly: > what it does is connecting ring to the backend. > > This is important for MQ, because a Linux guest expects TX > packets to be completed even if it disables some queues > temporarily. Thanks for the clarification. And Reviewed-by: Yuanhan Liu --yliu > > Cc: Yuanhan Liu > Cc: Victor Kaplansky > Signed-off-by: Michael S. Tsirkin > --- > docs/specs/vhost-user.txt | 20 +++++++++++++++----- > 1 file changed, 15 insertions(+), 5 deletions(-) > > diff --git a/docs/specs/vhost-user.txt b/docs/specs/vhost-user.txt > index 7b9cd6d..0312d40 100644 > --- a/docs/specs/vhost-user.txt > +++ b/docs/specs/vhost-user.txt > @@ -148,13 +148,23 @@ a feature bit was dedicated for this purpose: > > Starting and stopping rings > ---------------------- > -Client must only process each ring when it is both started and enabled. > +Client must only process each ring when it is started. > + > +Client must only pass data between the ring and the > +backend, when the ring is enabled. > + > +If ring is started but disabled, client must process the > +ring without talking to the backend. > + > +For example, for a networking device, in the disabled state > +client must not supply any new RX packets, but must process > +and discard any TX packets. > > 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, the ring is initialized > -in a disabled state. Client must not process it until ring is enabled by > +in a disabled state. Client must not pass data to/from the backend 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. > > @@ -166,7 +176,7 @@ descriptor is readable) on the descriptor specified by > VHOST_USER_SET_VRING_KICK, and stop ring upon receiving > VHOST_USER_GET_VRING_BASE. > > -While processing the rings (when they are started and enabled), client must > +While processing the rings (whether they are enabled or not), client must > support changing some configuration aspects on the fly. > > Multiple queue support > @@ -309,11 +319,11 @@ Message types > Id: 4 > Master payload: N/A > > - This is no longer used. Used to be sent to request stopping > + This is no longer used. Used to be sent to request disabling > all rings, but some clients interpreted it to also discard > connection state (this interpretation would lead to bugs). > It is recommended that clients either ignore this message, > - or use it to stop all rings. > + or use it to disable all rings. > > * VHOST_USER_SET_MEM_TABLE > > -- > MST