SDIO Performance once again
Dominik S. Herwald
lists at dsh-elektronik.de
Sun Feb 8 14:08:18 EST 2009
Hello,
some additional measurements - with 2MHz SDIO Clock rate
(yes - only 2 MHz, while using 4 Bit SDIO Mode) I get
# iperf -c 192.168.10.11 -i 1 -w 208K
------------------------------------------------------------
Client connecting to 192.168.10.11, TCP port 5001
TCP window size: 208 KByte
------------------------------------------------------------
[ 5] local 192.168.10.23 port 47803 connected with 192.168.10.11 port 5001
[ 5] 0.0- 1.0 sec 488 KBytes 4.00 Mbits/sec
[ 5] 1.0- 2.0 sec 320 KBytes 2.62 Mbits/sec
[ 5] 2.0- 3.0 sec 320 KBytes 2.62 Mbits/sec
[ 5] 3.0- 4.0 sec 376 KBytes 3.08 Mbits/sec
[ 5] 4.0- 5.0 sec 320 KBytes 2.62 Mbits/sec
[ 5] 5.0- 6.0 sec 376 KBytes 3.08 Mbits/sec
[ 5] 6.0- 7.0 sec 320 KBytes 2.62 Mbits/sec
[ 5] 7.0- 8.0 sec 320 KBytes 2.62 Mbits/sec
[ 5] 8.0- 9.0 sec 376 KBytes 3.08 Mbits/sec
[ 5] 9.0-10.0 sec 320 KBytes 2.62 Mbits/sec
[ 5] 0.0-10.1 sec 3.46 MBytes 2.88 Mbits/sec
#
So - nearly the same as with 10MHz or more.
EVERY Transfer starts in a 4ms frames.
Example of what I see on my scope:
0ms - Data Transfer, End after about 1.x ms (depending on SDIO Clock rate), ... then nothing
4ms - Data Transfer, End after about 1ms ... nothing ...
8ms - Data Transfer, End after about 1ms ... nothing ...
12ms - ...
Effectively only about 25% of the Transfer Time is actually used.
-------------------------
With only 1 MHz SDIO Clock, the 3MBit limit starts to drop:
# iperf -c 192.168.10.11 -i 1 -w 208K
------------------------------------------------------------
Client connecting to 192.168.10.11, TCP port 5001
TCP window size: 208 KByte
------------------------------------------------------------
[ 5] local 192.168.10.23 port 58644 connected with 192.168.10.11 port 5001
[ 5] 0.0- 1.0 sec 376 KBytes 3.08 Mbits/sec
[ 5] 1.0- 2.0 sec 272 KBytes 2.23 Mbits/sec
[ 5] 2.0- 3.0 sec 264 KBytes 2.16 Mbits/sec
[ 5] 3.0- 4.0 sec 264 KBytes 2.16 Mbits/sec
[ 5] 4.0- 5.0 sec 320 KBytes 2.62 Mbits/sec
[ 5] 5.0- 6.0 sec 272 KBytes 2.23 Mbits/sec
[ 5] 6.0- 7.0 sec 264 KBytes 2.16 Mbits/sec
[ 5] 7.0- 8.0 sec 264 KBytes 2.16 Mbits/sec
[ 5] 8.0- 9.0 sec 272 KBytes 2.23 Mbits/sec
[ 5] 9.0-10.0 sec 264 KBytes 2.16 Mbits/sec
[ 5] 0.0-10.1 sec 2.77 MBytes 2.30 Mbits/sec
Also on the Scope you can clearly see that now there are
no gaps left between individual data transfers...
Conclusion:
SDIO Speed is not even close at the limit, it must be something else.
(Driver or Marvell Hardware/Firmware)
Can anyone tell me where this 4ms data frame interval comes from?
Are these required delays for the Marvell 8686 or is this a
"bug" in the libertas Driver or the SDIO Stack?
Best regards,
Dominik
> Date: Sun, 08 Feb 2009 17:56:50 +0100
> From: "Dominik S. Herwald" <lists at dsh-elektronik.de>
> Subject: SDIO Performance once again
> To: libertas-dev at lists.infradead.org
> Message-ID: <498F0ED2.3080001 at dsh-elektronik.de>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> Hello,
>
> right now I am testing Marvell 8686 based Modules connected to the SDIO
> Controller of a Blackfin BF548.
>
> Basically the libertas driver works just fine and stable.
> But the Performance... :-/
>
>
> # iperf -c 192.168.10.11 -i 1 -w 208K
> ------------------------------------------------------------
> Client connecting to 192.168.10.11, TCP port 5001
> TCP window size: 208 KByte
> ------------------------------------------------------------
> [ 5] local 192.168.10.23 port 45592 connected with 192.168.10.11 port 5001
> [ 5] 0.0- 1.0 sec 488 KBytes 4.00 Mbits/sec
> [ 5] 1.0- 2.0 sec 320 KBytes 2.62 Mbits/sec
> [ 5] 2.0- 3.0 sec 376 KBytes 3.08 Mbits/sec
> [ 5] 3.0- 4.0 sec 320 KBytes 2.62 Mbits/sec
> [ 5] 4.0- 5.0 sec 376 KBytes 3.08 Mbits/sec
> [ 5] 5.0- 6.0 sec 376 KBytes 3.08 Mbits/sec
> [ 5] 6.0- 7.0 sec 320 KBytes 2.62 Mbits/sec
> [ 5] 7.0- 8.0 sec 368 KBytes 3.01 Mbits/sec
> [ 5] 8.0- 9.0 sec 320 KBytes 2.62 Mbits/sec
> [ 5] 9.0-10.0 sec 376 KBytes 3.08 Mbits/sec
> [ 5] 0.0-10.1 sec 3.56 MBytes 2.95 Mbits/sec
>
>
> If I reduce the TCP Window size to 16K it hits either
> 2.62 or 2.69MBit/s all the time.
>
> Both 8686 Modules show identical behaviour with different Antennas so I
> can rule out
> a Hardware issue.
>
> iwconfig says
> Bit Rate 54Mbit/s, 100/100 Link Quality, Signal Level -17dBm, Noise
> Level -93dBm
> The WLAN AP is 50cm away on the same table.
> CPU Load is only around 3%. Top and iperf are running in two telnet
> sessions over WLAN
> and it doesn't matter if WPA or WEP Encryption is used...
>
>
>
> ############
>
> It does not matter what I change, be it the SDIO Clock (12MHz or 22MHz -
> does not matter)
> or 1 Bit SDIO (with IRQ) or 4 Bit SDIO (without IRQ).
>
> Looking at the SDIO Signals with a Scope, I see big ~3ms Gaps between
> all the
> transfers while running iperf.
> Each transfer is around 1ms long at SDIO Clock of about 12MHz
> These Gaps/Delays between transfers are always there - also if just top
> is running
> in a telnet session.
>
> I am no SDIO expert, but is this normal?
>
> ############
>
>
>
> Is the 8686 the limiting factor, or the Firmware
> (I tried both, the 8.73 and 9.7 from Marvell)
> or the libertas driver or the SDIO Controller?
>
> Any ideas how to improve it?
>
>
> Best regards,
> Dominik
>
More information about the libertas-dev
mailing list