Chris, btw only the 1st write was slower, subsequent writes looks ok. === before == === after == real 0m0.480s vs real 0m0.757s real 0m0.476s vs real 0m0.488s real 0m0.484s vs real 0m0.484s real 0m0.480s vs real 0m0.486s I have attached the output of flashbench and the time test to http://launchpad.net/bugs/773524 Might be easier for side by side comparison. But I have it pasted here as well. === FLASHBENCH ================ ======== BEFORE PATCH ========= == Guess erase block and page sizes == u@u:~/flash/flashbench$ sudo ./flashbench -a /dev/mmcblk0 --blocksize=1024 align 536870912 pre 1.49ms on 3.42ms post 3.06ms diff 1.15ms align 268435456 pre 1.51ms on 3.7ms post 3.09ms diff 1.4ms align 134217728 pre 2.19ms on 3.64ms post 3.05ms diff 1.03ms align 67108864 pre 1.49ms on 3.53ms post 3.1ms diff 1.23ms align 33554432 pre 2.45ms on 3.79ms post 3.12ms diff 999µs align 16777216 pre 1.46ms on 3.52ms post 3.1ms diff 1.24ms align 8388608 pre 1.46ms on 3.52ms post 3.1ms diff 1.24ms align 4194304 pre 1.46ms on 3.52ms post 3.1ms diff 1.24ms align 2097152 pre 1.46ms on 3.52ms post 3.1ms diff 1.24ms align 1048576 pre 2.02ms on 3.79ms post 3.12ms diff 1.22ms align 524288 pre 2.22ms on 2.39ms post 2.41ms diff 77.6µs align 262144 pre 2.43ms on 2.61ms post 2.61ms diff 95.8µs align 131072 pre 2.58ms on 2.77ms post 2.73ms diff 111µs align 65536 pre 2.65ms on 2.87ms post 2.74ms diff 169µs align 32768 pre 2.7ms on 2.88ms post 2.84ms diff 107µs align 16384 pre 2.73ms on 2.91ms post 2.87ms diff 111µs align 8192 pre 2.74ms on 2.92ms post 2.88ms diff 109µs align 4096 pre 2.9ms on 2.86ms post 2.83ms diff -7395ns align 2048 pre 2.88ms on 2.87ms post 2.86ms diff 2.28µs u@u:~/flash/flashbench$ == Finding the number of open erase blocks == u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 1024] --blocksize=$[256 * 1024] /dev/mmcblk0 --open-au-nr=2 4MiB 6.36M/s 2MiB 6.24M/s 1MiB 6.17M/s 512KiB 6.19M/s 256KiB 6.22M/s u@u:~/flash/flashbench$ u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 1024] --blocksize=$[256 * 1024] /dev/mmcblk0 --open-au-nr=3 4MiB 6.25M/s 2MiB 6.25M/s 1MiB 6.24M/s 512KiB 2.53M/s 256KiB 1.14M/s u@u:~/flash/flashbench$ ====== AFTER PATCH ======== == Guess erase block and page sizes == u@u:~/flash/flashbench$ sudo ./flashbench -a /dev/mmcblk0 --blocksize=1024 [sudo] password for u: align 536870912 pre 1.56ms on 3.53ms post 3.14ms diff 1.18ms align 268435456 pre 1.54ms on 3.52ms post 3.12ms diff 1.19ms align 134217728 pre 1.5ms on 3.5ms post 3.1ms diff 1.2ms align 67108864 pre 1.56ms on 3.68ms post 3.2ms diff 1.3ms align 33554432 pre 1.55ms on 3.6ms post 3.15ms diff 1.25ms align 16777216 pre 1.57ms on 3.62ms post 3.18ms diff 1.25ms align 8388608 pre 1.57ms on 3.61ms post 3.16ms diff 1.24ms align 4194304 pre 1.55ms on 3.6ms post 3.16ms diff 1.24ms align 2097152 pre 1.56ms on 3.61ms post 3.22ms diff 1.22ms align 1048576 pre 1.57ms on 3.62ms post 3.16ms diff 1.25ms align 524288 pre 2.23ms on 2.42ms post 2.44ms diff 81µs align 262144 pre 2.49ms on 2.67ms post 2.61ms diff 115µs align 131072 pre 2.68ms on 2.87ms post 2.8ms diff 129µs align 65536 pre 2.78ms on 2.98ms post 2.85ms diff 172µs align 32768 pre 2.8ms on 2.99ms post 2.94ms diff 117µs align 16384 pre 2.81ms on 2.99ms post 2.95ms diff 117µs align 8192 pre 2.86ms on 3ms post 3.01ms diff 68.6µs align 4096 pre 2.96ms on 2.93ms post 2.93ms diff -14207n align 2048 pre 2.98ms on 3ms post 2.98ms diff 20.1µs u@u:~/flash/flashbench$ == Finding the number of open erase blocks == u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 1024] --blocksize=$[256 * 1024] /dev/mmcblk0 --open-au-nr=2 [sudo] password for u: 4MiB 5.49M/s 2MiB 6.22M/s 1MiB 6.22M/s 512KiB 6.21M/s 256KiB 6.21M/s u@u:~/flash/flashbench$ u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 1024] --blocksize=$[256 * 1024] /dev/mmcblk0 --open-au-nr=3 [sudo] password for u: 4MiB 5.31M/s 2MiB 6.16M/s 1MiB 6.2M/s 512KiB 2.53M/s 256KiB 1.14M/s u@u:~/flash/flashbench$ On Tue, 12 Jul 2011, Chris Ball wrote: > Hi Manoj, > > On Tue, Jul 12 2011, Manoj Iyer wrote: >> Test System: ThinkPad X220 Tablet, using Sandisk 2GB Class 2 SD, I did >> not see any considerable change in read/write times. Also, tested a >> Transcend MMCPlus 2GB card, before the patch was applied it would not >> mount the card, and would cause IO errors on read/write, but after the >> patch it mounts and works correctly. >> [..] >> ============ BEFORE THE PATCH =============== >> Sandisk 2GB Class2 SD >> ============================================= >> === WRITE === >> u@u:~$ ls -lh test.file >> -rw-r--r-- 1 u u 10M 2011-07-12 10:19 test.file >> u@u:~$ time cp test.file /media/E0FD-1813/copyto >> >> real 0m0.480s >> user 0m0.000s >> sys 0m0.024s >> [..] >> ============ AFTER THE PATCH ============= >> Sandisk 2GB Class2 SD >> ========================================== >> >> === WRITE === >> u@u:~$ time cp ./test.file /media/E0FD-1813/copyto1 >> >> real 0m0.757s >> user 0m0.000s >> sys 0m0.044s > > This suggests that there *was* a considerable difference in write speed, no? > > It might be helpful to use Arnd's flashbench tool¹ for further benchmarking, > since it does the right thing with using direct I/O access without caches. > > Thanks, > > - Chris. > > ¹: http://git.linaro.org/gitweb?p=people/arnd/flashbench.git > -- > Chris Ball > One Laptop Per Child > > -- ==================== Manoj Iyer Ubuntu/Canonical Hardware Enablement ====================