All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Sjur BRENDELAND <sjur.brandeland@stericsson.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	"sjurbren@gmail.com" <sjurbren@gmail.com>,
	"Ohad Ben-Cohen" <ohad@wizery.com>
Subject: Re: [PATCH 0/9] XSHM: Shared Memory Driver for ST-E Thor M7400 LTE modem
Date: Thu, 22 Mar 2012 16:57:09 +0000	[thread overview]
Message-ID: <201203221657.09820.arnd@arndb.de> (raw)
In-Reply-To: <81C3A93C17462B4BBD7E272753C105792060B42C9C@EXDCVYMBSTM005.EQ1STM.local>

On Thursday 22 March 2012, Sjur BRENDELAND wrote:
> Hi Arnd,
> 
> I've got some updates since my last reply from December...
> 
> [Arnd]
> >>> Also, to what degree is the protocol design flexible? Is the modem
> >>> side fixed, so you have to live with any shortcomings of the interface,
> >>> or are you at this point able to improve both sides when something
> >>> is found to be lacking?
> 
> I have started working on the next generation shared memory interface for
> ST-Ericsson modems. So the interface design is now flexible! This means that
> I can be open to input and new ideas, at least for the next month or two.
> I'm hoping (if time allows) to prototype and post some patches while working
> on the specification.

Ok, very good.

> [Sjur]
> >> However for the long term perspective: we expect this interface to evolve
> >> for future products, so suggestions and input for improvements is welcome.
> >> rpmsg or at least the use of virtio-ring combined with a true end-to-end
> >> zero copy is something we definitely are interested to look into for the
> >> future.
> 
> My current idea for the new interface design is to use Virtio channels for
> transporting CAIF frames. The CAIF interface could be implemented as a
> virtio-driver using separate RX and TX rings.
> 
> For uplink traffic (TX) we could (initially) copy SKB into a buffer located in
> the shared-memory area, and add the buffer to the Virtio-ring. We will need
> to manage a fixed size buffer pool of uplink data buffers. (I don't think we
> will be able to access the kernel memory from the modem, so I cannot put SKB
> content directly on the virtio-ring as virtio-net does)
> 
> For Downlink payload (RX) I'm planning on using a reversed virtio-ring.
> The modem has its own sophisticated memory allocator for payload and
> implements mechanisms for efficient buffer handling inside the modem.
> The modem could add the payload buffer on the virtual-ring without
> copying and kick the host.

Remoteproc and rpmsg are now in the arm-soc tree and will be merged
upstream for v3.4, I suggest you discuss with Ohad how to best hook in
there.

What is the limitation for the addressing here, i.e. why can't the
modem access all of the host memory?

> [Sjur:]
> >>>> The driver for the stream channel is implemented as a character device
> ...
> [Arnd:]
> > My feeling is that a character device is not the ideal implementation here,
> > but I'm not sure what is. One option I can see is to declare the stream
> > interface part of the configuration logic and do everything through netlink,
> > packetizing the stream data in netlink frames. Alternatively, a tty port
> > device might be more appropriate than a plain chardev. Both of these
> > are likely a bit slower than what you have today, but my impression is that
> > performance is not the main design goal for the stream interface. If it is,
> > the best option would probably be to allow user space to mmap the buffer and
> > do the implementation in an application outside of the kernel.
> 
> For the stream interface it's tempting to reuse the ring buffer interface
> to the modem from last time. But perhaps the Virtio-console could be as the
> user-space interface, with a slim virtual device underneath feeding data
> from the ring-buffer into a virtual-ring...?

sounds doable, but again Ohad may have better suggestions as well.

	Arnd

  reply	other threads:[~2012-03-22 16:57 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-07  9:27 [PATCH 0/9] XSHM: Shared Memory Driver for ST-E Thor M7400 LTE modem Sjur Brændeland
2011-12-07  9:28 ` [PATCH 1/9] xshm: Shared Memory layout for ST-E M7400 driver Sjur Brændeland
2011-12-07  9:28 ` [PATCH 2/9] xshm: Channel config definitions " Sjur Brændeland
2011-12-07  9:28 ` [PATCH 3/9] xshm: Config data use for platform devices Sjur Brændeland
2011-12-07  9:28 ` [PATCH 4/9] xshm: geni/geno driver interface Sjur Brændeland
2011-12-07  9:28 ` [PATCH 5/9] xshm: genio dummy driver Sjur Brændeland
2011-12-07  9:28 ` [PATCH 6/9] xshm: Platform device for XSHM Sjur Brændeland
2011-12-07  9:28 ` [PATCH 7/9] xshm: Character device for XSHM channel access Sjur Brændeland
2011-12-07  9:28 ` [PATCH 8/9] xshm: Makefile and Kconfig for M7400 Shared Memory Drivers Sjur Brændeland
2011-12-07 12:57   ` Linus Walleij
2011-12-07  9:28 ` [PATCH 9/9] caif-xshm: Add CAIF driver for Shared memory for M7400 Sjur Brændeland
2011-12-07 12:30 ` [PATCH 0/9] XSHM: Shared Memory Driver for ST-E Thor M7400 LTE modem Arnd Bergmann
2011-12-07 15:44   ` Sjur BRENDELAND
2011-12-09 14:42     ` Arnd Bergmann
2011-12-12  9:05       ` Sjur BRENDELAND
2012-03-22 14:31       ` Sjur BRENDELAND
2012-03-22 16:57         ` Arnd Bergmann [this message]
2012-03-27 13:15           ` Using remoteproc with ST-Ericsson modem Sjur BRENDELAND
2012-03-27 13:56             ` Ohad Ben-Cohen
2012-03-28  9:33               ` Sjur BRENDELAND
2012-03-28 15:55                 ` Ohad Ben-Cohen
2012-03-28 17:31                   ` Sjur BRENDELAND
2012-03-31 19:04                     ` Ohad Ben-Cohen
2012-03-31 21:25                       ` Sjur Brændeland
2012-04-01  6:15                         ` Ohad Ben-Cohen
2011-12-07 12:50 ` [PATCH 0/9] XSHM: Shared Memory Driver for ST-E Thor M7400 LTE modem Linus Walleij

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=201203221657.09820.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=linus.walleij@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ohad@wizery.com \
    --cc=sjur.brandeland@stericsson.com \
    --cc=sjurbren@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.