mbox series

[v7,0/8] rpmsg: Make RPMSG name service modular

Message ID 20201120214245.172963-1-mathieu.poirier@linaro.org (mailing list archive)
Headers show
Series rpmsg: Make RPMSG name service modular | expand

Message

Mathieu Poirier Nov. 20, 2020, 9:42 p.m. UTC
This revision addresses comments received from the previous revision,
i.e V6.  Please see details below.

It starts by making the RPMSG protocol transport agnostic by
moving the headers it uses to generic types and using those in the
current implementation.  From there it re-uses the work that Arnaud
published[1] to make the name service modular.

Tested on stm32mp157 with the RPMSG client sample application.  Applies
cleanly on rpmsg-next.

Thanks,
Mathieu

[1]. https://patchwork.kernel.org/project/linux-remoteproc/list/?series=338335

-------
New for V7:
- Fixed error path in rpmsg_probe() as reported by Guennadi

Arnaud Pouliquen (4):
  rpmsg: virtio: Rename rpmsg_create_channel
  rpmsg: core: Add channel creation internal API
  rpmsg: virtio: Add rpmsg channel device ops
  rpmsg: Turn name service into a stand alone driver

Mathieu Poirier (4):
  rpmsg: Introduce __rpmsg{16|32|64} types
  rpmsg: virtio: Move from virtio to rpmsg byte conversion
  rpmsg: Move structure rpmsg_ns_msg to header file
  rpmsg: Make rpmsg_{register|unregister}_device() public

 drivers/rpmsg/Kconfig            |   9 ++
 drivers/rpmsg/Makefile           |   1 +
 drivers/rpmsg/rpmsg_core.c       |  44 ++++++++
 drivers/rpmsg/rpmsg_internal.h   |  14 ++-
 drivers/rpmsg/rpmsg_ns.c         | 126 +++++++++++++++++++++
 drivers/rpmsg/virtio_rpmsg_bus.c | 186 +++++++++++--------------------
 include/linux/rpmsg.h            |  63 ++++++++++-
 include/linux/rpmsg/byteorder.h  |  67 +++++++++++
 include/linux/rpmsg/ns.h         |  45 ++++++++
 include/uapi/linux/rpmsg_types.h |  11 ++
 10 files changed, 439 insertions(+), 127 deletions(-)
 create mode 100644 drivers/rpmsg/rpmsg_ns.c
 create mode 100644 include/linux/rpmsg/byteorder.h
 create mode 100644 include/linux/rpmsg/ns.h
 create mode 100644 include/uapi/linux/rpmsg_types.h

Comments

Guennadi Liakhovetski Nov. 23, 2020, 4:06 p.m. UTC | #1
Hi Mathieu,

Thanks for bringing all the stuff together and for polishing it!

For the entire series:

Tested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>

Thanks
Guennadi

On Fri, Nov 20, 2020 at 02:42:37PM -0700, Mathieu Poirier wrote:
> This revision addresses comments received from the previous revision,
> i.e V6.  Please see details below.
> 
> It starts by making the RPMSG protocol transport agnostic by
> moving the headers it uses to generic types and using those in the
> current implementation.  From there it re-uses the work that Arnaud
> published[1] to make the name service modular.
> 
> Tested on stm32mp157 with the RPMSG client sample application.  Applies
> cleanly on rpmsg-next.
> 
> Thanks,
> Mathieu
> 
> [1]. https://patchwork.kernel.org/project/linux-remoteproc/list/?series=338335
> 
> -------
> New for V7:
> - Fixed error path in rpmsg_probe() as reported by Guennadi
> 
> Arnaud Pouliquen (4):
>   rpmsg: virtio: Rename rpmsg_create_channel
>   rpmsg: core: Add channel creation internal API
>   rpmsg: virtio: Add rpmsg channel device ops
>   rpmsg: Turn name service into a stand alone driver
> 
> Mathieu Poirier (4):
>   rpmsg: Introduce __rpmsg{16|32|64} types
>   rpmsg: virtio: Move from virtio to rpmsg byte conversion
>   rpmsg: Move structure rpmsg_ns_msg to header file
>   rpmsg: Make rpmsg_{register|unregister}_device() public
> 
>  drivers/rpmsg/Kconfig            |   9 ++
>  drivers/rpmsg/Makefile           |   1 +
>  drivers/rpmsg/rpmsg_core.c       |  44 ++++++++
>  drivers/rpmsg/rpmsg_internal.h   |  14 ++-
>  drivers/rpmsg/rpmsg_ns.c         | 126 +++++++++++++++++++++
>  drivers/rpmsg/virtio_rpmsg_bus.c | 186 +++++++++++--------------------
>  include/linux/rpmsg.h            |  63 ++++++++++-
>  include/linux/rpmsg/byteorder.h  |  67 +++++++++++
>  include/linux/rpmsg/ns.h         |  45 ++++++++
>  include/uapi/linux/rpmsg_types.h |  11 ++
>  10 files changed, 439 insertions(+), 127 deletions(-)
>  create mode 100644 drivers/rpmsg/rpmsg_ns.c
>  create mode 100644 include/linux/rpmsg/byteorder.h
>  create mode 100644 include/linux/rpmsg/ns.h
>  create mode 100644 include/uapi/linux/rpmsg_types.h
> 
> -- 
> 2.25.1
>
patchwork-bot+linux-remoteproc@kernel.org Nov. 24, 2020, 7:50 p.m. UTC | #2
Hello:

