Kirkwood PCI(e) write performance and DMA engine support for copy_{to, from}_user?
Leon Woestenberg
leon.woestenberg at gmail.com
Mon Sep 13 13:10:59 EDT 2010
Hello Wolfgang,
On Thu, Sep 9, 2010 at 6:21 PM, Wolfgang Wegner <ww-ml at gmx.de> wrote:
> On Wed, Sep 08, 2010 at 10:35:58AM +0200, Wolfgang Wegner wrote:
>>
> With the FPGA evaluation board I get:
> - around 38 MBytes/second with Nicolas' inline assembly code
> - around 6 MBytes/second with any other C code (mmapped) as
> well as write() via dd
>
> So the main problem seems to be either our board implementation
> of the PCIe->PCI bridge or the FPGA. However, I am still wondering
> how a framebuffer-based application can attain reasonable performance,
>
Having implemented a framebuffer demo on an FPGA recently using PCI
Express, I think the main performance gain is made by having the DMA
done by the endpoint (FPGA) rather than by the CPU.
> PS: another PCI device I tried via the PCIe->PCI bridge was
> a Intel 82574L GBit NIC, which was able to reach >600MBit/s
> throughput when tested with netio or netperf
>
Such devices (typically) use endpoint initiated DMA, i.e. they do not
involve much overhead/latencies on the CPU/host/root complex side.
Regards,
Leon.
More information about the linux-arm-kernel
mailing list