USB Performance on Raspberry Pi

Warner Losh imp at bsdimp.com
Sun Jul 7 03:23:25 UTC 2013


On Jul 6, 2013, at 9:17 PM, Peter Jeremy wrote:

> Hi Hans,
> 
> USB performance on the Raspberry Pi is rather lacking.  This is important
> because pretty much everything goes via USB.  Do you have any suggestions
> on how to fix the bottlenecks?  I suspect one is that FreeBSD is using
> PIO, whereas Linux is using DMA.
> 
> I've previously commented about the sawtooth pattern in ping times:
> 64 bytes from 192.168.123.231: icmp_seq=6 ttl=64 time=2.701 ms
> 64 bytes from 192.168.123.231: icmp_seq=7 ttl=64 time=1.465 ms
> 64 bytes from 192.168.123.231: icmp_seq=8 ttl=64 time=10.589 ms
> 64 bytes from 192.168.123.231: icmp_seq=9 ttl=64 time=9.688 ms
> 64 bytes from 192.168.123.231: icmp_seq=10 ttl=64 time=8.673 ms
> 64 bytes from 192.168.123.231: icmp_seq=11 ttl=64 time=7.330 ms
> 64 bytes from 192.168.123.231: icmp_seq=12 ttl=64 time=6.857 ms
> 64 bytes from 192.168.123.231: icmp_seq=13 ttl=64 time=5.946 ms
> 64 bytes from 192.168.123.231: icmp_seq=14 ttl=64 time=3.955 ms
> 64 bytes from 192.168.123.231: icmp_seq=15 ttl=64 time=2.079 ms
> 64 bytes from 192.168.123.231: icmp_seq=16 ttl=64 time=1.072 ms
> 
> Whereas pinging a Linux RPi gives:
> round-trip min/avg/max/stddev = 0.276/0.373/0.455/0.049 ms
> 
> yongari@ gave me same patches for the SMSC NIC but they didn't have
> any noticable effect.
> 
> And the network throughput is also well below what Linux can achieve.
> 
> If I connect an external USB disk to a Linux RPi, I get 20.6 MBps
> read.  The same disk on FreeBSD RPi gives 6.3 MBps - with ~50%
> interrupt time.

sure sounds a lot like the USB polling issues...  Maybe we have a problem with the USB controller generating the proper interrupts, or some interrupt delivery problem?

Warner


More information about the freebsd-arm mailing list