From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.2 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C1441C43464 for ; Fri, 18 Sep 2020 05:45:25 +0000 (UTC) Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 02BF22083B for ; Fri, 18 Sep 2020 05:45:24 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 02BF22083B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=virtualization-bounces@lists.linux-foundation.org Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 921EA8778D; Fri, 18 Sep 2020 05:45:24 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QpUgCaKsAdMA; Fri, 18 Sep 2020 05:45:23 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by hemlock.osuosl.org (Postfix) with ESMTP id 9A36087630; Fri, 18 Sep 2020 05:45:23 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 7CC4BC0888; Fri, 18 Sep 2020 05:45:23 +0000 (UTC) Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 986A5C0051 for ; Fri, 18 Sep 2020 05:45:21 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 8DE4987635 for ; Fri, 18 Sep 2020 05:45:21 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GBCn8TFGQCYH for ; Fri, 18 Sep 2020 05:45:20 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by hemlock.osuosl.org (Postfix) with ESMTPS id 7B37187630 for ; Fri, 18 Sep 2020 05:45:20 +0000 (UTC) IronPort-SDR: md20zmvmkATTcJ5o0qWTwpk2NAgfbKqmOkxxFVCyXlS6y3dXp0LnAPsgUKb50XjqID9sb5/93z 68MbY+Ds2NAw== X-IronPort-AV: E=McAfee;i="6000,8403,9747"; a="224030126" X-IronPort-AV: E=Sophos;i="5.77,273,1596524400"; d="scan'208";a="224030126" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Sep 2020 22:45:17 -0700 IronPort-SDR: jiK68K5tmFI0Wcfr+15JEKRMQYv0tF1UIvxFlfqBowFobJlVyojLBHXCiv9nsJaqoeCV+ZbnEZ GNFKsC9cwgUw== X-IronPort-AV: E=Sophos;i="5.77,273,1596524400"; d="scan'208";a="452620157" Received: from gliakhov-mobl2.ger.corp.intel.com (HELO ubuntu) ([10.252.42.33]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Sep 2020 22:45:13 -0700 Date: Fri, 18 Sep 2020 07:44:21 +0200 From: Guennadi Liakhovetski To: Arnaud POULIQUEN Subject: Re: [PATCH v6 0/4] Add a vhost RPMsg API Message-ID: <20200918054420.GA19246@ubuntu> References: <20200901151153.28111-1-guennadi.liakhovetski@linux.intel.com> <9433695b-5757-db73-bd8a-538fd1375e2a@st.com> <20200917054705.GA11491@ubuntu> <47a9ad01-c922-3b1c-84de-433f229ffba3@st.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <47a9ad01-c922-3b1c-84de-433f229ffba3@st.com> User-Agent: Mutt/1.10.1 (2018-07-13) Cc: Ohad Ben-Cohen , Mathieu Poirier , "kvm@vger.kernel.org" , "Michael S. Tsirkin" , Vincent Whitchurch , "linux-remoteproc@vger.kernel.org" , Pierre-Louis Bossart , "virtualization@lists.linux-foundation.org" , Liam Girdwood , Bjorn Andersson , "sound-open-firmware@alsa-project.org" X-BeenThere: virtualization@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux virtualization List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" Hi Arnaud, On Thu, Sep 17, 2020 at 05:21:02PM +0200, Arnaud POULIQUEN wrote: > Hi Guennadi, > > > -----Original Message----- > > From: Guennadi Liakhovetski > > Sent: jeudi 17 septembre 2020 07:47 > > To: Arnaud POULIQUEN > > Cc: kvm@vger.kernel.org; linux-remoteproc@vger.kernel.org; > > virtualization@lists.linux-foundation.org; sound-open-firmware@alsa- > > project.org; Pierre-Louis Bossart ; Liam > > Girdwood ; Michael S. Tsirkin > > ; Jason Wang ; Ohad Ben-Cohen > > ; Bjorn Andersson ; Mathieu > > Poirier ; Vincent Whitchurch > > > > Subject: Re: [PATCH v6 0/4] Add a vhost RPMsg API > > > > Hi Arnaud, > > > > On Tue, Sep 15, 2020 at 02:13:23PM +0200, Arnaud POULIQUEN wrote: > > > Hi Guennadi, > > > > > > On 9/1/20 5:11 PM, Guennadi Liakhovetski wrote: > > > > Hi, > > > > > > > > Next update: > > > > > > > > v6: > > > > - rename include/linux/virtio_rpmsg.h -> > > > > include/linux/rpmsg/virtio.h > > > > > > > > v5: > > > > - don't hard-code message layout > > > > > > > > v4: > > > > - add endianness conversions to comply with the VirtIO standard > > > > > > > > v3: > > > > - address several checkpatch warnings > > > > - address comments from Mathieu Poirier > > > > > > > > v2: > > > > - update patch #5 with a correct vhost_dev_init() prototype > > > > - drop patch #6 - it depends on a different patch, that is currently > > > > an RFC > > > > - address comments from Pierre-Louis Bossart: > > > > * remove "default n" from Kconfig > > > > > > > > Linux supports RPMsg over VirtIO for "remote processor" / AMP use > > > > cases. It can however also be used for virtualisation scenarios, > > > > e.g. when using KVM to run Linux on both the host and the guests. > > > > This patch set adds a wrapper API to facilitate writing vhost > > > > drivers for such RPMsg-based solutions. The first use case is an > > > > audio DSP virtualisation project, currently under development, ready > > > > for review and submission, available at > > > > https://github.com/thesofproject/linux/pull/1501/commits > > > > > > Mathieu pointed me your series. On my side i proposed the rpmsg_ns_msg > > > service[1] that does not match with your implementation. > > > As i come late, i hope that i did not miss something in the history... > > > Don't hesitate to point me the discussions, if it is the case. > > > > Well, as you see, this is a v6 only of this patch set, and apart from it there have > > been several side discussions and patch sets. > > > > > Regarding your patchset, it is quite confusing for me. It seems that > > > you implement your own protocol on top of vhost forked from the RPMsg > > one. > > > But look to me that it is not the RPMsg protocol. > > > > I'm implementing a counterpart to the rpmsg protocol over VirtIO as initially > > implemented by drivers/rpmsg/virtio_rpmsg_bus.c for the "main CPU" (in case > > of remoteproc over VirtIO) or the guest side in case of Linux virtualisation. > > Since my implementation can talk to that driver, I don't think, that I'm inventing > > a new protocol. I'm adding support for the same protocol for the opposite side > > of the VirtIO divide. > > The main point I would like to highlight here is related to the use of the name "RPMsg" > more than how you implement your IPC protocol. > If It is a counterpart, it probably does not respect interface for RPMsg clients. > A good way to answer this, might be to respond to this question: > Is the rpmsg sample client[4] can be used on top of your vhost RPMsg implementation? > If the response is no, describe it as a RPMsg implementation could lead to confusion... Sorry, I don't quite understand your logic. RPMsg is a communication protocol, not an API. An RPMsg implementation has to be able to communicate with other compliant RPMsg implementations, it doesn't have to provide any specific API. Am I missing anything? Thanks Guennadi > [4] https://elixir.bootlin.com/linux/v5.9-rc5/source/samples/rpmsg/rpmsg_client_sample.c > > Regards, > Arnaud > > > > > > So i would be agree with Vincent[2] which proposed to switch on a > > > RPMsg API and creating a vhost rpmsg device. This is also proposed in > > > the "Enhance VHOST to enable SoC-to-SoC communication" RFC[3]. > > > Do you think that this alternative could match with your need? > > > > As I replied to Vincent, I understand his proposal and the approach taken in the > > series [3], but I'm not sure I agree, that adding yet another virtual device / > > driver layer on the vhost side is a good idea. As far as I understand adding new > > completely virtual devices isn't considered to be a good practice in the kernel. > > Currently vhost is just a passive "library" > > and my vhost-rpmsg support keeps it that way. Not sure I'm in favour of > > converting vhost to a virtual device infrastructure. > > > > Thanks for pointing me out at [3], I should have a better look at it. > > > > Thanks > > Guennadi > > > > > [1]. > > > https://patchwork.kernel.org/project/linux-remoteproc/list/?series=338 > > > 335 [2]. > > > https://www.spinics.net/lists/linux-virtualization/msg44195.html > > > [3]. https://www.spinics.net/lists/linux-remoteproc/msg06634.html > > > > > > Thanks, > > > Arnaud > > > > > > > > > > > Thanks > > > > Guennadi > > > > > > > > Guennadi Liakhovetski (4): > > > > vhost: convert VHOST_VSOCK_SET_RUNNING to a generic ioctl > > > > rpmsg: move common structures and defines to headers > > > > rpmsg: update documentation > > > > vhost: add an RPMsg API > > > > > > > > Documentation/rpmsg.txt | 6 +- > > > > drivers/rpmsg/virtio_rpmsg_bus.c | 78 +------ > > > > drivers/vhost/Kconfig | 7 + > > > > drivers/vhost/Makefile | 3 + > > > > drivers/vhost/rpmsg.c | 373 +++++++++++++++++++++++++++++++ > > > > drivers/vhost/vhost_rpmsg.h | 74 ++++++ > > > > include/linux/rpmsg/virtio.h | 83 +++++++ > > > > include/uapi/linux/rpmsg.h | 3 + > > > > include/uapi/linux/vhost.h | 4 +- > > > > 9 files changed, 551 insertions(+), 80 deletions(-) create mode > > > > 100644 drivers/vhost/rpmsg.c create mode 100644 > > > > drivers/vhost/vhost_rpmsg.h create mode 100644 > > > > include/linux/rpmsg/virtio.h > > > > _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization