From: ben-linux@fluff.org (Ben Dooks)
To: linux-arm-kernel@lists.infradead.org
Subject: Problem with dma_alloc_coherent at linux-2.6.33-arm1 , with RealView platform,board PBX-A9 and armv7 instructions.
Date: Thu, 15 Jul 2010 10:31:07 +0100 [thread overview]
Message-ID: <20100715093107.GB17605@trinity.fluff.org> (raw)
In-Reply-To: <AANLkTimtpIQaKVHidWP9fvOKGGiQRc0tne1kO5mO-Zzs@mail.gmail.com>
On Thu, Jul 15, 2010 at 05:13:57PM +0800, David Yang wrote:
> hi ,everybody:
>
> I encountered this problem when porting my ethernet driver from
> linux-2.6.28 to linux-2.6.33-arm1.
>
> In the linux-2.6.28, I used the dma_alloc_coherent to share the
> informations between cpu and ethernet device.The program flow in the
> function ndo_start_xmit:
> 1,preparing the struct sk_buff->data for device internal DMA to
> read,using the dma_map_single function.
> 2,update the information in the memory which is allocated by
> dma_alloc_coherent to tell the device DMA the data is readable.
> 3,write the device register to inform the device DMA
> to read the data.
> 4,cpu captures the interrupt of reading completion
> form the device.
>
> In the linux-2.6.28,the whole program flow soon complete in order.
> But when the driver was ported to the linux-2.6.33-arm1,the problem
> came:
> I found when the cpu executed from step 1-3, the
> device DMA alarm the
> step 2 was not completed.As a result,the step 4 was not triggered.This
> is different form linux-2.6.28.
>
> After some tests, I think the problem comes from the
> dma_alloc_coherent.It looks like ,in the linux-2.6.33-arm1, when the
> memory allocated by dma_alloc_coherent is written,the data entry into
> the ddr much slower than the same process in linux-2.6.28.Therefore,when
> cpu has executed the step 3, the step 2 has not yet completed.So the DMA
> can't get the correct information ,and the step 4 will never be reached.
>
> I don't know the reason until now.I guess the memory allocated by the
> dma_alloc_coherent may be cached....if not , why it is so slowly?
The dma_alloc_coherent coherent should return uncachable and un-bufferable
memory, otherwise you meed explicit flushing commands when changing between
the HW and CPU ownership.
--
Ben
Q: What's a light-year?
A: One-third less calories than a regular year.
next prev parent reply other threads:[~2010-07-15 9:31 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-15 9:13 Problem with dma_alloc_coherent at linux-2.6.33-arm1 , with RealView platform,board PBX-A9 and armv7 instructions David Yang
2010-07-15 9:31 ` Ben Dooks [this message]
2010-07-15 9:38 ` Russell King - ARM Linux
2010-07-15 9:56 ` David Yang
2010-07-15 9:59 ` Russell King - ARM Linux
2010-07-15 10:06 ` David Yang
2010-07-15 10:04 ` Shilimkar, Santosh
2010-07-15 10:09 ` Russell King - ARM Linux
2010-07-15 11:16 ` David Yang
2010-07-15 11:28 ` Russell King - ARM Linux
2010-07-15 12:15 ` Problem with dma_alloc_coherent at linux-2.6.33-arm1 , withRealView " Catalin Marinas
2010-07-15 9:40 ` Problem with dma_alloc_coherent at linux-2.6.33-arm1 , with RealView " David Yang
2010-07-15 12:19 ` Problem with dma_alloc_coherent at linux-2.6.33-arm1 , withRealView " Catalin Marinas
2010-07-15 9:35 ` Problem with dma_alloc_coherent at linux-2.6.33-arm1 , with RealView " Russell King - ARM Linux
2010-07-15 12:21 ` Problem with dma_alloc_coherent at linux-2.6.33-arm1 , withRealView " Catalin Marinas
2010-07-15 12:52 ` David Yang
2010-07-15 12:56 ` Catalin Marinas
2010-07-15 13:10 ` David Yang
2010-07-15 13:17 ` Catalin Marinas
2010-07-17 7:05 ` David Yang
2010-07-19 12:29 ` Catalin Marinas
2010-07-20 3:17 ` David Yang
2010-07-20 8:53 ` Catalin Marinas
2010-07-20 9:22 ` David Yang
2010-07-20 9:26 ` Catalin Marinas
2010-07-15 12:25 ` Problem with dma_alloc_coherent at linux-2.6.33-arm1 , with RealView " Catalin Marinas
2010-07-15 12:57 ` David Yang
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=20100715093107.GB17605@trinity.fluff.org \
--to=ben-linux@fluff.org \
--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).