278 Commits

Author SHA1 Message Date
Michel Machado
4dae4eaf00 Bump version to 8.0 v8.0 2020-10-29 09:25:47 -04:00
Michel Machado
10cc50fd19
Merge pull request #146 from jowagner/patch-2
Correct overflow protection
2020-09-01 08:40:16 -04:00
Joachim Wagner
67337d7998
Correct overflow protection
`sizeof()` returns the number of bytes, not bits, and since this is as an unsigned type and the value typically less than 10 the assertion currently does not fail but also fails to detect problems when `MAX_N_BLOCK_ORDER` is too big as the comparison is with the the very big number resulting from an unsigned overflow, typically 2^32-2.
2020-09-01 13:22:31 +01:00
Michel Machado
ba0078e6d8
Merge pull request #142 from gchenfc/documentation_docker
Docker documentation on device passthrough
2020-07-30 15:47:36 -04:00
Gerry Chen
fa90e24f05 re-add docker build command (local build) 2020-07-30 14:30:37 -04:00
Gerry Chen
e39d6c542e Docker documentation on device passthrough
Primarily geared towards Mac, but serves as a rough template for Windows as well.
2020-07-30 14:22:37 -04:00
Michel Machado
9a9e74250d libflow: accommodate Macs
As of today, macOS or OS X still does not implement
clock_nanosleep() according to this project:
https://github.com/ChisholmKyle/PosixMachTiming
2020-06-23 08:01:52 -04:00
Michel Machado
5ac9551d87 libflow: avoid types size_t and ssize_t in libflow.h
Those types are not included in libflow.h and
including them is overwhelming.
2020-06-23 07:35:05 -04:00
Michel Machado
099eb7fd42 f3read: tighten assert()
The last assert() in iterate_files() was doing an integer division
before comparing values, so there was potential for a bug going
silent due to the truncation fo the integer division.
This patch rewrite the test with a multiplication.
2020-06-23 07:14:21 -04:00
Michel Machado
ab76ce4f85 README: drop reference to F3X
The project F3X is no longer maintained.

This patch closes #127.
2020-06-22 16:59:59 -04:00
Michel Machado
777c0758b8 f3read: add parameter --max-read-rate 2020-06-22 16:38:42 -04:00
Michel Machado
041c94c4ac f3read: integrate with libflow 2020-06-22 16:38:42 -04:00
Michel Machado
2ba83fb441 f3read: replace fopen(3) with open(2)
This patch is another step to prepare f3read to be integrated with
libflow.
2020-06-22 16:38:42 -04:00
Michel Machado
79cd2d66a2 libflow: rename fields and variables for generality
The original libflow was written for f3write only, and
this was reflected in the name of fields and variables
throughout the code. This patch renames these fields and
variables to reflect the fact that libflow will eventually
support f3write AND f3read.
2020-06-22 16:38:42 -04:00
Michel Machado
a759140bc5 libflow: replace usleep() with clock_nanosleep()
POSIX.1-2008 removed usleep() and POSIX.1-2001 introduced
clock_nanosleep().
2020-06-22 16:38:42 -04:00
Michel Machado
e2a59bc08d libflow: avoid fdatasync() and posix_fadvise()
This patch moves calls to fdatasync() and posix_fadvise() out of
libflow as one more step to generalize libflow.
2020-06-22 16:38:42 -04:00
Michel Machado
14b35b5bc6 f3write: avoid unnecessary calls to measure()
This patch is only meant to have a simpler calling pattern of
libflow since it'll be generalized down the line.
2020-06-22 16:38:42 -04:00
Michel Machado
791acdc326 libflow: do measurements over multiple files
With really fast drives (i.e. >1GB/s), f3write needs to
write multiple files before a measurement can be made.
This patch enhances the flow library to deal with such fast drives.
2020-06-22 16:38:42 -04:00
Michel Machado
b1ab05c280 f3write: move flow code to a new library (libflow)
This is the first step toward generalizing the flow code in order to
reuse it in f3read.
2020-06-22 16:38:42 -04:00
Michel Machado
09164052de
Merge pull request #133 from dproteus13/patch-1
Fix a typo
2020-05-10 11:27:50 -04:00
dproteus13
3c33c54e5d
Fix a typo 2020-05-08 22:56:34 -04:00
Michel Machado
5846f9dbb1 f3probe: report unexpected error codes in read_all()
No unexpected error code should happen in read_all(), but,
if it does, f3probe will report them before aborting.

This patch address the request of user @vi at the following comment:
https://github.com/AltraMayor/f3/issues/82#issuecomment-585829975
2020-02-18 10:27:07 -05:00
Michel Machado
3c19d21859 f3probe: allow errno == ENODATA when calling read(2)
The errno ENODATA is not documented in the manual, but according
to the comment the following comment, it behaves like EIO.

