mbox series

[v3,0/2] vhost: Support external backend only vhost-user requests

Message ID 20190319105417.16890-1-maxime.coquelin@redhat.com (mailing list archive)
Headers
Series vhost: Support external backend only vhost-user requests |

Message

Maxime Coquelin March 19, 2019, 10:54 a.m. UTC
  The goals of this series is to provide more flexibility to external
backends to implement their specific vhost-user request handling
without having to patch vhost-user library.

First patch implements a new API for external backend to advertize
its specific protocol features to vhost-user master.

Second patch ensures a request not handled by the vhost-user library
but by the external backend only will not be treated as an error or
make the vhost lib to crash.

Changes in v3:
==============
 - Fix and improve comments (Ilya)

Changes in v2:
==============
 - Remove 'skip_master' param from documentation (Ilya)
 - Merge pre and post callback in a single one (Ilya)

Changes in v1:
==============
 - Convert vhost-crypto to the API change (Ilya)
 - Fix build with recent GCC (fall-through)
 - Check request > VHOST_USER_NONE (Ilya)
 - Remove 'Requested invalid message type' check (Ilya)

Changes in RFC v2:
==================
 - Fix build & git message
 - Add new enum for not handled messages & remove skip_master (Ilya)

Maxime Coquelin (2):
  vhost: add API to set protocol features flags
  vhost: support requests only handled by external backend

 lib/librte_vhost/rte_vhost.h           | 53 +++++++++--------
 lib/librte_vhost/rte_vhost_version.map |  1 +
 lib/librte_vhost/socket.c              | 14 +++++
 lib/librte_vhost/vhost_crypto.c        | 10 +++-
 lib/librte_vhost/vhost_user.c          | 82 ++++++++++++++++----------
 5 files changed, 102 insertions(+), 58 deletions(-)
  

Comments

Maxime Coquelin March 20, 2019, 7:34 a.m. UTC | #1
On 3/19/19 11:54 AM, Maxime Coquelin wrote:
> The goals of this series is to provide more flexibility to external
> backends to implement their specific vhost-user request handling
> without having to patch vhost-user library.
> 
> First patch implements a new API for external backend to advertize
> its specific protocol features to vhost-user master.
> 
> Second patch ensures a request not handled by the vhost-user library
> but by the external backend only will not be treated as an error or
> make the vhost lib to crash.
> 
> Changes in v3:
> ==============
>   - Fix and improve comments (Ilya)
> 
> Changes in v2:
> ==============
>   - Remove 'skip_master' param from documentation (Ilya)
>   - Merge pre and post callback in a single one (Ilya)
> 
> Changes in v1:
> ==============
>   - Convert vhost-crypto to the API change (Ilya)
>   - Fix build with recent GCC (fall-through)
>   - Check request > VHOST_USER_NONE (Ilya)
>   - Remove 'Requested invalid message type' check (Ilya)
> 
> Changes in RFC v2:
> ==================
>   - Fix build & git message
>   - Add new enum for not handled messages & remove skip_master (Ilya)
> 
> Maxime Coquelin (2):
>    vhost: add API to set protocol features flags
>    vhost: support requests only handled by external backend
> 
>   lib/librte_vhost/rte_vhost.h           | 53 +++++++++--------
>   lib/librte_vhost/rte_vhost_version.map |  1 +
>   lib/librte_vhost/socket.c              | 14 +++++
>   lib/librte_vhost/vhost_crypto.c        | 10 +++-
>   lib/librte_vhost/vhost_user.c          | 82 ++++++++++++++++----------
>   5 files changed, 102 insertions(+), 58 deletions(-)
> 

Applied to dpdk-next-virtio/master branch.

Thanks,
Maxime
  
