[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 06/13] test-qht: speed up + test qht_resize
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PULL 06/13] test-qht: speed up + test qht_resize |
Date: |
Wed, 26 Sep 2018 11:37:02 -0700 |
From: "Emilio G. Cota" <address@hidden>
Perform first the tests that exercise code paths that are
easier to hit at small table sizes, and then resize the table
to speed up subsequent tests. If this resize is not too large,
we can make the test faster with no code coverage loss.
- With gcov enabled:
Before: 20.568s, 90.28% qht.c coverage
After: 5.168s, 93.06% qht.c coverage
The coverage increase is entirely due to calling qht_resize,
which we weren't calling before. Note that the code paths
that remain to be tested are either error handling or
can only occur when several threads are accessing the
hash table concurrently (e.g. seqlock retry, trylock fail).
- Without gcov:
Before: 1.987s
After: 0.528s
The speedup is almost the same as with gcov, although the
"before" run is a lot faster.
Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Emilio G. Cota <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
---
tests/test-qht.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tests/test-qht.c b/tests/test-qht.c
index 77666e8c5f..1ec039d636 100644
--- a/tests/test-qht.c
+++ b/tests/test-qht.c
@@ -189,6 +189,10 @@ static void qht_do_test(unsigned int mode, size_t
init_entries)
rm_nonexist(7, 8);
iter_rm_mod(1);
+ if (!(mode & QHT_MODE_AUTO_RESIZE)) {
+ qht_resize(&ht, init_entries * 4 + 4);
+ }
+
check_n(0);
rm_nonexist(0, 10);
insert(0, N);
--
2.17.1
- [Qemu-devel] [PULL 00/13] tcg-next patch queue, Richard Henderson, 2018/09/26
- [Qemu-devel] [PULL 01/13] qht: remove unused map param from qht_remove__locked, Richard Henderson, 2018/09/26
- [Qemu-devel] [PULL 02/13] qht: add qht_iter_remove, Richard Henderson, 2018/09/26
- [Qemu-devel] [PULL 03/13] test-qht: test qht_iter_remove, Richard Henderson, 2018/09/26
- [Qemu-devel] [PULL 04/13] test-qht: test removal of non-existent entries, Richard Henderson, 2018/09/26
- [Qemu-devel] [PULL 12/13] qht-bench: add -p flag to precompute hash values, Richard Henderson, 2018/09/26
- [Qemu-devel] [PULL 07/13] qht: drop ht argument from qht iterators, Richard Henderson, 2018/09/26
- [Qemu-devel] [PULL 13/13] tcg/i386: fix vector operations on 32-bit hosts, Richard Henderson, 2018/09/26
- [Qemu-devel] [PULL 09/13] qht: constify qht_lookup, Richard Henderson, 2018/09/26
- [Qemu-devel] [PULL 06/13] test-qht: speed up + test qht_resize,
Richard Henderson <=
- [Qemu-devel] [PULL 08/13] qht: fix comment in qht_bucket_remove_entry, Richard Henderson, 2018/09/26
- [Qemu-devel] [PULL 11/13] qht: constify arguments to some internal functions, Richard Henderson, 2018/09/26
- [Qemu-devel] [PULL 10/13] qht: constify qht_statistics_init, Richard Henderson, 2018/09/26
- [Qemu-devel] [PULL 05/13] test-qht: test deletion of the last entry in a bucket, Richard Henderson, 2018/09/26