Hi all,
I'm trying to optimize the MUSB driver as much as I can and I believe I
got to its limit. Currently I'm getting:
with my test application which simply bounces 1GB of data to device. I
have no NAKs, no PINGs and no NYETs but each bulk out transaction is
taking 15us which allows me to squeeze only 8 transactions per-uframe.
Ideally I would be able to have a bulk out transaction on every 10us
which would allow to squeeze up to 11 ~ 12 transactions per-uframe
allowing me to get 44 ~ 60 MB/sec.
I know 60MB/sec is basically impossible due to HW limitations but
44MB/sec (with 11 transactions per-uframe) is pretty much doable. Where
should I look into the USB subsystem to try to optimize that ?
BTW, my application uses async API of libusb and queues 4 1MB bulk
out transfers before starting to send data, then it keeps on re-queueing
those URBs until I have reached 1GB of transferred data. Sniffer tells
me how many transactions I put on a uframe.
--
balbi
DefectiveByDesign.org
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html