This series was applied to andersson/remoteproc.git (refs/heads/for-next):

On Fri, 20 Nov 2020 14:42:37 -0700 you wrote:
> This revision addresses comments received from the previous revision,
> i.e V6.  Please see details below.
> 
> It starts by making the RPMSG protocol transport agnostic by
> moving the headers it uses to generic types and using those in the
> current implementation.  From there it re-uses the work that Arnaud
> published[1] to make the name service modular.
> 
> [...]

Here is the summary with links:
  - [v7,1/8] rpmsg: Introduce __rpmsg{16|32|64} types
    https://git.kernel.org/andersson/remoteproc/c/6bef038011a0
  - [v7,2/8] rpmsg: virtio: Move from virtio to rpmsg byte conversion
    https://git.kernel.org/andersson/remoteproc/c/5f2f6b7db119
  - [v7,3/8] rpmsg: Move structure rpmsg_ns_msg to header file
    https://git.kernel.org/andersson/remoteproc/c/c435a04189de
  - [v7,4/8] rpmsg: virtio: Rename rpmsg_create_channel
    https://git.kernel.org/andersson/remoteproc/c/77d372989db9
  - [v7,5/8] rpmsg: core: Add channel creation internal API
    https://git.kernel.org/andersson/remoteproc/c/9753e12cd3bd
  - [v7,6/8] rpmsg: virtio: Add rpmsg channel device ops
    https://git.kernel.org/andersson/remoteproc/c/1ee1e5e162af
  - [v7,7/8] rpmsg: Make rpmsg_{register|unregister}_device() public
    https://git.kernel.org/andersson/remoteproc/c/55488110acc1
  - [v7,8/8] rpmsg: Turn name service into a stand alone driver
    https://git.kernel.org/andersson/remoteproc/c/950a7388f02b

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
Guennadi Liakhovetski Dec. 2, 2020, 11:05 a.m. UTC | #3
Hi Mathieu,

I'd like to resume reviewing and begin upstreaming of the next steps of 
my Audio DSP Virtualisation work, based on this your patch set. How 
confident are we that it's going to be upstreamed in its present form? 
What's the plan to push it to "next?"

Thanks
Guennadi