Stojaczyk, Dariusz March 20, 2019, 2:32 p.m. UTC | #2
> -----Original Message-----
> From: Maxime Coquelin [mailto:maxime.coquelin@redhat.com]
> Sent: Wednesday, March 20, 2019 8:35 AM
> To: dev@dpdk.org; i.maximets@samsung.com; Liu, Changpeng
> <changpeng.liu@intel.com>; Bie, Tiwei <tiwei.bie@intel.com>; Stojaczyk,
> Dariusz <dariusz.stojaczyk@intel.com>
> Subject: Re: [PATCH v3 0/2] vhost: Support external backend only vhost-user
> requests
> 
> 
> 
> On 3/19/19 11:54 AM, Maxime Coquelin wrote:
> > The goals of this series is to provide more flexibility to external
> > backends to implement their specific vhost-user request handling
> > without having to patch vhost-user library.
> >
> > First patch implements a new API for external backend to advertize
> > its specific protocol features to vhost-user master.
> >
> > Second patch ensures a request not handled by the vhost-user library
> > but by the external backend only will not be treated as an error or
> > make the vhost lib to crash.
> >
> > Changes in v3:
> > ==============
> >   - Fix and improve comments (Ilya)
> >
> > Changes in v2:
> > ==============
> >   - Remove 'skip_master' param from documentation (Ilya)
> >   - Merge pre and post callback in a single one (Ilya)
> >
> > Changes in v1:
> > ==============
> >   - Convert vhost-crypto to the API change (Ilya)
> >   - Fix build with recent GCC (fall-through)
> >   - Check request > VHOST_USER_NONE (Ilya)
> >   - Remove 'Requested invalid message type' check (Ilya)
> >
> > Changes in RFC v2:
> > ==================
> >   - Fix build & git message
> >   - Add new enum for not handled messages & remove skip_master (Ilya)
> >
> > Maxime Coquelin (2):
> >    vhost: add API to set protocol features flags
> >    vhost: support requests only handled by external backend
> >
> >   lib/librte_vhost/rte_vhost.h           | 53 +++++++++--------
> >   lib/librte_vhost/rte_vhost_version.map |  1 +
> >   lib/librte_vhost/socket.c              | 14 +++++
> >   lib/librte_vhost/vhost_crypto.c        | 10 +++-
> >   lib/librte_vhost/vhost_user.c          | 82 ++++++++++++++++----------
> >   5 files changed, 102 insertions(+), 58 deletions(-)
> >
> 
> Applied to dpdk-next-virtio/master branch.
> 
> Thanks,
> Maxime

Thanks Maxime,

FYI - SPDK vhost in the upstream SPDK master is already capable of running against rte_vhost with those changes.
I have just run the full SPDK test suite against today's dpdk-next-virtio and everything's working. 

Thanks again!
D.
  
Maxime Coquelin March 21, 2019, 9:21 a.m. UTC | #3
On 3/20/19 3:32 PM, Stojaczyk, Dariusz wrote:
> 
>> -----Original Message-----
>> From: Maxime Coquelin [mailto:maxime.coquelin@redhat.com]
>> Sent: Wednesday, March 20, 2019 8:35 AM
>> To: dev@dpdk.org; i.maximets@samsung.com; Liu, Changpeng
>> <changpeng.liu@intel.com>; Bie, Tiwei <tiwei.bie@intel.com>; Stojaczyk,
>> Dariusz <dariusz.stojaczyk@intel.com>
>> Subject: Re: [PATCH v3 0/2] vhost: Support external backend only vhost-user
>> requests
>>
>>
>>
>> On 3/19/19 11:54 AM, Maxime Coquelin wrote:
>>> The goals of this series is to provide more flexibility to external
>>> backends to implement their specific vhost-user request handling
>>> without having to patch vhost-user library.
>>>
>>> First patch implements a new API for external backend to advertize
>>> its specific protocol features to vhost-user master.
>>>
>>> Second patch ensures a request not handled by the vhost-user library
>>> but by the external backend only will not be treated as an error or
>>> make the vhost lib to crash.
>>>
>>> Changes in v3:
>>> ==============
>>>    - Fix and improve comments (Ilya)
>>>
>>> Changes in v2:
>>> ==============
>>>    - Remove 'skip_master' param from documentation (Ilya)
>>>    - Merge pre and post callback in a single one (Ilya)
>>>
>>> Changes in v1:
>>> ==============
>>>    - Convert vhost-crypto to the API change (Ilya)
>>>    - Fix build with recent GCC (fall-through)
>>>    - Check request > VHOST_USER_NONE (Ilya)
>>>    - Remove 'Requested invalid message type' check (Ilya)
>>>
>>> Changes in RFC v2:
>>> ==================
>>>    - Fix build & git message
>>>    - Add new enum for not handled messages & remove skip_master (Ilya)
>>>
>>> Maxime Coquelin (2):
>>>     vhost: add API to set protocol features flags
>>>     vhost: support requests only handled by external backend
>>>
>>>    lib/librte_vhost/rte_vhost.h           | 53 +++++++++--------
>>>    lib/librte_vhost/rte_vhost_version.map |  1 +
>>>    lib/librte_vhost/socket.c              | 14 +++++
>>>    lib/librte_vhost/vhost_crypto.c        | 10 +++-
>>>    lib/librte_vhost/vhost_user.c          | 82 ++++++++++++++++----------
>>>    5 files changed, 102 insertions(+), 58 deletions(-)
>>>
>>
>> Applied to dpdk-next-virtio/master branch.
>>
>> Thanks,
>> Maxime
> 
> Thanks Maxime,
> 
> FYI - SPDK vhost in the upstream SPDK master is already capable of running against rte_vhost with those changes.
> I have just run the full SPDK test suite against today's dpdk-next-virtio and everything's working.
> 
> Thanks again!
> D.
> 

