mirror of
https://github.com/AltraMayor/f3.git
synced 2025-08-03 18:46:00 -04:00

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.
### 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
Languages
C
97.6%
Roff
1%
Makefile
1%
Dockerfile
0.2%
Shell
0.2%