Bekijk de volledige versie : Significant USB performance enhancement
Hi All!
I noticed that Maxtor's Shared Storage NAS has similar hardware to my wl500gx, but far better USB performance. After going through the sources, I noticed that Maxtor added some extra initialisation for the VT1622 USB controller. I ported those to Oleg's firmware and I got a 25% speed increase!
Patch attached.
Groeten,
Bart
hdparm -tT before:
/dev/discs/disc2/part7:
Timing cached reads: 144 MB in 2.03 seconds = 70.94 MB/sec
Timing buffered disk reads: 16 MB in 3.16 seconds = 5.06 MB/sec
and after:
/dev/discs/disc2/part7:
Timing cached reads: 148 MB in 2.03 seconds = 72.91 MB/sec
Timing buffered disk reads: 20 MB in 3.23 seconds = 6.19 MB/sec
smbclient before:
smb: \> get big.bin
getting file \big.bin of size 479987340 as big.bin (1213.6 kb/s) (average 1213.6 kb/s)
smb: \>
and after:
smb: \> get big.bin
getting file \big.bin of size 479987340 as big.bin (1531.8 kb/s) (average 1531.8 kb/s)
smb: \>
LeperKing
10-07-2006, 22:08
Good job!
Was porting it to olegs fairly straightforward or should we wait for him to release it with the new usb code?
Thanks,
LK.
No, it was easy. Just a simple patch to two files in drivers/usb/host/ .
Unfortunately. the network performance of the wl500gx is stilll quite bad. Even ftp-ing a file from /tmp (so out of RAM) gets less than 2 Mb/s. I am beginning to wonder if the ethernet driver uses DMA...
The maxtor reaches 5Mb/s over the network but seems to use a differnet network chip.
Hmmm, after taking a second look it seems that Maxtor also uses a BCM47xx-ish ethernet chip, but without the robo-switch. And I can't imagine the switch is slowing things down so much.
I tried Maxtor's et.o but I lost vlan0 and vlan1 after unloading the original et.o, and I couldn't get them back after loading the new one. It did recognize the chip however. After much poking around I found robocfg, but it complained about unsupported protocol or something (any hints?) and then it was definitely time to get some sleep. Maxtor's driver also includes an etc_robo.o, so I suppose I stand a chance of getting this to work.
My Shared Storage Plus is in the mail, no personal experiences yet, but here is a link. Note the phenomenal (relative to wl500gx;)) performance for ethernet. And USB read performance maxes out at around 6Mb/s, same as I now get with the ASUS.
http://www.digit-life.com/articles2/storage/maxtor-ssd200.html
Groeten,
Bart
This USB patch is in the wl500gp sources too. I've applied it already and it's available in my beta for 2 weeks or so. :)
As for ethernet perfromance - different chips, higher frequency, different performance. wl500gp is able to route 10.6 megabytes (!!!) per second.
Cool! Too bad I can't take credit for this discovery then ;).
A shame about the network though. It really looks as if the ethernet is a cpu hog that wastes 100 cycles/byte (I get 2Mbyte/s ftp-ing from RAM). I was hoping there would be a magical fix in the driver. 10Mb/s is far more than can be attributed to the difference in clock alone. So the ethernet core in the 500gp is a better one.
:mad: Silly in a way to build a router with lousy routing performance.
Did you try the 500gp's et.o on 500gx?
Cool! Too bad I can't take credit for this discovery then ;).
A shame about the network though. It really looks as if the ethernet is a cpu hog that wastes 100 cycles/byte (I get 2Mbyte/s ftp-ing from RAM). I was hoping there would be a magical fix in the driver. 10Mb/s is far more than can be attributed to the difference in clock alone. So the ethernet core in the 500gp is a better one.
:mad: Silly in a way to build a router with lousy routing performance.
Did you try the 500gp's et.o on 500gx?
They're the same in my firmware. In fact, the firmware is the same with except of web pages. Actually the difference is a picture with a router name. :)
So WL500gx is crappy by design. Too bad.
What kind of NAS performance do you get with 500gP? Close to 6 Mbyte/s?
Networked read 3 megabytes per second, writes 2.5. Used NFS.
Raw (USB to memory) is about 6/5.
3 Mbyte/s is awfully close to the 2 Mbyte/s on 500gx if you take the difference in clockspeed into account.
However, that is nowhere near the 6 Mbyte/s that Maxtor is supposed to do on the same hardware (but I didn't check that myself). Strange...:confused:
Maxtor is using IDE disk directly, not the USB bridge.
wl700g gives the same as maxtor nas.
No, if you look at http://www.digit-life.com/articles2/storage/maxtor-ssd200.html it looks as if Maxtor does 8 Mbyte/s on the internal disk and 6 Mbyte/s on USB.
But as I said, I couldn't check this myself yet.
wl500gp is able to route 10.6 megabytes (!!!) per second.
In what configuration did you measure this speed?
In what configuration did you measure this speed?
7f-pre4 firmware
P4-2.8 Ghz <-> Deluxe LAN - Deluxe LAN <-> Premium WAN - Premium LAN <-> P3-1.13 GHz
Both PCs are running linux, used ttcp for tests. Premium is in home gateway mode, 32 MB enabled. With 16MB I've got 9.6 only.
Nice! ;)
I would have thought that this speed can only be reached with (software) bridging, not with routing.
EDIT: Was this speed achieved with NAT enabled?
Some performance measurements with iozone on WD3200 disk and Revoltec USB external case.
Firmware 7e and 7f-pre4:
upper line shows new (7f) performance in KB/s and lower line shows percentage improvement.
Iozone: Performance Test of File I/O
Version $Revision: 3.259 $
Compiled for 32 bit mode.
Build: Generic
Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
Al Slater, Scott Rhine, Mike Wisner, Ken Goss
Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
Randy Dunlap, Mark Montague, Dan Million,
Jean-Marc Zucconi, Jeff Blomberg,
Erik Habbinga, Kris Strecker, Walter Wong.
Run began: Sat Aug 5 16:14:08 2006
Auto Mode
Command line used: iozone -a
Output is in Kbytes/sec
Time Resolution = 0.000051 seconds.
Processor cache size set to 1024 Kbytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.
random random bkwd record stride
KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
16384 16384 2533 4342 5688 5817 4050 4270 4099 2759 5412 3425 4311 785 737
0 0 27 -8 28 51 -14 14 -13 -2 12 25 105 -83 -84
32768 64 4094 5622 5840 6009 6906 7030 6373 22935 6321 5131 6379 3739 3800
0 0 63 25 15 24 27 -25 24 -5 17 44 28 -26 -24
32768 128 4650 5383 6169 6189 10708 7478 6804 24544 7475 5128 5553 4084 4116
0 0 17 -28 19 18 17 -44 13 0 10 20 2 -34 -31
32768 256 4016 6097 5952 6089 12606 15055 8462 18878 8232 4920 5934 4278 4346
0 0 -8 23 17 18 18 -2 18 0 13 11 -12 -6 -15
32768 512 4465 6420 5951 6084 9594 19700 6467 24862 8369 5871 5401 3693 3793
0 0 5 36 23 17 12 16 9 2 12 36 18 -25 -24
32768 1024 4563 7531 6211 6082 11633 22623 8067 21554 7333 5127 7526 3076 3758
0 0 16 13 18 16 12 7 11 12 14 22 45 -38 -27
32768 2048 5317 7214 5952 6222 8896 6644 7779 22568 33630 4239 7144 3464 3717
0 0 17 8 21 27 14 -25 21 2 -5 1 51 -29 -27
32768 4096 4726 5940 5876 5921 11510 20516 6787 14799 36395 4897 5607 3133 3694
0 0 10 -5 18 17 8 12 27 -24 9 19 17 -37 -28
32768 8192 4089 5536 5978 6088 5766 4890 5969 16579 16304 4470 5153 2871 3260
0 0 22 54 24 25 16 9 18 1 16 61 75 -43 -35
32768 16384 2630 3381 4639 5876 5333 3641 4561 3147 5029 3441 4149 728 752
0 0 -4 23 15 31 25 31 18 7 48 195 713 -85 -81
65536 64 3500 5418 5597 5948 4809 6627 5113 24148 3315 4501 5579 3514 3769
0 0 27 16 14 17 14 37 18 2 -11 25 12 -22 -25
65536 128 3947 5036 6026 6145 6585 5319 5505 24492 5279 4484 5014 4075 4101
0 0 0 -1 22 20 16 -3 24 49 16 30 1 -20 -20
65536 256 3939 6017 6091 6132 7099 6523 5659 25162 6015 4530 5873 3983 4026
0 0 0 14 19 20 16 36 15 1 16 27 19 199 -21
65536 512 4273 5710 6105 5388 7054 6817 5386 25051 6187 4536 5969 3731 3812
0 0 17 28 21 32 18 20 13 2 16 26 25 -22 -25
65536 1024 4449 5859 5888 6106 7903 6388 5734 24370 6356 4355 5672 3660 3749
0 0 7 11 16 19 15 8 16 1 15 18 18 -28 -25
65536 2048 4482 5580 6001 6153 6381 5219 6005 24037 6574 4553 5723 3477 3712
0 0 11 6 17 35 12 15 10 12 20 43 30 -31 -27
65536 4096 3675 5277 6013 5961 7270 5857 5571 18903 36384 3698 4825 3453 3693
0 0 10 10 19 16 19 21 12 13 31 10 17 -25 -26
65536 8192 3628 4431 6033 5955 5951 4860 5765 19430 22414 1191 4508 2955 3266
0 0 12 8 19 19 18 19 19 57 18 -52 92 -40 -35
65536 16384 2801 3638 5140 5087 4677 3625 4951 3149 4793 2865 3374 729 718
0 0 4 21 43 20 11 13 17 17 11 129 167 -81 -83
131072 64 3866 5017 6117 6091 4266 5524 4926 23528 3653 3961 4805 3768 3773
0 0 33 17 21 19 15 16 17 -2 1 16 12 -25 -26
131072 128 4070 5191 6047 6149 5526 4984 5210 25277 4885 4036 5197 4075 4105
0 0 12 9 32 19 15 11 29 4 12 20 15 -20 -19
131072 256 3947 4865 6116 6159 5374 5212 5365 24786 5634 3974 4862 3917 3989
0 0 8 3 27 20 2 9 12 2 16 16 12 -24 -17
131072 512 3968 5162 6139 6173 5846 5313 5178 24989 5428 4049 4971 3674 3830
0 0 9 10 20 31 18 12 19 7 12 24 19 -27 -23
131072 1024 3835 5053 6094 6128 6467 5469 5582 25069 5769 4080 5142 3389 3738
0 0 4 8 20 29 16 7 21 3 173 23 27 -33 -26
131072 2048 3696 5075 5666 6170 6292 4953 5649 24736 5644 3732 5071 3569 3702
0 0 9 19 17 21 14 16 14 6 23 19 16 -25 -27
131072 4096 3642 4589 6030 6121 6122 4902 5973 21573 6345 3709 4228 3525 3657
0 0 10 4 18 19 18 10 17 13 17 29 9 -31 -27
131072 8192 3525 4615 5153 6037 6171 4520 5808 18285 27631 3371 4262 3174 3234
0 0 17 18 0 17 15 9 17 4 9 38 67 -36 -37
131072 16384 2774 3428 4707 5030 4935 3328 5096 3220 4880 2627 3236 730 741
0 0 11 17 11 15 20 5 17 7 22 126 156 -83 -80
262144 64 3672 4682 6132 5977 3942 4875 5066 24419 3619 4005 4722 3552 2515
0 0 19 7 26 16 14 10 22 13 3 19 12 -30 -50
for whole plot use awk -f iozone-diff.awk iozone-old.txt iozone-new.txt
with
$1 ~ /^[0-9]+/ {
if (p[$1,$2,1]) {
print $0;
printf("\t\t");
for (i = 1; i < 16; i++)
printf("%d\t", ($i-p[$1,$2,i])*100.0/p[$1,$2,i] );
printf("\n");
}
else
for (i = 1; i < 16; i++)
p[$1,$2,i] = $i;
}
There is significant performance decrease in fread and freread.
martin72
08-08-2006, 19:06
I got my USB speed up 50% (from ~2MB/s to ~3MB/s) just bij installing Oleg firmware, do the memory trick to get the 32MB (WL-500gP) and install al swap partition on the harddisk (Maxtor PS3200).
BR
Martin