Linux Remote Processor Subsystem development
 help / color / mirror / Atom feed
From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Michele Rodolfi <michele.rodolfi@t3lab.it>
Cc: Matteo Sartori <matteo.sartori@t3lab.it>,
	Claudio Salati <claudio.salati@t3lab.it>,
	linux-remoteproc@vger.kernel.org,
	Alessio Paccoia <alessio.paccoia@t3lab.it>,
	marek.novak@nxp.com
Subject: Re: rpmsg: socket ipc based on rpmsg
Date: Wed, 19 Oct 2016 11:51:45 -0700	[thread overview]
Message-ID: <20161019185145.GK7509@tuxbot> (raw)
In-Reply-To: <CAHXzriGGGVdgVEXTae5df3AUdAa+4zzwPV8iEfSAO4XhFR9TLw@mail.gmail.com>

On Mon 10 Oct 03:30 PDT 2016, Michele Rodolfi wrote:

> Hi Bjorn, hi all

Hi Michele

> I just want to clarify that the patch I sent, which implements a
> socket interface, was not meant to export the bus interface to the
> user level, but rather adds a new transport protocol level allowing
> user threads residing in different cores and different OSs to
> communicate using socket as in a classic network scenario.

Thanks for clarifying. This is what your patch implemented, I just
assumed it was related to the ongoing discussions on how to expose
channels to user space, sorry about that.

> This transport protocol, we can call it RPMSG_DGRAM_PROTO, uses rpmsg
> as data-link layer and uses its own mux/demux system based on port
> numbers as in UDP. These port numbers are not the rpmsg endpoints.
> RPMSG_DGRAM_PROTO indeed relies on one single rpmsg endpoint and the
> user threads don't need to know it.

Ok

> The driver initiates the socket interface upon the creation of a rpmsg
> channel named "rpmsg-proto" (this is how the code works now, but maybe
> "rpmsg-dgram-proto" is a better choice), therefore the protocol is
> bound to the local endpoint of that channel.

Initiating this on basis of a specific rpmsg channel coming and going is
good. It's important to handle the case with multiple remoteprocs
exposing the same interface - which I believe you handled in your patch.

> Basically I want to enable threads to perform IPC using socket over
> rpmsg in a Network On Chip scenario.

Can you elaborate on the benefits in introducing this mechanism in your
case?

> Of course I needed to figure out how to statically address the remote
> processors and I did it using aliases in the device tree.

As far as I understand, the aliases approach is not going to be accepted
by the DeviceTree maintainers.

> I think there may be use cases that can exploit this approach.
> What do you think?
> 

You have such a mechanism implemented in the Qualcomm platform
(net/qrtr), where packets are routed to ports on the various
co-processors in the system. The underlaying mechanism there is a
point-to-point non-muxing channel, so an additional layer is needed to
reduce the resource usage from using native channels directly.

Regards,
Bjorn

  reply	other threads:[~2016-10-19 18:51 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-10 10:30 rpmsg: socket ipc based on rpmsg Michele Rodolfi
2016-10-19 18:51 ` Bjorn Andersson [this message]
2016-11-24 11:48   ` Michele Rodolfi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161019185145.GK7509@tuxbot \
    --to=bjorn.andersson@linaro.org \
    --cc=alessio.paccoia@t3lab.it \
    --cc=claudio.salati@t3lab.it \
    --cc=linux-remoteproc@vger.kernel.org \
    --cc=marek.novak@nxp.com \
    --cc=matteo.sartori@t3lab.it \
    --cc=michele.rodolfi@t3lab.it \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox