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

From: Kishon Vijay Abraham I
Date: Mon Dec 07 2020 - 10:36:55 EST


+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@xxxxxxxxxxxxxxx> 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@xxxxxx

>
>> 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@xxxxxxxxxxxxxxx>
>>>>> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@xxxxxxxxxxxxxxx>
>>>>>
>>>>> 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
>>>>>>