Hi, I'm using the linux OHCI driver with an ARM based SoC. CPU: ARM 940T Kernel: uClinux 2.6.14
I've made some transfer benchmarks, and the results were a bit strange. The benchmark is sequential read from an USB flash stick, 7.5 MB file right after reset. I've made multiple passes with and without directio (O_DIRECT flag when opening a file), changing the kernel readahead with posix_fadvise(), and the read blocksize (the buffer size passed to read()). I've measured the time it takes to complete a read() call, and recorded the average read time, the worst(longest) time and the overall time to read the whole file (using gettimeofday). Here are my results: (sequential read, DirectIO) blocksize avg(us) wc(us) total 512 9000 28988 132sec 2048 11057 30976 41sec 16384 25697 61010 12sec I also tried with normal IO, telling the kernel to double the readahead buffer (posix_fadvise(POSIX_FADV_SEQUENTIAL)), and this way it took only 8 seconds to read the whole file, which is the maximum speed the hardware can do. I have problems with the directio. The difference between the first and the second pass that i read 4 times as many data at a time, but it takes only 2 ms longer to read a block. Similarly comparing the first and the third pass: 32 times as many data, less than 3 times longer per block. These numbers tell me that there's a huge overhead (at least 8ms) when starting a transaction. Is this normal? The other problem is that the kernel is busy while waiting, if I set the blocksize to 512 in my application the computing performance of the system decreases dramatically. My application works with large files on the usb stick (i can't read the whole file into ram), and makes "random seek, short read" sequences, so the fileIO performance is very poor because of this "overhead". I implemented some kind of own caching but it's still no good. Unfortunately i'm not too familiar with the usbhost/mass store drivers, and the blockdev subsytem of the kernel, that's why i'm asking for your help. Any advice or hint is welcome! Thanks! George ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel