mpc8548 does not make use of DMA when doing memory copy?

View: New views
6 Messages — Rating Filter:   Alert me  

mpc8548 does not make use of DMA when doing memory copy?

by hank peng :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Kernel version is 2.6.30 and I have enabled fsl DMA engine during
configuring kernel. After system booted, I have seen only 38 DMA
interrupts, and no increase later when I am doing data transfer
through network.
So I wonder if mpc8548  had made use of DMA engine when doing memcpy,
or maybe if there are other things I haven't noticed?

--
The simplest is not all best but the best is surely the simplest!
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@...
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: mpc8548 does not make use of DMA when doing memory copy?

by Kumar Gala-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On Nov 2, 2009, at 9:40 AM, hank peng wrote:

> Kernel version is 2.6.30 and I have enabled fsl DMA engine during
> configuring kernel. After system booted, I have seen only 38 DMA
> interrupts, and no increase later when I am doing data transfer
> through network.
> So I wonder if mpc8548  had made use of DMA engine when doing memcpy,
> or maybe if there are other things I haven't noticed?

The dma engine code is not normally used for normal memcpy's in the  
kernel.  There are explicit call sites that have async behavior that  
should use it (like the networking code).

- k
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@...
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: mpc8548 does not make use of DMA when doing memory copy?

by hank peng :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2009/11/3 Kumar Gala <galak@...>:

>
> On Nov 2, 2009, at 9:40 AM, hank peng wrote:
>
>> Kernel version is 2.6.30 and I have enabled fsl DMA engine during
>> configuring kernel. After system booted, I have seen only 38 DMA
>> interrupts, and no increase later when I am doing data transfer
>> through network.
>> So I wonder if mpc8548  had made use of DMA engine when doing memcpy,
>> or maybe if there are other things I haven't noticed?
>
> The dma engine code is not normally used for normal memcpy's in the kernel.
>  There are explicit call sites that have async behavior that should use it
> (like the networking code).
>
I remember normal memory copy can also be done (chosen by user) by DMA
engine on IOP80331(Intel embedded cpu, xscale arch), so why ppc
platform didn't make use of DMA doing memory copy, I think it can
increase performance, please correct me if I am wrong!

> - k
>



--
The simplest is not all best but the best is surely the simplest!
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@...
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: mpc8548 does not make use of DMA when doing memory copy?

by Micha Nelissen :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

hank peng wrote:
> I remember normal memory copy can also be done (chosen by user) by DMA
> engine on IOP80331(Intel embedded cpu, xscale arch), so why ppc
> platform didn't make use of DMA doing memory copy, I think it can
> increase performance, please correct me if I am wrong!

AFAIK the DMA engine has only an asynchronous mode (not very smart
IMHO). This means you always have the overhead of context switch +
interrupt + context switch, so the transfer has to be quite large for
this to pay off.

Micha
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@...
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: mpc8548 does not make use of DMA when doing memory copy?

by hank peng :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2009/11/3 Micha Nelissen <micha@...>:

> hank peng wrote:
>>
>> I remember normal memory copy can also be done (chosen by user) by DMA
>> engine on IOP80331(Intel embedded cpu, xscale arch), so why ppc
>> platform didn't make use of DMA doing memory copy, I think it can
>> increase performance, please correct me if I am wrong!
>
> AFAIK the DMA engine has only an asynchronous mode (not very smart IMHO).
> This means you always have the overhead of context switch + interrupt +
> context switch, so the transfer has to be quite large for this to pay off.
>
but if the amount of data I want to copy is big enough? can we benefit
from using DMA in such case?
> Micha
>



--
The simplest is not all best but the best is surely the simplest!
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@...
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: mpc8548 does not make use of DMA when doing memory copy?

by Kumar Gala-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On Nov 3, 2009, at 8:38 AM, hank peng wrote:

> 2009/11/3 Micha Nelissen <micha@...>:
>> hank peng wrote:
>>>
>>> I remember normal memory copy can also be done (chosen by user) by  
>>> DMA
>>> engine on IOP80331(Intel embedded cpu, xscale arch), so why ppc
>>> platform didn't make use of DMA doing memory copy, I think it can
>>> increase performance, please correct me if I am wrong!
>>
>> AFAIK the DMA engine has only an asynchronous mode (not very smart  
>> IMHO).
>> This means you always have the overhead of context switch +  
>> interrupt +
>> context switch, so the transfer has to be quite large for this to  
>> pay off.
>>
> but if the amount of data I want to copy is big enough? can we benefit
> from using DMA in such case?

Correct, we just don't make normal memcpy do this.  There isn't  
anything stopping specific call from using the async DMA API to get  
memcpy behavior.

- k
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@...
https://lists.ozlabs.org/listinfo/linuxppc-dev