On Mon, Nov 23, 2020 at 05:06:10PM +0100, Guennadi Liakhovetski wrote:
> Hi Mathieu,
> 
> Thanks for bringing all the stuff together and for polishing it!
> 
> For the entire series:
> 
> Tested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
> 
> Thanks
> Guennadi
> 
> On Fri, Nov 20, 2020 at 02:42:37PM -0700, Mathieu Poirier wrote:
> > This revision addresses comments received from the previous revision,
> > i.e V6.  Please see details below.
> > 
> > It starts by making the RPMSG protocol transport agnostic by
> > moving the headers it uses to generic types and using those in the
> > current implementation.  From there it re-uses the work that Arnaud
> > published[1] to make the name service modular.
> > 
> > Tested on stm32mp157 with the RPMSG client sample application.  Applies
> > cleanly on rpmsg-next.
> > 
> > Thanks,
> > Mathieu
> > 
> > [1]. https://patchwork.kernel.org/project/linux-remoteproc/list/?series=338335
> > 
> > -------
> > New for V7:
> > - Fixed error path in rpmsg_probe() as reported by Guennadi
> > 
> > Arnaud Pouliquen (4):
> >   rpmsg: virtio: Rename rpmsg_create_channel
> >   rpmsg: core: Add channel creation internal API
> >   rpmsg: virtio: Add rpmsg channel device ops
> >   rpmsg: Turn name service into a stand alone driver
> > 
> > Mathieu Poirier (4):
> >   rpmsg: Introduce __rpmsg{16|32|64} types
> >   rpmsg: virtio: Move from virtio to rpmsg byte conversion
> >   rpmsg: Move structure rpmsg_ns_msg to header file
> >   rpmsg: Make rpmsg_{register|unregister}_device() public
> > 
> >  drivers/rpmsg/Kconfig            |   9 ++
> >  drivers/rpmsg/Makefile           |   1 +
> >  drivers/rpmsg/rpmsg_core.c       |  44 ++++++++
> >  drivers/rpmsg/rpmsg_internal.h   |  14 ++-
> >  drivers/rpmsg/rpmsg_ns.c         | 126 +++++++++++++++++++++
> >  drivers/rpmsg/virtio_rpmsg_bus.c | 186 +++++++++++--------------------
> >  include/linux/rpmsg.h            |  63 ++++++++++-
> >  include/linux/rpmsg/byteorder.h  |  67 +++++++++++
> >  include/linux/rpmsg/ns.h         |  45 ++++++++
> >  include/uapi/linux/rpmsg_types.h |  11 ++
> >  10 files changed, 439 insertions(+), 127 deletions(-)
> >  create mode 100644 drivers/rpmsg/rpmsg_ns.c
> >  create mode 100644 include/linux/rpmsg/byteorder.h
> >  create mode 100644 include/linux/rpmsg/ns.h
> >  create mode 100644 include/uapi/linux/rpmsg_types.h
> > 
> > -- 
> > 2.25.1
> >
Mathieu Poirier Dec. 2, 2020, 8:39 p.m. UTC | #4
Good day,

On Wed, Dec 02, 2020 at 12:05:55PM +0100, Guennadi Liakhovetski wrote:
> Hi Mathieu,
> 
> I'd like to resume reviewing and begin upstreaming of the next steps of 
> my Audio DSP Virtualisation work, based on this your patch set. How 

I'm all for it too.

> confident are we that it's going to be upstreamed in its present form? 
> What's the plan to push it to "next?"
> 

I thought we were pretty unanimous that something like what Kishon did was the
way to go.  

