Commit graph

1471 commits

Author SHA1 Message Date
Andrea Mazzoleni
e5ab577b6d Add the new makesan.sh script and some more comments 2016-01-09 11:19:53 +01:00
Andrea Mazzoleni
9430106c71 Allow to disable inline assembly from configure
This is required for the -fsanitize options that don't
support inline assembly statements.
2016-01-09 11:19:52 +01:00
Andrea Mazzoleni
56a27b394f Extend the multithread regression test 2016-01-09 11:19:52 +01:00
Andrea Mazzoleni
f93b1845f5 Add support for various sanitizers 2016-01-09 11:19:52 +01:00
Andrea Mazzoleni
da5ef977e3 Add the no-warnings option in the regression test 2016-01-09 11:19:52 +01:00
Andrea Mazzoleni
2e12b10590 Signal condition variables outside the lock
This reduces the number of context switches, because the
signaled thread can start immediately.

Some interesting discussion is at:

Condvars: signal with mutex locked or not?
http://www.domaigne.com/blog/computing/condvars-signal-with-mutex-locked-or-not/

Calling pthread_cond_signal without locking mutex
4544494 (4544494)
2016-01-09 10:25:56 +01:00
Andrea Mazzoleni
8e47e2b024 Signal the 'done' condition only at the waiting index
This reduces the number of context switches.
2016-01-09 10:25:56 +01:00
Andrea Mazzoleni
22d806a04f Minor beatification at the IO module 2016-01-09 10:25:56 +01:00
Andrea Mazzoleni
d71b1b21b6 Always print the CPU value, even if 0%
In dry, it's really 0.
2016-01-09 10:25:56 +01:00
Andrea Mazzoleni
c870b04b66 Refactor locks use in support 2016-01-09 10:25:56 +01:00
Andrea Mazzoleni
ec5b383c1d Add support for multithread data and parity reading in dry 2016-01-09 10:25:56 +01:00
Andrea Mazzoleni
e15b5b122c Remove the unnecessary parity_ptr variable in dry 2016-01-09 10:25:56 +01:00
Andrea Mazzoleni
da5be1c5a7 Reduce memory occupation for MT
The copy buffer doesn't need a copy for each thread.
2016-01-09 10:25:56 +01:00
Andrea Mazzoleni
fb404ef149 Print the amount of memory used for MT 2016-01-09 10:25:56 +01:00
Andrea Mazzoleni
4191989fa7 Restore error reporting for parity write 2016-01-09 10:25:56 +01:00
Andrea Mazzoleni
fa635f72b8 In the check log write status:correct only in verbose mode 2016-01-09 10:25:56 +01:00
Andrea Mazzoleni
a3121c31c5 Add support for multithread parity writing in sync 2016-01-09 10:25:56 +01:00
Andrea Mazzoleni
e69e8640ce Use pread also in import and search 2016-01-09 10:25:56 +01:00
Andrea Mazzoleni
18cc80bd7e Now pread and pwrite use is required for multithread
We need to support concurrent access at the same file handle
from multiple threads, and they cannot share the same file pointer.
2016-01-09 10:25:56 +01:00
Andrea Mazzoleni
62b7587c3a IO functions renaming to prepare for parity write support
No functional change.
2016-01-09 10:25:56 +01:00
Andrea Mazzoleni
d9f7657107 Remove the unnecessary parity_ptr variable in sync 2016-01-09 10:25:56 +01:00
Andrea Mazzoleni
0849bfc261 Use a thread-safe pread/pwrite implementation for Windows
This may be useful in future for concurrent calls to the same file.
2016-01-09 10:25:56 +01:00
Andrea Mazzoleni
b619b9bee1 Use a faster memory test
We have now many buffers to test, and we need a faster test.
2016-01-09 10:25:56 +01:00
Andrea Mazzoleni
55ac2b0d25 Use a lot more read-ahead buffers
This improves the performance even more.
2016-01-09 10:25:47 +01:00
Andrea Mazzoleni
afd29347bb Restore the io error limit feature for multithread support 2016-01-09 10:18:14 +01:00
Andrea Mazzoleni
cbf2040b89 Add mutex protection at the filesystem structure
In sync we need to modify the filesystem, like to call
fs_deallocate(). We need then proper protection.
This also removes the need of multiple fs_last cached value.
2016-01-09 10:18:14 +01:00
Andrea Mazzoleni
74204a42d7 Add support for multithread data reading in sync 2016-01-09 10:18:14 +01:00
Andrea Mazzoleni
51af8931b7 Add support for multithread data and parity reading in scrub 2016-01-09 10:18:14 +01:00
Andrea Mazzoleni
3c00248aa6 Add level knownledge to parity handle 2016-01-09 10:18:14 +01:00
Andrea Mazzoleni
a279333c0b Alternate scrub next block computation 2016-01-09 10:18:14 +01:00
Andrea Mazzoleni
2f5c6a39a9 Fix unaligned memory access in import
After extent conversion, the hash is not not aligned anymore,
and we cannot cast anymore to uint32.
2016-01-09 10:06:37 +01:00
Andrea Mazzoleni
9d4fd25774 Avoid a float division by zero in testing
In the regression testing the fake probability goes
to 0, resulting in an impossible division.
2016-01-09 10:05:57 +01:00
Andrea Mazzoleni
a45641dcc9 Add explicit conversion to unsigned from byte
Implicit conversion is to signed int, that may overlow,
resulting in what C considers undefined behaviour.
Better to avoid it.
2016-01-09 10:01:33 +01:00
Andrea Mazzoleni
9b918c3ca0 Some more coverage commenting 2016-01-06 00:26:24 +01:00
Andrea Mazzoleni
84f7a623ab Be more verbose in log and messages about UUID 2016-01-05 23:35:55 +01:00
Andrea Mazzoleni
cc8ca88ecf Add some more coverage exclusions 2016-01-05 12:23:05 +01:00
Andrea Mazzoleni
c879140663 Print the exit status of addr2line 2016-01-05 11:16:03 +01:00
Andrea Mazzoleni
fe20160958 Fix the precision field in the addr2line call
It must be a int type in x64.
2016-01-05 11:04:04 +01:00
Andrea Mazzoleni
51f064dbbd Get the version even if no tag is present
If not tag is present, git cannot describe the commit.
In this case we want "none" version.
2016-01-05 10:59:50 +01:00
Andrea Mazzoleni
f277bf24b1 Use the new version format in makescan.sh 2016-01-04 11:11:40 +01:00
Andrea Mazzoleni
62aba9228a Add a new test option to force parity update 2016-01-04 10:43:43 +01:00
Andrea Mazzoleni
a9701d3e7c Add autoreconf to makescan.sh to update the version 2016-01-03 19:13:57 +01:00
Andrea Mazzoleni
109d38bc7f Revise HISTORY 2016-01-03 19:12:47 +01:00
Andrea Mazzoleni
3c9de8fc7e One more TODO entry 2016-01-02 18:30:25 +01:00
Andrea Mazzoleni
d796760e71 Update TODO items 2016-01-02 17:37:51 +01:00
Andrea Mazzoleni
1d7ba9a147 Fix typos in the manual 2016-01-02 16:57:02 +01:00
Andrea Mazzoleni
5249f9cb04 Fix various typos in comments 2016-01-02 16:52:20 +01:00
Andrea Mazzoleni
6220e4a5e2 By default deploy Windows debug binaries 2016-01-02 15:38:19 +01:00
Andrea Mazzoleni
458611540d Make the use of libblkid optional in configuration 2016-01-02 15:14:46 +01:00
Andrea Mazzoleni
646bd52668 Use fair scheduling in helgrind and drd 2016-01-02 12:25:37 +01:00