Michel Machado efdb48c79b f3probe: balance the number of writes and resets
One can write more blocks per pass in order to reduce
the total number of passes.
Trading resets for writes is effective when writing blocks is
cheaper than reseting the device being probed.

This patch dynamically balances the number of writes and
resets while probing.
The effectiveness of this balance is shown below:

A good 256MB drive produced the following measurements:
Probe time: 2.89 seconds
Probe read op: count=64, total time=0.13s, avg op time=2.06ms
Probe write op: count=48, total time=1.41s, avg op time=29.47ms
Probe reset op: count=8, total time=1.35s, avg op time=168.48ms

The results from previous commit (see git log):
Probe time: 47.57 seconds
Probe read op: count=2014, total time=1.72s, avg op time=0.85ms
Probe write op: count=2003, total time=45.32s, avg op time=22.62ms
Probe reset op: count=3, total time=0.53s, avg op time=175.66ms

Moreover, this patch spaces more uniformly
the blocks write_test_blocks() writes to improve
the effectiveness of each pass.
2014-10-09 17:54:30 -04:00
2014-09-21 11:50:25 -04:00
2014-09-09 10:12:40 -04:00
2014-09-02 10:30:43 -04:00
2014-09-02 10:30:43 -04:00
2014-08-28 15:11:31 -04:00
2014-09-02 10:30:43 -04:00

### Compile stable software on Linux, Apple Mac, Windows/Cygwin, and FreeBSD

make


### Compile experimental software on Linux

make experimental

NOTES:
   - Experimental software might compile on non-Linux platforms, but
     there is no guarantee given that they are only tested on Linux.
   - Please do not e-mail me saying that you want an experimental software
     to run on your platform; I already know that.
   - If you want experimental software to run on your platform,
     help to port them, or find someone that can port them for you.
     If you do port the software, please send me a patch to help others.
   - Currently, only f3probe is experimental.
   - f3proble requires the library libudev to compile.
     On Ubuntu, you can install this library with the following command:
     sudo apt-get install libudev-dev


### Use example of f3write/f3read

./f3write /media/5EBD-5C80/
./f3read /media/5EBD-5C80/

Please replace "/media/5EBD-5C80/" with the appropriate path.
USB devices are mounted in "/Volumes" on Macs.

For more information see http://oss.digirati.com.br/f3/


### Files

changelog	- Change log for package maintainers.
f3read.1	- Man page for f3read and f3write.
		  In order to read this manual page, run 'man ./f3read.1'.
		  To install the page, run
		  'install --owner=root --group=root --mode=644 f3read.1 /usr/share/man/man1'.
LICENSE		- License (GPLv3).
Makefile	- make(1) file.
README		- This file.

*.h and *.c	- C code of F3.

## Bash scripts

Although the simple scripts listed in this section are ready for use,
they are really meant to help you to write your own scripts.
So you can personalize F3 to your specific needs.

f3write.h2w	- Script to create files exactly like H2testw.
		  Use example: 'f3write.h2w /media/5EBD-5C80/'

log-f3wr	- Script that runs f3write and f3read, and records
		  their output into a log file.
		  Use example: 'log-f3wr log-filename /media/5EBD-5C80/'

Please notice that all scripts and use examples above assume that
f3write, f3read, and the scripts are reachable from
your environment PATH variable.
If that is not the case, but all of them are in your current path,
prefix the use examples above with 'PATH=$PATH:./' as shown below
for the script log-f3wr:

PATH=$PATH:./ log-f3wr log-filename /media/5EBD-5C80/

The current path is represented by './' in the previous example.
Description
F3 - Fight Flash Fraud
Readme GPL-3.0 1.6 MiB
Languages
C 97.6%
Roff 1%
Makefile 1%
Dockerfile 0.2%
Shell 0.2%