Subject: Low network throughput on i.MX28

From: [email-masked] (Jörg Krause)
Date: Sat, 29 Oct 2016 01:07:08 +0200

On Sat, 2016-10-15 at 18:16 +0200, Stefan Wahren wrote:
> > J?rg Krause <[email-masked]> hat am 15. Oktober 2016
> > um 11:41
> > geschrieben:
> > 
> > 
> > 
> > 
> > Hi Stefan,
> > 
> > Am 15. Oktober 2016 10:59:41 MESZ, schrieb Stefan Wahren
> > <[email-masked]>:
> > > Hi J?rg,
> > > 
> > > > J?rg Krause <[email-masked]> hat am 15. Oktober
> > > > 2016 um
> > > 
> > > 10:46
> > > > geschrieben:
> > > > 
> > > > 
> > > > Thanks!
> > > > 
> > > > 
> > > > For the record:
> > > > 
> > > > Note, this is the result for the wireless interface.
> > > > 
> > > > I got one of my custom boards running the legacy Linux Kernel
> > > > 2.6.35
> > > > officially supported from Freescale (NXP) and the bcmdhd driver
> > > > from
> > > > the Wiced project, where I get >20Mbps TCP throughput. The
> > > > firmware
> > > > version reported is:
> > > > 
> > > > # wl ver
> > > > 5.90 RC115.2
> > > > wl0: Apr 24 2014 14:08:41 version 5.90.195.89.24 FWID 01-
> > > > bc2d0891
> > > > 
> > > > 
> > > > I got it also running with the Linux Kernel 4.1.15 from
> > > > Freescale
> > > 
> > > [2],
> > > > which is not officially supported for the i.MX28 target, with
> > > > the
> > > > latest bcmdhd version where I get <7Mbps TCP throughput (which
> > > > is
> > > 
> > > much
> > > > the same I get with the brcmfmac driver). The firmware version
> > > 
> > > reported
> > > > is:
> > > > 
> > > > # wl ver
> > > > 1.107 RC5.0
> > > > wl0: Aug??8 2016 02:17:48 version 5.90.232 FWID 01-0
> > > > 
> > > > So, probably something is missing in the newer Kernel version,
> > > > which
> > > 
> > > is
> > > > present in the legacy Kernel 2.6.35.
> > > > 
> > > > [1]
> > > 
> > > http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/log/?
> > > h=
> > > > imx_2.6.35_1.1.0
> > > > [2]
> > > 
> > > http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/log/?
> > > h=
> > > > imx_4.1.15_1.0.0_ga
> > > 
> > > during implementation of DDR mode for the mmc driver [1] i
> > > noticed a
> > > performance
> > > gap between the vendor kernel and mainline by a factor of 2. I
> > > expect
> > > that your
> > > wireless interface is connected via SDIO.
> > 
> > Yes, it is. I had the suspicion that the MMC or the DMA driver is
> > the
> > bootleneck, too.
> > 
> > > 
> > > [1] -
> > > http://linux-arm-kernel.infradead.narkive.com/GNkqjvo8/patch-rfc-
> > > 0-3-mmc-mxs-mmc-implement-ddr-support
> > 
> > Looks like the patches might help.
> 
> Unfortunately not, the performance gain is smaller than expected.
> 
> > Have you tried SDIO wifi so far?
> 
> No.

You mentioned [1] an optimization in the Freescale vendor Linux kernel
[2]. I would really like to see this optimization in the mainline
kernel.

Did you ever tried to port this code from Freescale to mainline?

Is it even possible, as the mainline driver uses the DMA engine?

[1] http://linux-arm-kernel.infradead.narkive.com/GNkqjvo8/patch-rfc-0-
3-mmc-mxs-mmc-implement-ddr-support#post8
[2] http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/commit/
?h=imx_2.6.35_maintain&id=b09358887fb4b67f6d497fac8cc48475c8bd292d

Best regards,
J?rg Krause