[PATCH v2] docs: Update vhost-user spec regarding backend program conventions

Sebastien Boeuf posted 1 patch 5 years, 8 months ago
Test docker-quick@centos7 passed
Test FreeBSD passed
Test docker-mingw@fedora passed
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200224182454.24610-1-sebastien.boeuf@intel.com
Maintainers: "Michael S. Tsirkin" <mst@redhat.com>
docs/interop/vhost-user.rst | 12 ++++++++++++
1 file changed, 12 insertions(+)
[PATCH v2] docs: Update vhost-user spec regarding backend program conventions
Posted by Sebastien Boeuf 5 years, 8 months ago
The vhost-user specification is not clearly stating the expected
behavior from a backend program whenever the client disconnects.

This patch addresses the issue by defining the default behavior and
proposing an alternative through a command line option.

By default, a backend program will terminate whenever the client
disconnects, unless told otherwise through the newly introduced
option --keep-listening.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 docs/interop/vhost-user.rst | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/docs/interop/vhost-user.rst b/docs/interop/vhost-user.rst
index 5f8b3a456b..078f8e2e57 100644
--- a/docs/interop/vhost-user.rst
+++ b/docs/interop/vhost-user.rst
@@ -1323,6 +1323,10 @@ The backend program must end (as quickly and cleanly as possible) when
 the SIGTERM signal is received. Eventually, it may receive SIGKILL by
 the management layer after a few seconds.
 
+By default, the backend program terminates after the client disconnects.
+This is useful to keep the backend program's lifetime synchronized with
+its client process.
+
 The following command line options have an expected behaviour. They
 are mandatory, unless explicitly said differently:
 
@@ -1337,6 +1341,14 @@ are mandatory, unless explicitly said differently:
   vhost-user socket as file descriptor FDNUM. It is incompatible with
   --socket-path.
 
+--keep-listening
+
+  When this option is provided, the backend program must keep listening
+  after the client disconnects. It accepts only 1 connection at a time
+  on each UNIX domain socket. This prevents the management layer from
+  having to spawn a new backend program each and every time the client
+  disconnects.
+
 --print-capabilities
 
   Output to stdout the backend capabilities in JSON format, and then
-- 
2.20.1

---------------------------------------------------------------------
Intel Corporation SAS (French simplified joint stock company)
Registered headquarters: "Les Montalets"- 2, rue de Paris, 
92196 Meudon Cedex, France
Registration Number:  302 456 199 R.C.S. NANTERRE
Capital: 4,572,000 Euros

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


Re: [PATCH v2] docs: Update vhost-user spec regarding backend program conventions
Posted by Stefan Hajnoczi 5 years, 8 months ago
On Mon, Feb 24, 2020 at 07:24:54PM +0100, Sebastien Boeuf wrote:
> The vhost-user specification is not clearly stating the expected
> behavior from a backend program whenever the client disconnects.
> 
> This patch addresses the issue by defining the default behavior and
> proposing an alternative through a command line option.
> 
> By default, a backend program will terminate whenever the client
> disconnects, unless told otherwise through the newly introduced
> option --keep-listening.
> 
> Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
>  docs/interop/vhost-user.rst | 12 ++++++++++++
>  1 file changed, 12 insertions(+)

Perhaps --keep-listening should be optional?

If the maintainers are happy with the patch as is then so am I:

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Re: [PATCH v2] docs: Update vhost-user spec regarding backend program conventions
Posted by Marc-André Lureau 5 years, 8 months ago
Hi

On Fri, Mar 6, 2020 at 1:35 PM Stefan Hajnoczi <stefanha@gmail.com> wrote:
>
> On Mon, Feb 24, 2020 at 07:24:54PM +0100, Sebastien Boeuf wrote:
> > The vhost-user specification is not clearly stating the expected
> > behavior from a backend program whenever the client disconnects.
> >
> > This patch addresses the issue by defining the default behavior and
> > proposing an alternative through a command line option.
> >
> > By default, a backend program will terminate whenever the client
> > disconnects, unless told otherwise through the newly introduced
> > option --keep-listening.
> >
> > Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
> > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> > ---
> >  docs/interop/vhost-user.rst | 12 ++++++++++++
> >  1 file changed, 12 insertions(+)
>
> Perhaps --keep-listening should be optional?

I think it should be optional, and flagged by a capability.