> Thanks
> Guennadi
> 
> On Mon, Nov 23, 2020 at 05:06:10PM +0100, Guennadi Liakhovetski wrote:
> > Hi Mathieu,
> > 
> > Thanks for bringing all the stuff together and for polishing it!
> > 
> > For the entire series:
> > 
> > Tested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
> > Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
> > 
> > Thanks
> > Guennadi
> > 
> > On Fri, Nov 20, 2020 at 02:42:37PM -0700, Mathieu Poirier wrote:
> > > This revision addresses comments received from the previous revision,
> > > i.e V6.  Please see details below.
> > > 
> > > It starts by making the RPMSG protocol transport agnostic by
> > > moving the headers it uses to generic types and using those in the
> > > current implementation.  From there it re-uses the work that Arnaud
> > > published[1] to make the name service modular.
> > > 
> > > Tested on stm32mp157 with the RPMSG client sample application.  Applies
> > > cleanly on rpmsg-next.
> > > 
> > > Thanks,
> > > Mathieu
> > > 
> > > [1]. https://patchwork.kernel.org/project/linux-remoteproc/list/?series=338335
> > > 
> > > -------
> > > New for V7:
> > > - Fixed error path in rpmsg_probe() as reported by Guennadi
> > > 
> > > Arnaud Pouliquen (4):
> > >   rpmsg: virtio: Rename rpmsg_create_channel
> > >   rpmsg: core: Add channel creation internal API
> > >   rpmsg: virtio: Add rpmsg channel device ops
> > >   rpmsg: Turn name service into a stand alone driver
> > > 
> > > Mathieu Poirier (4):
> > >   rpmsg: Introduce __rpmsg{16|32|64} types
> > >   rpmsg: virtio: Move from virtio to rpmsg byte conversion
> > >   rpmsg: Move structure rpmsg_ns_msg to header file
> > >   rpmsg: Make rpmsg_{register|unregister}_device() public
> > > 
> > >  drivers/rpmsg/Kconfig            |   9 ++
> > >  drivers/rpmsg/Makefile           |   1 +
> > >  drivers/rpmsg/rpmsg_core.c       |  44 ++++++++
> > >  drivers/rpmsg/rpmsg_internal.h   |  14 ++-
> > >  drivers/rpmsg/rpmsg_ns.c         | 126 +++++++++++++++++++++
> > >  drivers/rpmsg/virtio_rpmsg_bus.c | 186 +++++++++++--------------------
> > >  include/linux/rpmsg.h            |  63 ++++++++++-
> > >  include/linux/rpmsg/byteorder.h  |  67 +++++++++++
> > >  include/linux/rpmsg/ns.h         |  45 ++++++++
> > >  include/uapi/linux/rpmsg_types.h |  11 ++
> > >  10 files changed, 439 insertions(+), 127 deletions(-)
> > >  create mode 100644 drivers/rpmsg/rpmsg_ns.c
> > >  create mode 100644 include/linux/rpmsg/byteorder.h
> > >  create mode 100644 include/linux/rpmsg/ns.h
> > >  create mode 100644 include/uapi/linux/rpmsg_types.h
> > > 
> > > -- 
> > > 2.25.1
> > >
Guennadi Liakhovetski Dec. 3, 2020, 8:42 p.m. UTC | #5
(adding vhost maintainers and the author of [1])

Hi,

I'm working on an Audio DSP virtualisation solution [2] and the next 
step in its upstreaming should be an RPMsg vhost implementation, based 
on [3], which contains a simple addition to the current library-style 
vhost API. Later in [1] a different approach has been presented, 
converting the vhost framework to a proper bus-type and device driver. 
Therefore my questions:

1. if the latter approach is prefered, should we expect follow up 
versions of [1] and their upstreaming?
2. judging by the size and complexity of [1] would it maybe be 
preferable to first extract a minimum patch set just to add vhost 
rpmsg? Looking at the patch set it should be doable and not too 
difficult? Kishon, would it be something you could submit?
3. or would it be preferable to keep vhost in its present form, use 
[3] for rpmsg support and re-implement [1] based on a different 
vhost / vringh approach?

Thanks
Guennadi

[1] https://www.spinics.net/lists/kvm/msg219632.html
[2] https://mailman.alsa-project.org/pipermail/sound-open-firmware/2020-April/003766.html
[3] https://www.spinics.net/lists/linux-virtualization/msg43359.html

