linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: swetland@google.com (Brian Swetland)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC 0/8] Introducing a generic AMP/IPC framework
Date: Sat, 25 Jun 2011 18:17:05 -0700	[thread overview]
Message-ID: <BANLkTi=wOGV9jv4XxrLn6FUuBKH0HGxxNw@mail.gmail.com> (raw)
In-Reply-To: <BANLkTi=sFtwam29i4TZdi=RO7BoytTTdrw@mail.gmail.com>

On Sat, Jun 25, 2011 at 6:11 PM, Ohad Ben-Cohen <ohad@wizery.com> wrote:
> Hi Stephen,
>
> On Fri, Jun 24, 2011 at 11:16 PM, Stephen Boyd <sboyd@codeaurora.org> wrote:
>> This sounds a lot like SMD (shared memory driver) on MSM. The main
>> difference I see is that SMD uses the platform bus instead of the virtio
>> bus and it has its own protocol for channel allocation.
>
> Yeah, virtio is a key factor in this work; it was suggested to us by
> Arnd at the AMP plumbers discussions last year, where it was apparent
> that many vendors have their own IPC drivers/buses/channels over
> shared memory with some vendor-ish binary protocol. I must say we
> really liked virtio: it considerably simplified the code (we're not
> adding any new binary protocol), it's very nicely optimized and
> flexible, and it comes with a set of virtio drivers (e.g. network,
> console, block) so we don't have to write our own.
>
> We also cared about adding this functionality as an IPC bus, so the
> driver core will help matching drivers to channels - it simplified the
> code (in both setup and tear down of channels) and kept it flexible.
> It will also facilitate error recovery (on remote crash, we just
> remove the virtio device, and then the driver core will in turn start
> ->remove()ing the rpmsg drivers) and power management (via runtime
> PM).
>
> About SMD: I'm not familiar with it too much, but Brian naturally is
> (just for the sake of everyone who are not reading headers - Brian
> Swetland wrote the Linux SMD driver, and is also an author of this
> Google+TI joint work).

rpmsg definitely shares some design features with SMD (given that I
wrote the linux SMD driver and was involved in the design of rpmsg,
this is maybe unsurprising), but whereas in SMD we had to be
compatible with existing AMSS modems (to a degree), we had more
flexibility in the "wire protocol" on rpmsg and virtio looked like a
really nice fit that already was in the kernel.

Ohad had a number of great ideas for making the dynamic discovery,
publishing, and binding of remote services very clean and
straightforward -- I wish I had a chance to pick his brain about this
stuff back when building the SMD interfaces, which started out fairly
static, but then evolved into publishing platform devices, etc.  Of
course some of this is the benefit of hindsight.  It's easier to get
it right (er?) the second or third time around.

The TI SYS/BIOS folks were quite helpful and patient as we redesigned
the wire protocol and publishing/resource model several times along
the way here.