>
> If the maintainers are happy with the patch as is then so am I:
>
> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>



-- 
Marc-André Lureau

Re: [PATCH v2] docs: Update vhost-user spec regarding backend program conventions
Posted by Boeuf, Sebastien 5 years, 8 months ago
Hi!

On Fri, 2020-03-06 at 13:52 +0100, Marc-André Lureau wrote:
> Hi
> 
> On Fri, Mar 6, 2020 at 1:35 PM Stefan Hajnoczi <stefanha@gmail.com>
> wrote:
> > On Mon, Feb 24, 2020 at 07:24:54PM +0100, Sebastien Boeuf wrote:
> > > The vhost-user specification is not clearly stating the expected
> > > behavior from a backend program whenever the client disconnects.
> > > 
> > > This patch addresses the issue by defining the default behavior
> > > and
> > > proposing an alternative through a command line option.
> > > 
> > > By default, a backend program will terminate whenever the client
> > > disconnects, unless told otherwise through the newly introduced
> > > option --keep-listening.
> > > 
> > > Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
> > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> > > ---
> > >  docs/interop/vhost-user.rst | 12 ++++++++++++
> > >  1 file changed, 12 insertions(+)
> > 
> > Perhaps --keep-listening should be optional?
> 
> I think it should be optional, and flagged by a capability.

Could you please elaborate on that? How can I do that?

Thanks,
Sebastien
> 
> > If the maintainers are happy with the patch as is then so am I:
> > 
> > Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
> 
> 
---------------------------------------------------------------------
Intel Corporation SAS (French simplified joint stock company)
Registered headquarters: "Les Montalets"- 2, rue de Paris, 
92196 Meudon Cedex, France
Registration Number:  302 456 199 R.C.S. NANTERRE
Capital: 4,572,000 Euros

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
Re: [PATCH v2] docs: Update vhost-user spec regarding backend program conventions
Posted by Marc-André Lureau 5 years, 8 months ago
Hi

On Wed, Mar 11, 2020 at 3:19 PM Boeuf, Sebastien
<sebastien.boeuf@intel.com> wrote:
>
> Hi!
>
> On Fri, 2020-03-06 at 13:52 +0100, Marc-André Lureau wrote:
> > Hi
> >
> > On Fri, Mar 6, 2020 at 1:35 PM Stefan Hajnoczi <stefanha@gmail.com>
> > wrote:
> > > On Mon, Feb 24, 2020 at 07:24:54PM +0100, Sebastien Boeuf wrote:
> > > > The vhost-user specification is not clearly stating the expected
> > > > behavior from a backend program whenever the client disconnects.
> > > >
> > > > This patch addresses the issue by defining the default behavior
> > > > and
> > > > proposing an alternative through a command line option.
> > > >
> > > > By default, a backend program will terminate whenever the client
> > > > disconnects, unless told otherwise through the newly introduced
> > > > option --keep-listening.
> > > >
> > > > Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
> > > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> > > > ---
> > > >  docs/interop/vhost-user.rst | 12 ++++++++++++
> > > >  1 file changed, 12 insertions(+)
> > >
> > > Perhaps --keep-listening should be optional?
> >
> > I think it should be optional, and flagged by a capability.
>
> Could you please elaborate on that? How can I do that?

Some backend options or behavior are optional, and advertised through
--print-capabilities.

Say --foo (optional),

--print-capabilities should have something like:

{ ...
  "features": [
     "foo",
     ...
   ]
}

The list of capabilities is documented in vhost-user.json,
VHostUserBackendCapabilities.

We lack common enum such as @VHostUserBackendCommonFeature at this
point, but it can be added.

Although we don't currently parse this file through qapi, I don't know
how to express that
VHostUserBackendGPUFeature/VHostUserBackendCapabilitiesInput inherits
from another enum. Markus, any idea?



>
> Thanks,
> Sebastien
> >
> > > If the maintainers are happy with the patch as is then so am I:
> > >
> > > Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
> >
> >
> ---------------------------------------------------------------------
> Intel Corporation SAS (French simplified joint stock company)
> Registered headquarters: "Les Montalets"- 2, rue de Paris,
> 92196 Meudon Cedex, France
> Registration Number:  302 456 199 R.C.S. NANTERRE
> Capital: 4,572,000 Euros
>
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.



-- 
Marc-André Lureau