On Wed, Dec 02, 2020 at 01:39:54PM -0700, Mathieu Poirier wrote:
> Good day,
> 
> On Wed, Dec 02, 2020 at 12:05:55PM +0100, Guennadi Liakhovetski wrote:
> > Hi Mathieu,
> > 
> > I'd like to resume reviewing and begin upstreaming of the next steps of 
> > my Audio DSP Virtualisation work, based on this your patch set. How 
> 
> I'm all for it too.
> 
> > confident are we that it's going to be upstreamed in its present form? 
> > What's the plan to push it to "next?"
> > 
> 
> I thought we were pretty unanimous that something like what Kishon did was the
> way to go.  
> 
> > Thanks
> > Guennadi
> > 
> > On Mon, Nov 23, 2020 at 05:06:10PM +0100, Guennadi Liakhovetski wrote:
> > > Hi Mathieu,
> > > 
> > > Thanks for bringing all the stuff together and for polishing it!
> > > 
> > > For the entire series:
> > > 
> > > Tested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
> > > Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
> > > 
> > > Thanks
> > > Guennadi
> > > 
> > > On Fri, Nov 20, 2020 at 02:42:37PM -0700, Mathieu Poirier wrote:
> > > > This revision addresses comments received from the previous revision,
> > > > i.e V6.  Please see details below.
> > > > 
> > > > It starts by making the RPMSG protocol transport agnostic by
> > > > moving the headers it uses to generic types and using those in the
> > > > current implementation.  From there it re-uses the work that Arnaud
> > > > published[1] to make the name service modular.
> > > > 
> > > > Tested on stm32mp157 with the RPMSG client sample application.  Applies
> > > > cleanly on rpmsg-next.
> > > > 
> > > > Thanks,
> > > > Mathieu
> > > > 
> > > > [1]. https://patchwork.kernel.org/project/linux-remoteproc/list/?series=338335
> > > > 
> > > > -------
> > > > New for V7:
> > > > - Fixed error path in rpmsg_probe() as reported by Guennadi
> > > > 
> > > > Arnaud Pouliquen (4):
> > > >   rpmsg: virtio: Rename rpmsg_create_channel
> > > >   rpmsg: core: Add channel creation internal API
> > > >   rpmsg: virtio: Add rpmsg channel device ops
> > > >   rpmsg: Turn name service into a stand alone driver
> > > > 
> > > > Mathieu Poirier (4):
> > > >   rpmsg: Introduce __rpmsg{16|32|64} types
> > > >   rpmsg: virtio: Move from virtio to rpmsg byte conversion
> > > >   rpmsg: Move structure rpmsg_ns_msg to header file
> > > >   rpmsg: Make rpmsg_{register|unregister}_device() public
> > > > 
> > > >  drivers/rpmsg/Kconfig            |   9 ++
> > > >  drivers/rpmsg/Makefile           |   1 +
> > > >  drivers/rpmsg/rpmsg_core.c       |  44 ++++++++
> > > >  drivers/rpmsg/rpmsg_internal.h   |  14 ++-
> > > >  drivers/rpmsg/rpmsg_ns.c         | 126 +++++++++++++++++++++
> > > >  drivers/rpmsg/virtio_rpmsg_bus.c | 186 +++++++++++--------------------
> > > >  include/linux/rpmsg.h            |  63 ++++++++++-
> > > >  include/linux/rpmsg/byteorder.h  |  67 +++++++++++
> > > >  include/linux/rpmsg/ns.h         |  45 ++++++++
> > > >  include/uapi/linux/rpmsg_types.h |  11 ++
> > > >  10 files changed, 439 insertions(+), 127 deletions(-)
> > > >  create mode 100644 drivers/rpmsg/rpmsg_ns.c
> > > >  create mode 100644 include/linux/rpmsg/byteorder.h
> > > >  create mode 100644 include/linux/rpmsg/ns.h
> > > >  create mode 100644 include/uapi/linux/rpmsg_types.h
> > > > 
> > > > -- 
> > > > 2.25.1
> > > >
Mathieu Poirier Dec. 4, 2020, 5:51 p.m. UTC | #6
I am adding Vincent Whitchurch and the virtualization mailing list...

On Thu, 3 Dec 2020 at 13:42, Guennadi Liakhovetski
<guennadi.liakhovetski@linux.intel.com> wrote:
>
> (adding vhost maintainers and the author of [1])
>
> Hi,
>
> I'm working on an Audio DSP virtualisation solution [2] and the next
> step in its upstreaming should be an RPMsg vhost implementation, based
> on [3], which contains a simple addition to the current library-style
> vhost API. Later in [1] a different approach has been presented,
> converting the vhost framework to a proper bus-type and device driver.
> Therefore my questions:
>
> 1. if the latter approach is prefered, should we expect follow up
> versions of [1] and their upstreaming?
> 2. judging by the size and complexity of [1] would it maybe be
> preferable to first extract a minimum patch set just to add vhost
> rpmsg? Looking at the patch set it should be doable and not too
> difficult? Kishon, would it be something you could submit?

To me that is the best approach.  It might be best for you to do the
work and credit Kishon where needed.