https://github.com/AltraMayor/f3/issues/82#issuecomment-584409275
2020-02-11 07:49:55 -05:00
Michel Machado
7e29f43a60
Merge pull request #129 from shoeper/fedora-deps
Readme: Add Fedora dependency install instructions
2019-12-20 18:42:54 -05:00
Sven Höper
7ba1cc4c9d
Readme: Add Fedora dependency install instructions 2019-12-20 17:41:05 +01:00
Michel Machado
63b68cbfd3
Merge pull request #125 from l29ah/pseudorandom
README: + mechanism of action
2019-09-30 17:35:33 -04:00
Sergey Alirzaev
9f8d16ad4d
README: + mechanism of action 2019-10-01 00:33:39 +03:00
Michel Machado
87ccddca43
Merge pull request #124 from peron/master
Dockerized
2019-09-26 08:54:51 -04:00
Per Junel
04845023be Added link to Docker Hub. 2019-09-20 23:39:51 +02:00
Per Junel
54672797e0 Added a Dockerfile and updated the README on how to build and run with Docker. 2019-09-20 00:55:34 +02:00
Michel Machado
9c343a1b82 Bump version to 7.2 v7.2 2019-06-19 14:43:19 -04:00
Michel Machado
c9eee71ee9 f3write: add a backup speed measurement
If the drive is too fast for the measument of the flow algorithm,
this patch uses a coarse approximation of the writing speed.
2019-05-16 10:57:18 -04:00
Michel Machado
62ef9921c0 f3write: keep up with extremely fast NVM drives
NVM drives are fast enough to overflow 32-bit measurement variables
in bytes and blocks. This patch upgrades these variables to 64 bits.

This patch addresses issue #117:
https://github.com/AltraMayor/f3/issues/117
2019-05-16 07:45:10 -04:00
Michel Machado
2766edd4be f3write: adopt write_all() from libdevs.c
The file system HFS (i.e. "OS X Extended (Journaled)") of
macOS 10.11 may return a number of partial write()'s before
the file system is full.

This POSIX-permited, but unusual behavior was frist reported here:
https://github.com/AltraMayor/f3/issues/111
2019-03-11 12:22:48 -04:00
Michel Machado
3a25af5db3
Merge pull request #110 from bendem/feature/error-code
Return the status of the device as error code
2019-03-04 13:42:41 -03:00
bendem
90ed489c2a Return the status of the device as error code
Closes #106
2019-03-04 16:57:36 +01:00
Michel Machado
fead723be5 f3write: improve measurement of write speed
A second shot on solving issue #102.
2019-01-10 17:23:20 -05:00
Michel Machado
0b8c973c4c f3write: improve measurement of write speed
According to issue #102, calls to fdatasync() might take
a long time (.e.g. 3s or 4s) and distort the measurement of
the average write speed. This patch addresses it by only updating
the measurements when delays are within a tolerance.
2019-01-09 09:31:41 -05:00
Michel Machado
7f4a26d637
Merge pull request #101 from plonibarploni/patch-1
Update README.rst
2019-01-04 14:25:34 -05:00
plonibarploni
a0f22da863
Update README.rst 2019-01-04 14:12:39 -05:00
Michel Machado
1ba78e7e15
Merge pull request #99 from DEVoytas/add_missing_const
libdevs: bring back missing ‘const’ specifier
2019-01-02 08:22:32 -05:00
Mariusz Wojtasik
3ab5bad85c libdevs: bring back missing ‘const’ specifier
Commit 7ff9fad37a32 ("libdevs: fix compiler warning") fixed the warning
by removing duplicate ‘const’ specifier.
The original intent of two ‘const’ specifiers, was most likely to make
non-mutable both: the ‘ftype_to_name‘ array itself and its elements,
so bring back the second ‘const’, but in the correct place this time,
i.e. after ‘*‘.
2018-12-30 21:31:07 +01:00
Michel Machado
7ff9fad37a libdevs: fix compiler warning
Warning:
libdevs.c:26:19: warning: duplicate ‘const’ declaration specifier [-Wduplicate-decl-specifier]
 static const char const *ftype_to_name[FKTY_MAX] = {
                   ^~~~~
2018-12-10 14:07:48 -05:00
Michel Machado
381d8603c2 f3probe: deal with an assertion failure
This patch may address the following issue:
https://github.com/AltraMayor/f3/issues/82
2018-12-10 14:04:29 -05:00
Michel Machado
9ab7e7a48d f3brew: add a comment to the code
The comment explains from where the name B-RE-W comes.

It is meant to address some confusion that may raise as
the following pull request points out:
https://github.com/AltraMayor/f3/pull/96
2018-11-28 09:33:36 -05:00
Michel Machado
4b2eabed72
Merge pull request #95 from dgw/link-updates
HTTPS-ify & fix links
2018-10-08 12:14:50 -04:00
dgw
f6f6d891c7 HTTPS-ify & fix links
Several of the HTTP links are now available over HTTPS, and the
documentation should link directly to the secure version of the
referenced page.

Along the way, a couple of broken links were updated.
2018-10-08 03:08:38 -05:00
Michel Machado
169ea4bcb4
Merge pull request #90 from jwilk-forks/spelling
Fix typos
2018-09-24 08:32:56 -04:00
Jakub Wilk
417a1851fa Fix typos 2018-09-24 10:43:21 +02:00
Michel Machado
e56d2ac729 Bump version to 7.1 v7.1 2018-07-27 04:10:35 -04:00