commit 3857105b4d9b8c71d7df70959734f6dabd45493d Author: Alberto Bertogli Date: Tue Oct 29 23:12:24 2013 +0000 libfiu 0.92 Signed-off-by: Alberto Bertogli commit 2d6f6e781c27303620c105ba6523f5efc7e704be Author: Alberto Bertogli Date: Fri Oct 25 01:38:39 2013 +0100 libfiu: Add a cache for the wildcard entries This patch adds a cache for the wildcard entries. It caches both positive and negative lookups into the wildcard list. It brings a very significant performance improvement when several wildcarded failure points are enabled. Signed-off-by: Alberto Bertogli commit f4e937f8a727ef60063a8fa7c54ae8587b2e70be Author: Alberto Bertogli Date: Wed Oct 23 02:44:17 2013 +0100 libfiu: Use a hash table for the final entries This patch makes wtable use a hash for the final entries. This passes the tests, and improves the performance massively when the failure points are non-wildcarded. Signed-off-by: Alberto Bertogli commit f672b4dc9bb9d348ab014d660bd892df78e8a148 Author: Alberto Bertogli Date: Fri Oct 25 00:23:03 2013 +0100 tests: Add a "parallel wildcard" test This patch introduces a "parallel wildcard" test, similar to the existing "parallel" one, which stress-tests failure points with wildcards. Signed-off-by: Alberto Bertogli commit 14e80fa8753df9d4d7dfa8547bc098149bd7b37f Author: Alberto Bertogli Date: Wed Oct 23 02:45:01 2013 +0100 tests: Improve the parallel test This patch introduces small improvements in the parallel test, such as the use of a rwlock, pre-calculating all the failure points names, and counting the cycles of each function. Signed-off-by: Alberto Bertogli commit e8c24ec5bacca66aa040d383f2667099d945533d Author: Alberto Bertogli Date: Tue Oct 29 02:01:01 2013 +0000 tests: Add a performance test This patch adds a simple performance test which runs "e2fsck" using the posix preloader and under various conditions, timing how much it takes. It is useful as a real-life syscall-intensive load test, which can give us an indication of libfiu's overhead. Signed-off-by: Alberto Bertogli commit 5c20f63dba8dae4c46a43af6ff40f0103d653718 Author: Alberto Bertogli Date: Wed Oct 23 04:17:46 2013 +0100 tests: Add a wildcards test This patch adds a few tests for the wildcard matching. Signed-off-by: Alberto Bertogli commit 59ab15c739bce5f9563d8250849c588764aef453 Author: Alberto Bertogli Date: Fri Oct 11 02:42:55 2013 +0100 libfiu: Do not crash if fiu_fail() is run before fiu_init() Under some circumstances (e.g. some preload invocations) it can happen that fiu_fail() gets called before fiu_init(). In that case, our enabled_fails table is NULL, so we shouldn't try to access it. This patch changes fiu_fail() to do that. Signed-off-by: Alberto Bertogli commit 92c7a331da5816e2718c076124db5d0abe38feb7 Author: Alberto Bertogli Date: Fri Oct 11 02:18:09 2013 +0100 libfiu: Fix FIU_ONETIME races This patch fixes some problems with FIU_ONETIME where it could be ran twice, or could cause corruption when removing from the running list. To fix them, we introduce locking on those failure points, to prevent taking decisions concurrently. The normal failure points remain unaffected by this locking, so they continue to have better performance. Thanks a lot to Chaitanya Patel for the bug report. Signed-off-by: Alberto Bertogli commit 0e714302c43baf593afe160a2a4016ed38f2922c Author: Alberto Bertogli Date: Fri Oct 11 01:48:13 2013 +0100 tests: Introduce three new tests This patch introduces three new tests: - test-manyfps.py: Test the creation of many failure points. - test-onetime.py: Test that we fail ONETIME points only one time. - test-parallel.c: Test creation and removal of failure points while checking them on a different thread. The latter, in particular, stresses thread safety for most of the common code. Signed-off-by: Alberto Bertogli commit 8e39c4e6c0d168b197f0d7fb7758758f995131df Author: Alberto Bertogli Date: Fri Oct 11 01:43:54 2013 +0100 libfiu: Use a separate data structure to track enabled failure points This patch introduces a new simple data structure, the wtable, which is used to store key-value pairs (with \0-terminated keys and void * values), that supports wildcarded keys. It is then used to replace the open-coded enabled_fails structure in fiu.c. Incidentally, that fixes a couple of races at insertion time (e.g. in fiu_enable_external() we could attempt to call the external function pointer before we had properly set it in our pf_info structure). Signed-off-by: Alberto Bertogli commit 1f7207924c26bd0ad4ea7c8f6c3108e5ea153e99 Author: Alberto Bertogli Date: Fri Oct 11 01:32:10 2013 +0100 libfiu: Do not build with -O3 for debug/profile builds By default, we shouldn't use -O3 for debug/profile builds, as it can make the debugging/profiling information much harder to follow. Signed-off-by: Alberto Bertogli commit 82621d9c4d483e05dc80e513dd365f7a94605737 Author: Alberto Bertogli Date: Wed Oct 17 23:47:31 2012 +0100 util/fiu-ctrl: Fix deprecated options The deprecated options were broken, and the resulting commands were not being sent over the control pipe. This patch should fix them, so that the options work once again. Thanks to Serafeim Zanikolas for reporting this issue. Signed-off-by: Alberto Bertogli commit 17fdac566ea722984d7fcb3e1e3aad946900568e Author: Alberto Bertogli Date: Mon Oct 15 22:52:32 2012 +0100 utils/fiu-ctrl: Emit a warning on deprecated options This patch makes fiu-ctrl emit a warning when one of the deprecated options are used, and also fixes the omission of one of them in the help text. Thanks to Serafeim Zanikolas for the bug report. Signed-off-by: Alberto Bertogli