[fedora-arm] smsc95xx performance bug: eth vs usb

Andy Green andy at warmcat.com
Wed Jun 1 08:51:59 UTC 2011


On 05/31/2011 09:36 PM, Somebody in the thread at some point said:
>
>> Can you put the ethernet and storage on different hubs? (it may not be..)
>
> No, it's all on-board.  No other hubs, all board-powered.
>
>> Or do you see similar crappy performance with the nic adapter
>> unplugged and unused?
>
> I see the same crappy performance with the smsc95xx driver unloaded,
> net down, cable unplugged.
>
> That gave me an idea, though... I unloaded the smsc95xx driver, and
> plugged in a serial port connected to a 9600 baud character generator,
> and got good performance.  Likewise with a usb mouse, as long as I
> wiggled the mouse during the test.
>
> Note: I get crappy performance with the network *up*, as long as
> there's no traffic.
>
> If I plug in *two* usb-storage devices (er, flash stick and sata
> dock), I get the same crappy performance for both of them (i.e. same
> per-drive throughput as the single-drive crappy performance).

cc-ing Felipe Balbi (whole thread here 
http://comments.gmane.org/gmane.linux.redhat.fedora.arm/1266 ) in case 
he has an idea.

I had a go a reproducing this also on a 2.6.38-based kernel on Panda.  I 
was thinking it sounds a bit like USB suspend (not the same as kernel 
suspend) because evidently there is deadtime after idle from device. 
You showed that traffic to the device doesn't count with your "two usb 
storage device" test.

First two goes are with ethernet idle, then two goes with pingflood

root at linaro:~# dd if=/dev/zero of=/media/FAD8-72F0/dump bs=4096 count=10240
10240+0 records in
10240+0 records out
41943040 bytes (42 MB) copied, 17.4684 s, 2.4 MB/s
root at linaro:~# dd if=/dev/zero of=/media/FAD8-72F0/dump bs=4096 count=10240
10240+0 records in
10240+0 records out
41943040 bytes (42 MB) copied, 17.219 s, 2.4 MB/s
root at linaro:~# dd if=/dev/zero of=/media/FAD8-72F0/dump bs=4096 count=10240
10240+0 records in
10240+0 records out
41943040 bytes (42 MB) copied, 11.4112 s, 3.7 MB/s
root at linaro:~# dd if=/dev/zero of=/media/FAD8-72F0/dump bs=4096 count=10240
10240+0 records in
10240+0 records out
41943040 bytes (42 MB) copied, 11.8075 s, 3.6 MB/s

This is the same tests done with CONFIG_USB_SUSPEND disabled, no real 
difference.

root at linaro:~# dd if=/dev/zero of=/media/FAD8-72F0/dump bs=4096 count=10240
10240+0 records in
10240+0 records out
41943040 bytes (42 MB) copied, 15.8717 s, 2.6 MB/s
root at linaro:~# dd if=/dev/zero of=/media/FAD8-72F0/dump bs=4096 count=10240
10240+0 records in
10240+0 records out
41943040 bytes (42 MB) copied, 17.0267 s, 2.5 MB/s
root at linaro:~# dd if=/dev/zero of=/media/FAD8-72F0/dump bs=4096 count=10240
10240+0 records in
10240+0 records out
41943040 bytes (42 MB) copied, 10.6266 s, 3.9 MB/s
root at linaro:~# dd if=/dev/zero of=/media/FAD8-72F0/dump bs=4096 count=10240
10240+0 records in
10240+0 records out
41943040 bytes (42 MB) copied, 11.9173 s, 3.5 MB/s

I had a look at the smsc lan9514 and ULPI PHY datasheets

http://www.smsc.com/media/Downloads_Public/Data_Sheets/3320.pdf

to see if there was something obvious to hack suspend disabled but 
didn't see anything useful.

-Andy


More information about the arm mailing list