Thanks for your feedback, that's much appreciated.

Maxime
  
Fan Zhang March 22, 2019, 10:29 a.m. UTC | #4
Tried with vhost_crypto sample APP and virtio_crypto PMD, unit test and perf test works like a charm!
Thanks Maxime!

Regards,
Fan

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Maxime Coquelin
> Sent: Thursday, March 21, 2019 9:21 AM
> To: Stojaczyk, Dariusz <dariusz.stojaczyk@intel.com>; dev@dpdk.org;
> i.maximets@samsung.com; Liu, Changpeng <changpeng.liu@intel.com>; Bie,
> Tiwei <tiwei.bie@intel.com>
> Subject: Re: [dpdk-dev] [PATCH v3 0/2] vhost: Support external backend only
> vhost-user requests
> 
> 
> 
> On 3/20/19 3:32 PM, Stojaczyk, Dariusz wrote:
> >
> >> -----Original Message-----
> >> From: Maxime Coquelin [mailto:maxime.coquelin@redhat.com]
> >> Sent: Wednesday, March 20, 2019 8:35 AM
> >> To: dev@dpdk.org; i.maximets@samsung.com; Liu, Changpeng
> >> <changpeng.liu@intel.com>; Bie, Tiwei <tiwei.bie@intel.com>;
> >> Stojaczyk, Dariusz <dariusz.stojaczyk@intel.com>
> >> Subject: Re: [PATCH v3 0/2] vhost: Support external backend only
> >> vhost-user requests
> >>
> >>
> >>
> >> On 3/19/19 11:54 AM, Maxime Coquelin wrote:
> >>> The goals of this series is to provide more flexibility to external
> >>> backends to implement their specific vhost-user request handling
> >>> without having to patch vhost-user library.
> >>>
> >>> First patch implements a new API for external backend to advertize
> >>> its specific protocol features to vhost-user master.
> >>>
> >>> Second patch ensures a request not handled by the vhost-user library
> >>> but by the external backend only will not be treated as an error or
> >>> make the vhost lib to crash.
> >>>
> >>> Changes in v3:
> >>> ==============
> >>>    - Fix and improve comments (Ilya)
> >>>
> >>> Changes in v2:
> >>> ==============
> >>>    - Remove 'skip_master' param from documentation (Ilya)
> >>>    - Merge pre and post callback in a single one (Ilya)
> >>>
> >>> Changes in v1:
> >>> ==============
> >>>    - Convert vhost-crypto to the API change (Ilya)
> >>>    - Fix build with recent GCC (fall-through)
> >>>    - Check request > VHOST_USER_NONE (Ilya)
> >>>    - Remove 'Requested invalid message type' check (Ilya)
> >>>
> >>> Changes in RFC v2:
> >>> ==================
> >>>    - Fix build & git message
> >>>    - Add new enum for not handled messages & remove skip_master
> >>> (Ilya)
> >>>
> >>> Maxime Coquelin (2):
> >>>     vhost: add API to set protocol features flags
> >>>     vhost: support requests only handled by external backend
> >>>
> >>>    lib/librte_vhost/rte_vhost.h           | 53 +++++++++--------
> >>>    lib/librte_vhost/rte_vhost_version.map |  1 +
> >>>    lib/librte_vhost/socket.c              | 14 +++++
> >>>    lib/librte_vhost/vhost_crypto.c        | 10 +++-
> >>>    lib/librte_vhost/vhost_user.c          | 82 ++++++++++++++++----------
> >>>    5 files changed, 102 insertions(+), 58 deletions(-)
> >>>
> >>
> >> Applied to dpdk-next-virtio/master branch.
> >>
> >> Thanks,
> >> Maxime
> >
> > Thanks Maxime,
> >
> > FYI - SPDK vhost in the upstream SPDK master is already capable of running
> against rte_vhost with those changes.
> > I have just run the full SPDK test suite against today's dpdk-next-virtio and
> everything's working.
> >
> > Thanks again!
> > D.
> >
> 
> Thanks for your feedback, that's much appreciated.
> 
> Maxime