public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: cyril@ti•com (Cyril Chemparathy)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH v7 01/10] ARM: davinci: move private EDMA API to arm/common
Date: Mon, 4 Feb 2013 16:54:45 -0500	[thread overview]
Message-ID: <51102E25.8040107@ti.com> (raw)
In-Reply-To: <CACRpkdbPyZt8=pLhz-5qcaSSAk6VBn61dPTNp6teU9HksBwN2w@mail.gmail.com>

On 02/04/2013 04:11 PM, Linus Walleij wrote:
> On Mon, Feb 4, 2013 at 9:33 PM, Mark Brown
> <broonie@opensource•wolfsonmicro.com> wrote:
>> On Mon, Feb 04, 2013 at 09:29:46PM +0100, Linus Walleij wrote:
>>> On Mon, Feb 4, 2013 at 8:22 PM, Cyril Chemparathy <cyril@ti•com> wrote:
>>
>>>> Based on our experience with fitting multiple subsystems on top of this
>>>> DMA-Engine driver, I must say that the DMA-Engine interface has proven
>>>> to be a less than ideal fit for the network driver use case.
>>
>>>> The first problem is that the DMA-Engine interface expects to "push"
>>>> completed traffic up into the upper layer as a part of its callback.
>>>> This doesn't fit cleanly with NAPI, which expects to "pull" completed
>>>> traffic from below in the NAPI poll.  We've somehow kludged together a
>>>> solution around this, but it isn't very elegant.
>>
>>> I cannot understand the actual technical problem from the above
>>> paragraphs though. dmaengine doesn't have a concept of pushing
>>> nor polling, it basically copies streams of words from A to B, where
>>> A/B can be a device or a buffer, nothing else.
>>
>>> The thing you're looking for sounds more like an adapter on top
>>> of dmaengine, which can surely be constructed, some
>>> drivers/dma/dmaengine-napi.c or whatever.
>>
>> Broadly speaking what NAPI wants is to never get any callbacks from the
>> hardware (or DMAs).  It wants to wake up periodically, take a look at
>> what packets have been read by the hardware and process them.  The goal
>> is to have the DMAs sitting and running without disturbing the processor
>> at all after the first packet has been handled.
>
> OK we should definately be able to encompass that in dmaengine
> quite easily.
>
> So I think the above concerns are moot. The callback we can
> set on cookies is entirely optional, and it's even implemented by
> each DMA engine, and some may not even support it but *require*
> polling, and then it won't even be implemented by the driver.
>
> Which probably stems from the original design of the dmaengine
> API, which was for TCP networking acceleration, mainly.
>
> Cyril, just stack up the cookies and take a sweep over them to see
> which ones are baked when the NAPI poll comes in -> problem
> solved.
>

You're assuming that cookies complete in order.  That is not necessarily 
true.

