ubsa speed limit
Adam McDougall
mcdouga9 at egr.msu.edu
Fri May 2 12:10:46 UTC 2008
Dominic Fandrey wrote:
> When I download a single file it seems that the download speed is
> limited to 32k (raw data as shown by netstat). Under Windows I can
> reach values around 60k. I can achieve more throughput (though not as
> much as under Windows), when downloading several files at once.
> _______________________________________________
> freebsd-stable at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
>
Try this hack, its using concepts I gathered from people patching the
Linux driver, basically increasing the block size of transfers.
Edit ubsa.c and recompile/reload the ubsa driver. Its located around
line 362. Basically replace UGETW(ed->wMaxPacketSize); or
UGETW(ed->wMaxPacketSize); with 2048. I think the default is 512 and
you can play with different values to evaluate its effect on speed. I
realized a large performance boost from 2048, I think at least 80k/sec
transfer rate.
} else if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_IN &&
UE_GET_XFERTYPE(ed->bmAttributes) == UE_BULK) {
ucom->sc_bulkin_no = ed->bEndpointAddress;
- ucom->sc_ibufsize = UGETW(ed->wMaxPacketSize);
+ ucom->sc_ibufsize = 2048;
+ // ucom->sc_ibufsize = UGETW(ed->wMaxPacketSize);
} else if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_OUT &&
UE_GET_XFERTYPE(ed->bmAttributes) == UE_BULK) {
ucom->sc_bulkout_no = ed->bEndpointAddress;
- ucom->sc_obufsize = UGETW(ed->wMaxPacketSize);
+ ucom->sc_obufsize = 2048;
+ // ucom->sc_obufsize = UGETW(ed->wMaxPacketSize);
}
}
More information about the freebsd-stable
mailing list