arnd@klappe2:~/git/flashbench$ sudo hdparm -I /dev/sdc
/dev/sdc: HDIO_DRIVE_CMD(identify) failed: Invalid exchange arnd@klappe2:~/git/flashbench$ sudo hdparm -I /dev/sdg
/dev/sdg:
CompactFlash ATA device Model Number: STEC M2+ CF 9.0.2 Serial Number: STIM2MT410135051121 Firmware Revision: K1169-2 Standards: Supported: 6 5 4 Likely used: 6 Configuration: Logical max current cylinders 16383 30681 heads 16 16 sectors/track 63 63 -- CHS current addressable sectors: 30926448 LBA user addressable sectors: 30926448 Logical/Physical Sector size: 512 bytes device size with M = 1024*1024: 15100 MBytes device size with M = 1000*1000: 15834 MBytes (15 GB) cache/buffer size = unknown Capabilities: LBA, IORDY(cannot be disabled) Standby timer values: spec'd by Standard R/W multiple sector transfer: Max = 1 Current = 1 DMA: mdma0 mdma1 *mdma2 udma0 udma1 udma2 udma3 udma4 Cycle time: min=120ns recommended=120ns PIO: pio0 pio1 pio2 pio3 pio4 Cycle time: no flow control=120ns IORDY flow control=120ns Commands/features: Enabled Supported: Security Mode feature set * Power Management feature set * Host Protected Area feature set * WRITE_BUFFER command * READ_BUFFER command * NOP cmd * CFA feature set CFA max advanced io_udma cycle time: 80ns CFA max advanced mem_udma cycle time: 80ns * CFA advanced modes: pio5 *pio6 mdma3 *mdma4 io_udma4 io_udma5 *io_udma6 io_udma7 io_udma8 mem_udma4 mem_udma5 *mem_udma6 mem_udma7 mem_udma8 Security: Master password revision code = 65534 supported not enabled not locked not frozen not expired: security count not supported: enhanced erase Integrity word not set (found 0x0000, expected 0x80a5)
Disk /dev/sdg: 15.8 GB, 15834341376 bytes 255 heads, 63 sectors/track, 1925 cylinders, total 30926448 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000bd02f
Device Boot Start End Blocks Id System /dev/sdg1 2048 30924799 15461376 83 Linux
==> card_id <== 0x0000 ==> func_id <== 0x04 ==> function <== 0x00 ==> manf_id <== 0x0000 ==> modalias <== pcmcia:m0000c0000f04fn00pfn00paC709C891pbFE591B16pc00000000pd00000000 ==> prod_id1 <== STEC M2+ CF 9.0.2 ==> prod_id2 <== M2P
# Cannot tell erase block size: align 805306368 pre 737µs on 781µs post 737µs diff 43.4µs align 536870912 pre 725µs on 729µs post 725µs diff 3.52µs align 402653184 pre 738µs on 752µs post 725µs diff 20.7µs align 268435456 pre 738µs on 808µs post 753µs diff 62.4µs align 201326592 pre 737µs on 813µs post 754µs diff 67.6µs align 134217728 pre 726µs on 765µs post 739µs diff 32.9µs align 100663296 pre 724µs on 761µs post 739µs diff 29.9µs align 67108864 pre 722µs on 775µs post 736µs diff 45.2µs align 50331648 pre 721µs on 764µs post 752µs diff 27.1µs align 33554432 pre 734µs on 790µs post 750µs diff 47.5µs align 25165824 pre 740µs on 790µs post 748µs diff 46.3µs align 16777216 pre 722µs on 765µs post 744µs diff 31.8µs align 12582912 pre 728µs on 767µs post 736µs diff 35.4µs align 8388608 pre 731µs on 779µs post 737µs diff 44.7µs align 6291456 pre 760µs on 805µs post 761µs diff 43.7µs align 4194304 pre 752µs on 816µs post 753µs diff 63.8µs align 3145728 pre 730µs on 789µs post 750µs diff 49.1µs align 2097152 pre 715µs on 754µs post 737µs diff 28µs align 1572864 pre 729µs on 849µs post 805µs diff 82.9µs align 1048576 pre 732µs on 941µs post 894µs diff 128µs align 786432 pre 736µs on 912µs post 830µs diff 129µs align 524288 pre 724µs on 890µs post 818µs diff 119µs align 393216 pre 722µs on 867µs post 806µs diff 103µs align 262144 pre 723µs on 847µs post 792µs diff 89.3µs align 196608 pre 726µs on 827µs post 767µs diff 80.6µs align 131072 pre 724µs on 803µs post 759µs diff 62µs align 98304 pre 723µs on 802µs post 763µs diff 58.4µs align 65536 pre 724µs on 814µs post 764µs diff 70.6µs align 49152 pre 728µs on 802µs post 765µs diff 56µs align 32768 pre 724µs on 802µs post 764µs diff 58µs align 24576 pre 726µs on 803µs post 766µs diff 57.2µs align 16384 pre 726µs on 805µs post 761µs diff 61.5µs align 12288 pre 765µs on 801µs post 726µs diff 55.4µs align 8192 pre 725µs on 805µs post 765µs diff 60.4µs
# no random access: arnd@klappe2:~/git/flashbench$ sudo ./flashbench --open-au /dev/sdc -b 1024 --erasesize=1048576 --random --open-au-nr=1 1MiB 10.4M/s 512KiB 1.36M/s 256KiB 1.66M/s 128KiB 1.36M/s 64KiB 813K/s 32KiB 448K/s 16KiB 305K/s 8KiB 298K/s 4KiB 177K/s
# erase blocks don't really match arnd@klappe2:~/git/flashbench$ sudo ./flashbench --open-au /dev/sdc -b 1024 --erasesize=1048576 --open-au-nr=1 1MiB 7.51M/s 512KiB 2.13M/s 256KiB 4.12M/s 128KiB 6.73M/s 64KiB 7.38M/s 32KiB 7.17M/s 16KiB 5.9M/s 8KiB 4.82M/s 4KiB 3.25M/s 2KiB 2.37M/s 1KiB 1.66M/s arnd@klappe2:~/git/flashbench$ sudo ./flashbench --open-au /dev/sdc -b 1024 --erasesize=2097152 --open-au-nr=1 2MiB 10.9M/s 1MiB 4.56M/s 512KiB 3.82M/s 256KiB 6.8M/s 128KiB 10M/s 64KiB 10.7M/s 32KiB 10.1M/s 16KiB 8.33M/s 8KiB 6.61M/s 4KiB 4.21M/s 2KiB 3M/s 1KiB 1.9M/s arnd@klappe2:~/git/flashbench$ sudo ./flashbench --open-au /dev/sdc -b 1024 --erasesize=4194304 --open-au-nr=1 4MiB 13.7M/s 2MiB 7.41M/s 1MiB 7.5M/s 512KiB 6.54M/s 256KiB 10M/s 128KiB 12.9M/s 64KiB 14M/s 32KiB 12.9M/s 16KiB 10.5M/s 8KiB 7.77M/s 4KiB 5.12M/s 2KiB 3.32M/s 1KiB 2.02M/s
arnd@klappe2:~/git/flashbench$ sudo ./flashbench --open-au /dev/sdc -b 1024 --erasesize=2097152 --open-au-nr=2 2MiB 11.3M/s 1MiB 7.37M/s 512KiB 4.53M/s 256KiB 2.56M/s 128KiB 1.37M/s 64KiB 737K/s 32KiB 377K/s
arnd@klappe2:~/git/flashbench$ sudo ./flashbench --open-au /dev/sdc -b 1024 --erasesize=2097152 --open-au-nr=4 2MiB 10.9M/s 1MiB 7.39M/s 512KiB 4.54M/s 256KiB 2.55M/s 128KiB 1.4M/s 64KiB 735K/s 32KiB 376K/s
# Linear writing is ok arnd@klappe2:~/git/flashbench$ sudo ./flashbench /dev/sdc --blocksize=1024 --erasesize=2097152 --findfat --fat-nr=6 2MiB 14.2M/s 19M/s 18.8M/s 19M/s 18.8M/s 18.9M/s 1MiB 6.04M/s 19M/s 18.9M/s 18.7M/s 18.9M/s 19.5M/s 512KiB 4.8M/s 18.7M/s 18.9M/s 18.8M/s 18.5M/s 18.7M/s 256KiB 7.52M/s 19.1M/s 19.2M/s 18.5M/s 18.4M/s 18.4M/s 128KiB 12.2M/s 18M/s 17.8M/s 17.4M/s 18M/s 18.1M/s 64KiB 12.5M/s 18.6M/s 18.3M/s 18.4M/s 18.3M/s 18.3M/s 32KiB 11.8M/s 16.7M/s 16.8M/s 16.8M/s 16.9M/s 16.7M/s 16KiB 9.86M/s 13.5M/s 13.6M/s 13.5M/s 13.5M/s 13.3M/s 8KiB 7.61M/s 9.4M/s 9.4M/s 9.42M/s 9.39M/s 9.22M/s 4KiB 5.47M/s 6.24M/s 6.05M/s 6.32M/s 6.17M/s 6.27M/s 2KiB 3.56M/s 3.78M/s 3.74M/s 3.72M/s 3.63M/s 3.67M/s 1KiB 1.9M/s 2.21M/s 2.23M/s 2.23M/s 2.22M/s 2.21M/s
################## # Further low-level testing revealed 992 KiB erase blocks, which gives us good performance: arnd@klappe2:~/git/flashbench$ sudo ./flashbench /dev/sdc --erasesize=$[512 * 1024] --blocksize=512 --open-au --open-au-nr=1 512KiB 20.2M/s 256KiB 3.77M/s 128KiB 16.8M/s 64KiB 18.5M/s 32KiB 16.5M/s 16KiB 12.9M/s 8KiB 9.23M/s 4KiB 6.39M/s 2KiB 3.23M/s 1KiB 1.6M/s 512B 812K/s
# The same with 2 open erase blocks does not work at all: arnd@klappe2:~/git/flashbench$ sudo ./flashbench /dev/sdc --erasesize=$[512 * 1024] --blocksize=512 --open-au --open-au-nr=2 512KiB 2.83M/s 256KiB 1.99M/s 128KiB 1.43M/s 64KiB 763K/s 32KiB 376K/s 16KiB 293K/s 8KiB 282K/s 4KiB 184K/s 2KiB 102K/s 1KiB 85.9K/s 512B 75K/s
# nor does random access: arnd@klappe2:~/git/flashbench$ sudo ./flashbench /dev/sdc --erasesize=$[512 * 1024] --blocksize=512 --open-au --open-au-nr=1 --random 512KiB 19.4M/s 256KiB 1.73M/s 128KiB 2.49M/s 64KiB 1.22M/s 32KiB 670K/s 16KiB 390K/s 8KiB 318K/s 4KiB 194K/s 2KiB 119K/s 1KiB 95K/s 512B 78.6K/s
flashbench-results@lists.linaro.org