Subject: Low network throughput on i.MX28

From: [email-masked] (Koul, Vinod)
Date: Sat, 5 Nov 2016 12:39:43 +0000

On Sat, 2016-11-05 at 13:06 +0100, J?rg Krause wrote:
> @ Vinod
> In short, I noticed poor performance in the SSP2 (MMC/SD/SDIO)
> interface on a custom i.MX28 board with a wifi chip attached.
> Comparing
> the bandwith with iperf I get >20Mbits/sec on the vendor kernel and
> <5Mbits/sec on the mainline kernel. I am trying to investigate what
> the
> bottleneck is.

is this imx-dma or imx-sdma..

> 
> @ Stefan, all
> My understanding is that the tasklet in this case is responsible for
> reading the response registers of the DMA controller and return the
> response to the MMC host driver.
> 
> The vendor kernel does this in the interrupt routine of mxs-mmc by
> issueing a complete whereas the mainline kernel does this in the
> interrupt routine in mxs-dma by scheduling the tasklet.

Is vendor kernel using dmaengine APIs or not?

Okay, if we talk about getting best performance, I always advise folks
to issue next transaction in the interrupt routine and then do
descriptor management and callback in tasklet.

Some drivers do that correctly but some don't..

Tasklet can be an issue but only if there is a huge scheduling delay for
the tasklet. You can check using tracing tools and confirm.

> 
> To check if this makes any difference I replaced the tasklet() usage
> with using the complete() infrastructure. For this I hacked the DMA
> engine and the MXS DMA driver. However, the performance stays the
> same.
> 
> So, if I understand correctly, this is not an issue here, right? So if
> not the tasklet, what do you suspect?

-- 
~Vinod