Thanks
-- Cyril.

  parent reply	other threads:[~2013-02-04 21:54 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-01 18:22 [PATCH v7 00/10] DMA Engine support for AM33XX Matt Porter
2013-02-01 18:22 ` [PATCH v7 01/10] ARM: davinci: move private EDMA API to arm/common Matt Porter
2013-02-01 18:41   ` Tony Lindgren
2013-02-02 12:49     ` Russell King - ARM Linux
2013-02-02 14:44       ` Matt Porter
     [not found]   ` <5022f635a527470dbd0be932063e9cd2@DFLE72.ent.ti.com>
2013-02-01 18:49     ` Matt Porter
     [not found]       ` <2077c13e12314dc3adc8e5b653855da0@DFLE72.ent.ti.com>
2013-02-01 18:59         ` Matt Porter
2013-02-02  0:01           ` Sergei Shtylyov
2013-02-02 12:45           ` Russell King - ARM Linux
2013-02-02 17:27             ` Sergei Shtylyov
     [not found]           ` <e9be6668da8b4372a04687847daa1d8c@DFLE72.ent.ti.com>
2013-02-02 18:07             ` Matt Porter
2013-02-02 18:16               ` Tony Lindgren
2013-02-02 19:48                 ` Matt Porter
2013-02-02 21:02                   ` Tony Lindgren
2013-02-02 19:06               ` Sergei Shtylyov
     [not found]               ` <3245316d7aa94b2e823f98b69497547d@DLEE74.ent.ti.com>
2013-02-02 19:55                 ` Matt Porter
2013-02-02 20:18                   ` Sergei Shtylyov
2013-02-01 19:52       ` Sergei Shtylyov
2013-02-01 18:58         ` Felipe Balbi
2013-02-01 20:49           ` Sergei Shtylyov
2013-02-01 20:56             ` Felipe Balbi
2013-02-01 21:30               ` Russell King - ARM Linux
2013-02-02  0:07                 ` Sergei Shtylyov
2013-02-02  0:44                   ` Russell King - ARM Linux
2013-02-02  2:09                     ` Sergei Shtylyov
2013-02-02 10:18                       ` Russell King - ARM Linux
2013-02-02 12:17                         ` Russell King - ARM Linux
2013-02-02 17:02                           ` Sergei Shtylyov
2013-02-02 16:27                         ` Sergei Shtylyov
2013-02-02 16:45                           ` Russell King - ARM Linux
2013-02-02 17:17                             ` Sergei Shtylyov
2013-02-04 14:27                   ` Arnd Bergmann
2013-02-02  0:13                 ` Sergei Shtylyov
2013-02-04 15:41                 ` Felipe Balbi
2013-02-04 15:45                   ` Russell King - ARM Linux
2013-02-04 17:36                   ` Sergei Shtylyov
2013-02-04 16:47                     ` Felipe Balbi
2013-02-04 17:10                       ` Russell King - ARM Linux
2013-02-04 17:54                       ` Sergei Shtylyov
2013-02-04 17:02                         ` Felipe Balbi
2013-02-04 18:22                           ` Sergei Shtylyov
2013-02-04 19:22                           ` Cyril Chemparathy
2013-02-04 20:29                             ` Linus Walleij
2013-02-04 20:33                               ` Mark Brown
2013-02-04 21:11                                 ` Linus Walleij
2013-02-04 21:47                                   ` Arnd Bergmann
2013-02-05 12:38                                     ` Russell King - ARM Linux
2013-02-05 15:37                                       ` Cyril Chemparathy
2013-02-04 21:54                                   ` Cyril Chemparathy [this message]
2013-02-05 12:41                                     ` Russell King - ARM Linux
2013-02-05 15:42                                       ` Cyril Chemparathy
2013-02-05 15:30                                     ` Linus Walleij
2013-02-05 17:14                                       ` Russell King - ARM Linux
2013-02-05 18:33                                         ` Linus Walleij
2013-02-04 22:30                               ` Cyril Chemparathy
2013-02-05 16:21                                 ` Linus Walleij
2013-02-05 16:47                                   ` Mark Brown
2013-02-05 17:06                                     ` Russell King - ARM Linux
2013-02-05 17:41                                       ` Mark Brown
2013-02-05 18:29                                     ` Linus Walleij
2013-02-05 19:45                                       ` Cyril Chemparathy
2013-02-05 18:28                   ` Tony Lindgren
2013-02-05 22:26                     ` Arnd Bergmann
2013-02-06  7:45                       ` Felipe Balbi
2013-02-01 23:10               ` Sergei Shtylyov
2013-02-09 16:05   ` Sekhar Nori
2013-02-09 20:08     ` Russell King - ARM Linux
2013-03-04 22:05     ` Matt Porter
     [not found]     ` <e92425fefcc04bb4ab739ec8d4e82672@DLEE74.ent.ti.com>
2013-03-04 22:12       ` Matt Porter
2013-02-01 18:22 ` [PATCH v7 02/10] ARM: edma: remove unused transfer controller handlers Matt Porter
2013-02-01 18:22 ` [PATCH v7 03/10] ARM: edma: add AM33XX support to the private EDMA API Matt Porter
2013-02-01 18:22 ` [PATCH v7 04/10] dmaengine: edma: enable build for AM33XX Matt Porter
2013-02-01 18:22 ` [PATCH v7 05/10] dmaengine: edma: Add TI EDMA device tree binding Matt Porter
2013-02-01 18:26   ` Matt Porter
2013-02-01 18:22 ` [PATCH v7 06/10] ARM: dts: add AM33XX EDMA support Matt Porter
2013-02-01 18:22 ` [PATCH v7 07/10] dmaengine: add dma_request_slave_channel_compat() Matt Porter
2013-02-01 18:28   ` Matt Porter
2013-02-12 16:38   ` Vinod Koul
2013-02-01 18:22 ` [PATCH v7 08/10] spi: omap2-mcspi: convert to dma_request_slave_channel_compat() Matt Porter
2013-02-01 18:22 ` [PATCH v7 09/10] spi: omap2-mcspi: add generic DMA request support to the DT binding Matt Porter
2013-02-01 18:22 ` [PATCH v7 10/10] ARM: dts: add AM33XX SPI DMA support Matt Porter
2013-02-01 18:32 ` [PATCH v7 00/10] DMA Engine support for AM33XX Matt Porter

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=51102E25.8040107@ti.com \
    --to=cyril@ti$(echo .)com \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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