diff options
author | Arnd Bergmann <arnd@arndb.de> | 2011-02-17 00:07:07 +0100 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2011-02-17 00:07:07 +0100 |
commit | 6aa1d51196783fb743a487e876645fb7ccbd76a0 (patch) | |
tree | 2a9281059e38aca34f99373a1c58bba25bed96da | |
parent | c0b3f05a917f2be20f4ddf08d15b79edd9514606 (diff) | |
download | flashbench-6aa1d51196783fb743a487e876645fb7ccbd76a0.tar.gz |
flashbench: add README file
This adds a little introductory file describing
how to use flashbench. Needs more text still.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-rw-r--r-- | README | 86 |
1 files changed, 86 insertions, 0 deletions
@@ -0,0 +1,86 @@ += flashbench -- identify characteristics of flash media = + +This is the tool used to identify the properties of +SD cards and other media for the Linaro flash memory +survey at [1]. The latest version should be available +at [2]. Please also check out the article on lwn.net [3]. + +A short introduction to the most useful commands follows. + +== Guess erase block and page sizes == + +''flashbench -a <device>'' + +This is a simple read-only test doing small reads +across boundaries of various sizes. Example: + +$ sudo ./flashbench -a /dev/mmcblk0 --blocksize=1024 +align 134217728 pre 735µs on 1.08ms post 780µs diff 324µs +align 67108864 pre 736µs on 1.05ms post 763µs diff 300µs +align 33554432 pre 722µs on 1.04ms post 763µs diff 294µs +align 16777216 pre 727µs on 1.05ms post 772µs diff 302µs +align 8388608 pre 724µs on 1.04ms post 768µs diff 299µs +align 4194304 pre 741µs on 1.08ms post 788µs diff 317µs +align 2097152 pre 745µs on 950µs post 811µs diff 171µs +align 1048576 pre 745µs on 945µs post 807µs diff 169µs +align 524288 pre 743µs on 936µs post 799µs diff 165µs +align 262144 pre 746µs on 948µs post 809µs diff 171µs +align 131072 pre 737µs on 935µs post 804µs diff 165µs +align 65536 pre 735µs on 925µs post 796µs diff 159µs +align 32768 pre 735µs on 925µs post 800µs diff 157µs +align 16384 pre 745µs on 911µs post 781µs diff 148µs +align 8192 pre 785µs on 808µs post 725µs diff 53.3µs +align 4096 pre 784µs on 788µs post 779µs diff 5.85µs +align 2048 pre 787µs on 793µs post 789µs diff 4.65µs + +This shows the access times to do two 1024 byte reads around +the boundaries of power-of-two aligned blocks. Reading at +the end of a 128 MB unit takes around 735 microseconds, reading x +the last block of this unit together with the first block of +the next one takes about 1080 microseconds and reading the first +two blocks in a 128 MB unit takes around 780 microseconds. + +The most interesting number here is the last one, the difference +between the second number and the average of the first and the third +is 324 microseconds. These numbers all stay roughly the same for +all units between 4 MB and 128 MB. + +However, from 2 MB down to 16 KB, the last column has a much lower +value. This indicates that whatever the memory card does on a 4 MB +boundary does not happen at other boundaries. The educated guess +here is that 4 MB is the erase block size, also called the segment +or allocation unit size. This erase blocksize will need to be +used in other tests following this one. + +Similarly, both 16 KB and 8 KB boundaries are special. The logical +explanation for this is that the card has 8 KB pages, but can use +multi-plane accesses to read two 8 KB pages simultaneously. + +Some cards only show a clear pattern using accesses with certain +block sizes, other cards do not show any pattern, which means +that the numbers need to be determined differently. + +Also, cards that were never fully written may show a different +behaviour because access times on pre-erased segments are different +from those that have been written. + +== Create a scatter plot of access times == + +''flashbench -s <device> --scatter-order=<n> --scatter-span=<m> -o <file>'' + +Writes a scatter plot into a file that can be used as input +for a ''gnuplot -p -e 'plot "file"' '' + +== References == + +[1] https://wiki.linaro.org/WorkingGroups/KernelConsolidation/Projects/FlashCardSurvey +[2] git clone git://git.linaro.org/people/arnd/flashbench.git +[3] http://lwn.net/Articles/428XXX FIXME + +Feel free to reach the author by email for any questions +about the latest version, Arnd Bergmann <arnd.bergmann@linaro.org>, +or use the linaro-dev@lists.linaro.org mailing list for discussions. + +If you use this tool to measure memory cards, USB sticks +or SSDs and get useful results, please share them +at flashbench-results@lists.linaro.org. |