Brian

  reply	other threads:[~2011-06-26  1:17 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-21  7:18 [RFC 0/8] Introducing a generic AMP/IPC framework Ohad Ben-Cohen
     [not found] ` <BANLkTimn-THKipuQVHLA9i3QSoO5RTqMtA@mail.gmail.com>
2011-06-21  9:30   ` Ohad Ben-Cohen
2011-06-21 14:20 ` Arnd Bergmann
2011-06-21 15:54   ` Grant Likely
2011-06-22 11:41   ` Ohad Ben-Cohen
2011-06-22 13:05     ` Arnd Bergmann
2011-06-22 13:09       ` Ohad Ben-Cohen
     [not found] ` <1308640714-17961-3-git-send-email-ohad@wizery.com>
2011-06-22 10:05   ` [RFC 2/8] remoteproc: add omap implementation Will Newton
2011-06-22 10:50     ` Ohad Ben-Cohen
2011-06-27 21:00   ` Grant Likely
2011-06-29 15:04     ` Ohad Ben-Cohen
2011-06-29 15:31       ` Grant Likely
2011-06-23 12:23 ` [RFC 0/8] Introducing a generic AMP/IPC framework Michael Williamson
2011-06-23 16:27   ` Grosen, Mark
2011-06-23 18:46     ` Arnd Bergmann
2011-06-24  4:32       ` Grosen, Mark
     [not found] ` <1308640714-17961-6-git-send-email-ohad@wizery.com>
2011-06-23 15:27   ` [RFC 5/8] remoteproc: add davinci implementation Sergei Shtylyov
2011-06-24  4:25     ` Grosen, Mark
2011-06-24 15:13       ` Sergei Shtylyov
2011-06-24 15:43         ` Nori, Sekhar
2011-06-27 18:31           ` Grosen, Mark
2011-07-05  5:29             ` Nori, Sekhar
2011-07-05 16:54               ` Grosen, Mark
2011-07-05  5:34             ` Nori, Sekhar
2011-07-05 16:54               ` Grosen, Mark
2011-07-06  4:36                 ` Nori, Sekhar
2011-06-27 18:20         ` Grosen, Mark
2011-06-28  9:36           ` Nori, Sekhar
2011-06-24 20:16 ` [RFC 0/8] Introducing a generic AMP/IPC framework Stephen Boyd
2011-06-26  1:11   ` Ohad Ben-Cohen
2011-06-26  1:17     ` Brian Swetland [this message]
2011-06-27 21:22     ` Grosen, Mark
2011-06-28 11:26       ` Ohad Ben-Cohen
2011-06-28 11:36         ` Brian Swetland
     [not found] ` <1308640714-17961-2-git-send-email-ohad@wizery.com>
2011-06-22 17:55   ` [RFC 1/8] drivers: add generic remoteproc framework Randy Dunlap
2011-06-22 19:11     ` Ohad Ben-Cohen
2011-06-27 20:49   ` Grant Likely
2011-06-27 21:52     ` Grosen, Mark
2011-06-27 22:24       ` Grant Likely
2011-06-27 23:54         ` Grosen, Mark
2011-06-27 23:29     ` Russell King - ARM Linux
2011-06-27 23:35       ` Grant Likely
2011-06-28 21:55       ` Ohad Ben-Cohen
2011-06-28 21:41     ` Ohad Ben-Cohen
     [not found] ` <1308640714-17961-8-git-send-email-ohad@wizery.com>
2011-06-22  2:42   ` [RFC 7/8] drivers: introduce rpmsg, a remote-processor messaging bus Rusty Russell
2011-06-22  3:11     ` Sasha Levin
2011-06-22 10:46     ` Ohad Ben-Cohen
2011-09-14 18:38       ` Ohad Ben-Cohen
2011-09-15  0:12         ` Rusty Russell
2011-09-15 14:56           ` Ohad Ben-Cohen
2011-06-27 22:21   ` Grant Likely
2011-06-28 22:46     ` Ohad Ben-Cohen
2011-06-28 22:51       ` Grant Likely
2011-06-28 23:00         ` Ohad Ben-Cohen
2011-06-29 15:43           ` Grant Likely
2011-07-01 15:13             ` Ohad Ben-Cohen
2011-06-28 23:44   ` Randy Dunlap
2011-06-29  6:30     ` Ohad Ben-Cohen
2011-06-29 11:59       ` Arnd Bergmann
2011-06-29 12:29         ` Ohad Ben-Cohen
2011-07-18 22:07   ` Pavel Machek
2011-07-19  5:38     ` Ohad Ben-Cohen
     [not found] ` <1308640714-17961-7-git-send-email-ohad@wizery.com>
2011-06-28 10:18   ` [RFC 6/8] davinci: da850: add remoteproc dsp device Sergei Shtylyov

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='BANLkTi=wOGV9jv4XxrLn6FUuBKH0HGxxNw@mail.gmail.com' \
    --to=swetland@google.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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;
as well as URLs for NNTP newsgroup(s).