> 3. or would it be preferable to keep vhost in its present form, use
> [3] for rpmsg support and re-implement [1] based on a different
> vhost / vringh approach?
>
> Thanks
> Guennadi
>
> [1] https://www.spinics.net/lists/kvm/msg219632.html
> [2] https://mailman.alsa-project.org/pipermail/sound-open-firmware/2020-April/003766.html
> [3] https://www.spinics.net/lists/linux-virtualization/msg43359.html
>
> On Wed, Dec 02, 2020 at 01:39:54PM -0700, Mathieu Poirier wrote:
> > Good day,
> >
> > On Wed, Dec 02, 2020 at 12:05:55PM +0100, Guennadi Liakhovetski wrote:
> > > Hi Mathieu,
> > >
> > > I'd like to resume reviewing and begin upstreaming of the next steps of
> > > my Audio DSP Virtualisation work, based on this your patch set. How
> >
> > I'm all for it too.
> >
> > > confident are we that it's going to be upstreamed in its present form?
> > > What's the plan to push it to "next?"
> > >
> >
> > I thought we were pretty unanimous that something like what Kishon did was the
> > way to go.
> >
> > > Thanks
> > > Guennadi
> > >
> > > On Mon, Nov 23, 2020 at 05:06:10PM +0100, Guennadi Liakhovetski wrote:
> > > > Hi Mathieu,
> > > >
> > > > Thanks for bringing all the stuff together and for polishing it!
> > > >
> > > > For the entire series:
> > > >
> > > > Tested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
> > > > Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
> > > >
> > > > Thanks
> > > > Guennadi
> > > >
> > > > On Fri, Nov 20, 2020 at 02:42:37PM -0700, Mathieu Poirier wrote:
> > > > > This revision addresses comments received from the previous revision,
> > > > > i.e V6.  Please see details below.
> > > > >
> > > > > It starts by making the RPMSG protocol transport agnostic by
> > > > > moving the headers it uses to generic types and using those in the
> > > > > current implementation.  From there it re-uses the work that Arnaud
> > > > > published[1] to make the name service modular.
> > > > >
> > > > > Tested on stm32mp157 with the RPMSG client sample application.  Applies
> > > > > cleanly on rpmsg-next.
> > > > >
> > > > > Thanks,
> > > > > Mathieu
> > > > >
> > > > > [1]. https://patchwork.kernel.org/project/linux-remoteproc/list/?series=338335
> > > > >
> > > > > -------
> > > > > New for V7:
> > > > > - Fixed error path in rpmsg_probe() as reported by Guennadi
> > > > >
> > > > > Arnaud Pouliquen (4):
> > > > >   rpmsg: virtio: Rename rpmsg_create_channel
> > > > >   rpmsg: core: Add channel creation internal API
> > > > >   rpmsg: virtio: Add rpmsg channel device ops
> > > > >   rpmsg: Turn name service into a stand alone driver
> > > > >
> > > > > Mathieu Poirier (4):
> > > > >   rpmsg: Introduce __rpmsg{16|32|64} types
> > > > >   rpmsg: virtio: Move from virtio to rpmsg byte conversion
> > > > >   rpmsg: Move structure rpmsg_ns_msg to header file
> > > > >   rpmsg: Make rpmsg_{register|unregister}_device() public
> > > > >
> > > > >  drivers/rpmsg/Kconfig            |   9 ++
> > > > >  drivers/rpmsg/Makefile           |   1 +
> > > > >  drivers/rpmsg/rpmsg_core.c       |  44 ++++++++
> > > > >  drivers/rpmsg/rpmsg_internal.h   |  14 ++-
> > > > >  drivers/rpmsg/rpmsg_ns.c         | 126 +++++++++++++++++++++
> > > > >  drivers/rpmsg/virtio_rpmsg_bus.c | 186 +++++++++++--------------------
> > > > >  include/linux/rpmsg.h            |  63 ++++++++++-
> > > > >  include/linux/rpmsg/byteorder.h  |  67 +++++++++++
> > > > >  include/linux/rpmsg/ns.h         |  45 ++++++++
> > > > >  include/uapi/linux/rpmsg_types.h |  11 ++
> > > > >  10 files changed, 439 insertions(+), 127 deletions(-)
> > > > >  create mode 100644 drivers/rpmsg/rpmsg_ns.c
> > > > >  create mode 100644 include/linux/rpmsg/byteorder.h
> > > > >  create mode 100644 include/linux/rpmsg/ns.h
> > > > >  create mode 100644 include/uapi/linux/rpmsg_types.h
> > > > >
> > > > > --
> > > > > 2.25.1
> > > > >
Kishon Vijay Abraham I Dec. 7, 2020, 3:35 p.m. UTC | #7
+Lorenzo, Bjorn, Rob

Hi Guennadi,

On 04/12/20 11:21 pm, Mathieu Poirier wrote:
> I am adding Vincent Whitchurch and the virtualization mailing list...
> 
> On Thu, 3 Dec 2020 at 13:42, Guennadi Liakhovetski
> <guennadi.liakhovetski@linux.intel.com> wrote:
>>
>> (adding vhost maintainers and the author of [1])
>>
>> Hi,
>>
>> I'm working on an Audio DSP virtualisation solution [2] and the next
>> step in its upstreaming should be an RPMsg vhost implementation, based
>> on [3], which contains a simple addition to the current library-style
>> vhost API. Later in [1] a different approach has been presented,
>> converting the vhost framework to a proper bus-type and device driver.
>> Therefore my questions:
>>
>> 1. if the latter approach is prefered, should we expect follow up
>> versions of [1] and their upstreaming?
>> 2. judging by the size and complexity of [1] would it maybe be
>> preferable to first extract a minimum patch set just to add vhost
>> rpmsg? Looking at the patch set it should be doable and not too
>> difficult? Kishon, would it be something you could submit?
> 
> To me that is the best approach.  It might be best for you to do the
> work and credit Kishon where needed.

Yeah, my focus right now is to get my NTB patch series upstreamed [A],
So I might not be able to get to this any sooner. As Mathieu suggested,
I recommend you to pick the generic parts of my series that doesn't
involve PCI or NTB or VHOST MMIO.

The following patches in my series should get the generic vhost
infrastructure part up.

0001-vhost-Make-_feature_-bits-a-property-of-vhost-device.patch
0002-vhost-Introduce-standard-Linux-driver-model-in-VHOST.patch
0003-vhost-Add-ops-for-the-VHOST-driver-to-configure-VHOS.patch

0006-vhost-Introduce-configfs-entry-for-configuring-VHOST.patch

0008-rpmsg-virtio_rpmsg_bus-Disable-receive-virtqueue-cal.patch
0009-rpmsg-Introduce-configfs-entry-for-configuring-rpmsg.patch
0010-rpmsg-virtio_rpmsg_bus-Add-Address-Service-Notificat.patch
0011-rpmsg-virtio_rpmsg_bus-Move-generic-rpmsg-structure-.patch

0014-rpmsg-Add-VHOST-based-remote-processor-messaging-bus.patch
0015-samples-rpmsg-Setup-delayed-work-to-send-message.patch
0016-samples-rpmsg-Wait-for-address-to-be-bound-to-rpdev-.patch
0017-rpmsg.txt-Add-Documentation-to-configure-rpmsg-using.patch

Let me know if you have any questions or need further clarifications.

Thank you for working on this.

Best Regards,
Kishon

[A] -> http://lore.kernel.org/r/20201111153559.19050-1-kishon@ti.com

> 
>> 3. or would it be preferable to keep vhost in its present form, use
>> [3] for rpmsg support and re-implement [1] based on a different
>> vhost / vringh approach?
>>
>> Thanks
>> Guennadi
>>
>> [1] https://www.spinics.net/lists/kvm/msg219632.html
>> [2] https://mailman.alsa-project.org/pipermail/sound-open-firmware/2020-April/003766.html
>> [3] https://www.spinics.net/lists/linux-virtualization/msg43359.html
>>
>> On Wed, Dec 02, 2020 at 01:39:54PM -0700, Mathieu Poirier wrote:
>>> Good day,
>>>
>>> On Wed, Dec 02, 2020 at 12:05:55PM +0100, Guennadi Liakhovetski wrote:
>>>> Hi Mathieu,
>>>>
>>>> I'd like to resume reviewing and begin upstreaming of the next steps of
>>>> my Audio DSP Virtualisation work, based on this your patch set. How
>>>
>>> I'm all for it too.
>>>
>>>> confident are we that it's going to be upstreamed in its present form?
>>>> What's the plan to push it to "next?"
>>>>
>>>
>>> I thought we were pretty unanimous that something like what Kishon did was the
>>> way to go.
>>>
>>>> Thanks
>>>> Guennadi
>>>>
>>>> On Mon, Nov 23, 2020 at 05:06:10PM +0100, Guennadi Liakhovetski wrote:
>>>>> Hi Mathieu,
>>>>>
>>>>> Thanks for bringing all the stuff together and for polishing it!
>>>>>
>>>>> For the entire series:
>>>>>
>>>>> Tested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
>>>>> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
>>>>>
>>>>> Thanks
>>>>> Guennadi
>>>>>
>>>>> On Fri, Nov 20, 2020 at 02:42:37PM -0700, Mathieu Poirier wrote:
>>>>>> This revision addresses comments received from the previous revision,
>>>>>> i.e V6.  Please see details below.
>>>>>>
>>>>>> It starts by making the RPMSG protocol transport agnostic by
>>>>>> moving the headers it uses to generic types and using those in the
>>>>>> current implementation.  From there it re-uses the work that Arnaud
>>>>>> published[1] to make the name service modular.
>>>>>>
>>>>>> Tested on stm32mp157 with the RPMSG client sample application.  Applies
>>>>>> cleanly on rpmsg-next.
>>>>>>
>>>>>> Thanks,
>>>>>> Mathieu
>>>>>>
>>>>>> [1]. https://patchwork.kernel.org/project/linux-remoteproc/list/?series=338335
>>>>>>
>>>>>> -------
>>>>>> New for V7:
>>>>>> - Fixed error path in rpmsg_probe() as reported by Guennadi
>>>>>>
>>>>>> Arnaud Pouliquen (4):
>>>>>>   rpmsg: virtio: Rename rpmsg_create_channel
>>>>>>   rpmsg: core: Add channel creation internal API
>>>>>>   rpmsg: virtio: Add rpmsg channel device ops
>>>>>>   rpmsg: Turn name service into a stand alone driver
>>>>>>
>>>>>> Mathieu Poirier (4):
>>>>>>   rpmsg: Introduce __rpmsg{16|32|64} types
>>>>>>   rpmsg: virtio: Move from virtio to rpmsg byte conversion
>>>>>>   rpmsg: Move structure rpmsg_ns_msg to header file
>>>>>>   rpmsg: Make rpmsg_{register|unregister}_device() public
>>>>>>
>>>>>>  drivers/rpmsg/Kconfig            |   9 ++
>>>>>>  drivers/rpmsg/Makefile           |   1 +
>>>>>>  drivers/rpmsg/rpmsg_core.c       |  44 ++++++++
>>>>>>  drivers/rpmsg/rpmsg_internal.h   |  14 ++-
>>>>>>  drivers/rpmsg/rpmsg_ns.c         | 126 +++++++++++++++++++++
>>>>>>  drivers/rpmsg/virtio_rpmsg_bus.c | 186 +++++++++++--------------------
>>>>>>  include/linux/rpmsg.h            |  63 ++++++++++-
>>>>>>  include/linux/rpmsg/byteorder.h  |  67 +++++++++++
>>>>>>  include/linux/rpmsg/ns.h         |  45 ++++++++
>>>>>>  include/uapi/linux/rpmsg_types.h |  11 ++
>>>>>>  10 files changed, 439 insertions(+), 127 deletions(-)
>>>>>>  create mode 100644 drivers/rpmsg/rpmsg_ns.c
>>>>>>  create mode 100644 include/linux/rpmsg/byteorder.h
>>>>>>  create mode 100644 include/linux/rpmsg/ns.h
>>>>>>  create mode 100644 include/uapi/linux/rpmsg_types.h
>>>>>>
>>>>>> --
>>>>>> 2.25.1
>>>>>>