Commit 73bc029b authored by Rehas Sachdeva's avatar Rehas Sachdeva Committed by Matthew Wilcox

radix tree test suite: Dial down verbosity with -v

Make the output of radix tree test suite less verbose by default and add
-v and -vv command line options for increasing level of verbosity.
Signed-off-by: default avatarRehas Sachdeva <aquannie@gmail.com>
Signed-off-by: default avatarMatthew Wilcox <mawilcox@microsoft.com>
parent 5eeb2d23
...@@ -71,7 +71,7 @@ static void benchmark_size(unsigned long size, unsigned long step, int order) ...@@ -71,7 +71,7 @@ static void benchmark_size(unsigned long size, unsigned long step, int order)
tagged = benchmark_iter(&tree, true); tagged = benchmark_iter(&tree, true);
normal = benchmark_iter(&tree, false); normal = benchmark_iter(&tree, false);
printf("Size %ld, step %6ld, order %d tagged %10lld ns, normal %10lld ns\n", printv(2, "Size %ld, step %6ld, order %d tagged %10lld ns, normal %10lld ns\n",
size, step, order, tagged, normal); size, step, order, tagged, normal);
item_kill_tree(&tree); item_kill_tree(&tree);
...@@ -85,8 +85,8 @@ void benchmark(void) ...@@ -85,8 +85,8 @@ void benchmark(void)
128, 256, 512, 12345, 0}; 128, 256, 512, 12345, 0};
int c, s; int c, s;
printf("starting benchmarks\n"); printv(1, "starting benchmarks\n");
printf("RADIX_TREE_MAP_SHIFT = %d\n", RADIX_TREE_MAP_SHIFT); printv(1, "RADIX_TREE_MAP_SHIFT = %d\n", RADIX_TREE_MAP_SHIFT);
for (c = 0; size[c]; c++) for (c = 0; size[c]; c++)
for (s = 0; step[s]; s++) for (s = 0; step[s]; s++)
......
...@@ -177,7 +177,7 @@ void iteration_test(unsigned order, unsigned test_duration) ...@@ -177,7 +177,7 @@ void iteration_test(unsigned order, unsigned test_duration)
{ {
int i; int i;
printf("Running %siteration tests for %d seconds\n", printv(1, "Running %siteration tests for %d seconds\n",
order > 0 ? "multiorder " : "", test_duration); order > 0 ? "multiorder " : "", test_duration);
max_order = order; max_order = order;
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
int nr_allocated; int nr_allocated;
int preempt_count; int preempt_count;
int kmalloc_verbose; int kmalloc_verbose;
int test_verbose;
struct kmem_cache { struct kmem_cache {
pthread_mutex_t lock; pthread_mutex_t lock;
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
#include "../../../../include/linux/radix-tree.h" #include "../../../../include/linux/radix-tree.h"
extern int kmalloc_verbose; extern int kmalloc_verbose;
extern int test_verbose;
static inline void trace_call_rcu(struct rcu_head *head, static inline void trace_call_rcu(struct rcu_head *head,
void (*func)(struct rcu_head *head)) void (*func)(struct rcu_head *head))
...@@ -12,6 +13,11 @@ static inline void trace_call_rcu(struct rcu_head *head, ...@@ -12,6 +13,11 @@ static inline void trace_call_rcu(struct rcu_head *head,
offsetof(struct radix_tree_node, rcu_head)); offsetof(struct radix_tree_node, rcu_head));
call_rcu(head, func); call_rcu(head, func);
} }
#define printv(verbosity_level, fmt, ...) \
if(test_verbose >= verbosity_level) \
printf(fmt, ##__VA_ARGS__)
#undef call_rcu #undef call_rcu
#define call_rcu(x, y) trace_call_rcu(x, y) #define call_rcu(x, y) trace_call_rcu(x, y)
......
...@@ -68,7 +68,7 @@ void big_gang_check(bool long_run) ...@@ -68,7 +68,7 @@ void big_gang_check(bool long_run)
for (i = 0; i < (long_run ? 1000 : 3); i++) { for (i = 0; i < (long_run ? 1000 : 3); i++) {
__big_gang_check(); __big_gang_check();
printf("%d ", i); printv(2, "%d ", i);
fflush(stdout); fflush(stdout);
} }
} }
...@@ -129,14 +129,19 @@ void check_copied_tags(struct radix_tree_root *tree, unsigned long start, unsign ...@@ -129,14 +129,19 @@ void check_copied_tags(struct radix_tree_root *tree, unsigned long start, unsign
putchar('.'); */ putchar('.'); */
if (idx[i] < start || idx[i] > end) { if (idx[i] < start || idx[i] > end) {
if (item_tag_get(tree, idx[i], totag)) { if (item_tag_get(tree, idx[i], totag)) {
printf("%lu-%lu: %lu, tags %d-%d\n", start, end, idx[i], item_tag_get(tree, idx[i], fromtag), item_tag_get(tree, idx[i], totag)); printv(2, "%lu-%lu: %lu, tags %d-%d\n", start,
end, idx[i], item_tag_get(tree, idx[i],
fromtag),
item_tag_get(tree, idx[i], totag));
} }
assert(!item_tag_get(tree, idx[i], totag)); assert(!item_tag_get(tree, idx[i], totag));
continue; continue;
} }
if (item_tag_get(tree, idx[i], fromtag) ^ if (item_tag_get(tree, idx[i], fromtag) ^
item_tag_get(tree, idx[i], totag)) { item_tag_get(tree, idx[i], totag)) {
printf("%lu-%lu: %lu, tags %d-%d\n", start, end, idx[i], item_tag_get(tree, idx[i], fromtag), item_tag_get(tree, idx[i], totag)); printv(2, "%lu-%lu: %lu, tags %d-%d\n", start, end,
idx[i], item_tag_get(tree, idx[i], fromtag),
item_tag_get(tree, idx[i], totag));
} }
assert(!(item_tag_get(tree, idx[i], fromtag) ^ assert(!(item_tag_get(tree, idx[i], fromtag) ^
item_tag_get(tree, idx[i], totag))); item_tag_get(tree, idx[i], totag)));
...@@ -238,7 +243,7 @@ static void __locate_check(struct radix_tree_root *tree, unsigned long index, ...@@ -238,7 +243,7 @@ static void __locate_check(struct radix_tree_root *tree, unsigned long index,
item = item_lookup(tree, index); item = item_lookup(tree, index);
index2 = find_item(tree, item); index2 = find_item(tree, item);
if (index != index2) { if (index != index2) {
printf("index %ld order %d inserted; found %ld\n", printv(2, "index %ld order %d inserted; found %ld\n",
index, order, index2); index, order, index2);
abort(); abort();
} }
...@@ -289,48 +294,48 @@ static void single_thread_tests(bool long_run) ...@@ -289,48 +294,48 @@ static void single_thread_tests(bool long_run)
{ {
int i; int i;
printf("starting single_thread_tests: %d allocated, preempt %d\n", printv(1, "starting single_thread_tests: %d allocated, preempt %d\n",
nr_allocated, preempt_count); nr_allocated, preempt_count);
multiorder_checks(); multiorder_checks();
rcu_barrier(); rcu_barrier();
printf("after multiorder_check: %d allocated, preempt %d\n", printv(2, "after multiorder_check: %d allocated, preempt %d\n",
nr_allocated, preempt_count); nr_allocated, preempt_count);
locate_check(); locate_check();
rcu_barrier(); rcu_barrier();
printf("after locate_check: %d allocated, preempt %d\n", printv(2, "after locate_check: %d allocated, preempt %d\n",
nr_allocated, preempt_count); nr_allocated, preempt_count);
tag_check(); tag_check();
rcu_barrier(); rcu_barrier();
printf("after tag_check: %d allocated, preempt %d\n", printv(2, "after tag_check: %d allocated, preempt %d\n",
nr_allocated, preempt_count); nr_allocated, preempt_count);
gang_check(); gang_check();
rcu_barrier(); rcu_barrier();
printf("after gang_check: %d allocated, preempt %d\n", printv(2, "after gang_check: %d allocated, preempt %d\n",
nr_allocated, preempt_count); nr_allocated, preempt_count);
add_and_check(); add_and_check();
rcu_barrier(); rcu_barrier();
printf("after add_and_check: %d allocated, preempt %d\n", printv(2, "after add_and_check: %d allocated, preempt %d\n",
nr_allocated, preempt_count); nr_allocated, preempt_count);
dynamic_height_check(); dynamic_height_check();
rcu_barrier(); rcu_barrier();
printf("after dynamic_height_check: %d allocated, preempt %d\n", printv(2, "after dynamic_height_check: %d allocated, preempt %d\n",
nr_allocated, preempt_count); nr_allocated, preempt_count);
idr_checks(); idr_checks();
ida_checks(); ida_checks();
rcu_barrier(); rcu_barrier();
printf("after idr_checks: %d allocated, preempt %d\n", printv(2, "after idr_checks: %d allocated, preempt %d\n",
nr_allocated, preempt_count); nr_allocated, preempt_count);
big_gang_check(long_run); big_gang_check(long_run);
rcu_barrier(); rcu_barrier();
printf("after big_gang_check: %d allocated, preempt %d\n", printv(2, "after big_gang_check: %d allocated, preempt %d\n",
nr_allocated, preempt_count); nr_allocated, preempt_count);
for (i = 0; i < (long_run ? 2000 : 3); i++) { for (i = 0; i < (long_run ? 2000 : 3); i++) {
copy_tag_check(); copy_tag_check();
printf("%d ", i); printv(2, "%d ", i);
fflush(stdout); fflush(stdout);
} }
rcu_barrier(); rcu_barrier();
printf("after copy_tag_check: %d allocated, preempt %d\n", printv(2, "after copy_tag_check: %d allocated, preempt %d\n",
nr_allocated, preempt_count); nr_allocated, preempt_count);
} }
...@@ -340,16 +345,20 @@ int main(int argc, char **argv) ...@@ -340,16 +345,20 @@ int main(int argc, char **argv)
int opt; int opt;
unsigned int seed = time(NULL); unsigned int seed = time(NULL);
while ((opt = getopt(argc, argv, "ls:")) != -1) { while ((opt = getopt(argc, argv, "ls:v")) != -1) {
if (opt == 'l') if (opt == 'l')
long_run = true; long_run = true;
else if (opt == 's') else if (opt == 's')
seed = strtoul(optarg, NULL, 0); seed = strtoul(optarg, NULL, 0);
else if (opt == 'v')
test_verbose++;
} }
printf("random seed %u\n", seed); printf("random seed %u\n", seed);
srand(seed); srand(seed);
printf("running tests\n");
rcu_register_thread(); rcu_register_thread();
radix_tree_init(); radix_tree_init();
...@@ -366,9 +375,11 @@ int main(int argc, char **argv) ...@@ -366,9 +375,11 @@ int main(int argc, char **argv)
benchmark(); benchmark();
rcu_barrier(); rcu_barrier();
printf("after rcu_barrier: %d allocated, preempt %d\n", printv(2, "after rcu_barrier: %d allocated, preempt %d\n",
nr_allocated, preempt_count); nr_allocated, preempt_count);
rcu_unregister_thread(); rcu_unregister_thread();
printf("tests completed\n");
exit(0); exit(0);
} }
...@@ -30,7 +30,7 @@ static void __multiorder_tag_test(int index, int order) ...@@ -30,7 +30,7 @@ static void __multiorder_tag_test(int index, int order)
/* our canonical entry */ /* our canonical entry */
base = index & ~((1 << order) - 1); base = index & ~((1 << order) - 1);
printf("Multiorder tag test with index %d, canonical entry %d\n", printv(2, "Multiorder tag test with index %d, canonical entry %d\n",
index, base); index, base);
err = item_insert_order(&tree, index, order); err = item_insert_order(&tree, index, order);
...@@ -150,7 +150,7 @@ static void multiorder_check(unsigned long index, int order) ...@@ -150,7 +150,7 @@ static void multiorder_check(unsigned long index, int order)
struct item *item2 = item_create(min, order); struct item *item2 = item_create(min, order);
RADIX_TREE(tree, GFP_KERNEL); RADIX_TREE(tree, GFP_KERNEL);
printf("Multiorder index %ld, order %d\n", index, order); printv(2, "Multiorder index %ld, order %d\n", index, order);
assert(item_insert_order(&tree, index, order) == 0); assert(item_insert_order(&tree, index, order) == 0);
...@@ -188,7 +188,7 @@ static void multiorder_shrink(unsigned long index, int order) ...@@ -188,7 +188,7 @@ static void multiorder_shrink(unsigned long index, int order)
RADIX_TREE(tree, GFP_KERNEL); RADIX_TREE(tree, GFP_KERNEL);
struct radix_tree_node *node; struct radix_tree_node *node;
printf("Multiorder shrink index %ld, order %d\n", index, order); printv(2, "Multiorder shrink index %ld, order %d\n", index, order);
assert(item_insert_order(&tree, 0, order) == 0); assert(item_insert_order(&tree, 0, order) == 0);
...@@ -209,7 +209,8 @@ static void multiorder_shrink(unsigned long index, int order) ...@@ -209,7 +209,8 @@ static void multiorder_shrink(unsigned long index, int order)
item_check_absent(&tree, i); item_check_absent(&tree, i);
if (!item_delete(&tree, 0)) { if (!item_delete(&tree, 0)) {
printf("failed to delete index %ld (order %d)\n", index, order); abort(); printv(2, "failed to delete index %ld (order %d)\n", index, order);
abort();
} }
for (i = 0; i < 2*max; i++) for (i = 0; i < 2*max; i++)
...@@ -234,7 +235,7 @@ void multiorder_iteration(void) ...@@ -234,7 +235,7 @@ void multiorder_iteration(void)
void **slot; void **slot;
int i, j, err; int i, j, err;
printf("Multiorder iteration test\n"); printv(1, "Multiorder iteration test\n");
#define NUM_ENTRIES 11 #define NUM_ENTRIES 11
int index[NUM_ENTRIES] = {0, 2, 4, 8, 16, 32, 34, 36, 64, 72, 128}; int index[NUM_ENTRIES] = {0, 2, 4, 8, 16, 32, 34, 36, 64, 72, 128};
...@@ -275,7 +276,7 @@ void multiorder_tagged_iteration(void) ...@@ -275,7 +276,7 @@ void multiorder_tagged_iteration(void)
void **slot; void **slot;
int i, j; int i, j;
printf("Multiorder tagged iteration test\n"); printv(1, "Multiorder tagged iteration test\n");
#define MT_NUM_ENTRIES 9 #define MT_NUM_ENTRIES 9
int index[MT_NUM_ENTRIES] = {0, 2, 4, 16, 32, 40, 64, 72, 128}; int index[MT_NUM_ENTRIES] = {0, 2, 4, 16, 32, 40, 64, 72, 128};
...@@ -453,7 +454,7 @@ static void check_mem(unsigned old_order, unsigned new_order, unsigned alloc) ...@@ -453,7 +454,7 @@ static void check_mem(unsigned old_order, unsigned new_order, unsigned alloc)
{ {
struct radix_tree_preload *rtp = &radix_tree_preloads; struct radix_tree_preload *rtp = &radix_tree_preloads;
if (rtp->nr != 0) if (rtp->nr != 0)
printf("split(%u %u) remaining %u\n", old_order, new_order, printv(2, "split(%u %u) remaining %u\n", old_order, new_order,
rtp->nr); rtp->nr);
/* /*
* Can't check for equality here as some nodes may have been * Can't check for equality here as some nodes may have been
...@@ -461,7 +462,7 @@ static void check_mem(unsigned old_order, unsigned new_order, unsigned alloc) ...@@ -461,7 +462,7 @@ static void check_mem(unsigned old_order, unsigned new_order, unsigned alloc)
* nodes allocated since they should have all been preloaded. * nodes allocated since they should have all been preloaded.
*/ */
if (nr_allocated > alloc) if (nr_allocated > alloc)
printf("split(%u %u) allocated %u %u\n", old_order, new_order, printv(2, "split(%u %u) allocated %u %u\n", old_order, new_order,
alloc, nr_allocated); alloc, nr_allocated);
} }
......
...@@ -193,7 +193,7 @@ void regression1_test(void) ...@@ -193,7 +193,7 @@ void regression1_test(void)
long arg; long arg;
/* Regression #1 */ /* Regression #1 */
printf("running regression test 1, should finish in under a minute\n"); printv(1, "running regression test 1, should finish in under a minute\n");
nr_threads = 2; nr_threads = 2;
pthread_barrier_init(&worker_barrier, NULL, nr_threads); pthread_barrier_init(&worker_barrier, NULL, nr_threads);
...@@ -216,5 +216,5 @@ void regression1_test(void) ...@@ -216,5 +216,5 @@ void regression1_test(void)
free(threads); free(threads);
printf("regression test 1, done\n"); printv(1, "regression test 1, done\n");
} }
...@@ -80,7 +80,7 @@ void regression2_test(void) ...@@ -80,7 +80,7 @@ void regression2_test(void)
unsigned long int start, end; unsigned long int start, end;
struct page *pages[1]; struct page *pages[1];
printf("running regression test 2 (should take milliseconds)\n"); printv(1, "running regression test 2 (should take milliseconds)\n");
/* 0. */ /* 0. */
for (i = 0; i <= max_slots - 1; i++) { for (i = 0; i <= max_slots - 1; i++) {
p = page_alloc(); p = page_alloc();
...@@ -116,5 +116,5 @@ void regression2_test(void) ...@@ -116,5 +116,5 @@ void regression2_test(void)
/* We remove all the remained nodes */ /* We remove all the remained nodes */
radix_tree_delete(&mt_tree, max_slots); radix_tree_delete(&mt_tree, max_slots);
printf("regression test 2, done\n"); printv(1, "regression test 2, done\n");
} }
...@@ -34,21 +34,21 @@ void regression3_test(void) ...@@ -34,21 +34,21 @@ void regression3_test(void)
void **slot; void **slot;
bool first; bool first;
printf("running regression test 3 (should take milliseconds)\n"); printv(1, "running regression test 3 (should take milliseconds)\n");
radix_tree_insert(&root, 0, ptr0); radix_tree_insert(&root, 0, ptr0);
radix_tree_tag_set(&root, 0, 0); radix_tree_tag_set(&root, 0, 0);
first = true; first = true;
radix_tree_for_each_tagged(slot, &root, &iter, 0, 0) { radix_tree_for_each_tagged(slot, &root, &iter, 0, 0) {
printf("tagged %ld %p\n", iter.index, *slot); printv(2, "tagged %ld %p\n", iter.index, *slot);
if (first) { if (first) {
radix_tree_insert(&root, 1, ptr); radix_tree_insert(&root, 1, ptr);
radix_tree_tag_set(&root, 1, 0); radix_tree_tag_set(&root, 1, 0);
first = false; first = false;
} }
if (radix_tree_deref_retry(*slot)) { if (radix_tree_deref_retry(*slot)) {
printf("retry at %ld\n", iter.index); printv(2, "retry at %ld\n", iter.index);
slot = radix_tree_iter_retry(&iter); slot = radix_tree_iter_retry(&iter);
continue; continue;
} }
...@@ -57,13 +57,13 @@ void regression3_test(void) ...@@ -57,13 +57,13 @@ void regression3_test(void)
first = true; first = true;
radix_tree_for_each_slot(slot, &root, &iter, 0) { radix_tree_for_each_slot(slot, &root, &iter, 0) {
printf("slot %ld %p\n", iter.index, *slot); printv(2, "slot %ld %p\n", iter.index, *slot);
if (first) { if (first) {
radix_tree_insert(&root, 1, ptr); radix_tree_insert(&root, 1, ptr);
first = false; first = false;
} }
if (radix_tree_deref_retry(*slot)) { if (radix_tree_deref_retry(*slot)) {
printk("retry at %ld\n", iter.index); printv(2, "retry at %ld\n", iter.index);
slot = radix_tree_iter_retry(&iter); slot = radix_tree_iter_retry(&iter);
continue; continue;
} }
...@@ -72,30 +72,30 @@ void regression3_test(void) ...@@ -72,30 +72,30 @@ void regression3_test(void)
first = true; first = true;
radix_tree_for_each_contig(slot, &root, &iter, 0) { radix_tree_for_each_contig(slot, &root, &iter, 0) {
printk("contig %ld %p\n", iter.index, *slot); printv(2, "contig %ld %p\n", iter.index, *slot);
if (first) { if (first) {
radix_tree_insert(&root, 1, ptr); radix_tree_insert(&root, 1, ptr);
first = false; first = false;
} }
if (radix_tree_deref_retry(*slot)) { if (radix_tree_deref_retry(*slot)) {
printk("retry at %ld\n", iter.index); printv(2, "retry at %ld\n", iter.index);
slot = radix_tree_iter_retry(&iter); slot = radix_tree_iter_retry(&iter);
continue; continue;
} }
} }
radix_tree_for_each_slot(slot, &root, &iter, 0) { radix_tree_for_each_slot(slot, &root, &iter, 0) {
printf("slot %ld %p\n", iter.index, *slot); printv(2, "slot %ld %p\n", iter.index, *slot);
if (!iter.index) { if (!iter.index) {
printf("next at %ld\n", iter.index); printv(2, "next at %ld\n", iter.index);
slot = radix_tree_iter_resume(slot, &iter); slot = radix_tree_iter_resume(slot, &iter);
} }
} }
radix_tree_for_each_contig(slot, &root, &iter, 0) { radix_tree_for_each_contig(slot, &root, &iter, 0) {
printf("contig %ld %p\n", iter.index, *slot); printv(2, "contig %ld %p\n", iter.index, *slot);
if (!iter.index) { if (!iter.index) {
printf("next at %ld\n", iter.index); printv(2, "next at %ld\n", iter.index);
slot = radix_tree_iter_resume(slot, &iter); slot = radix_tree_iter_resume(slot, &iter);
} }
} }
...@@ -103,9 +103,9 @@ void regression3_test(void) ...@@ -103,9 +103,9 @@ void regression3_test(void)
radix_tree_tag_set(&root, 0, 0); radix_tree_tag_set(&root, 0, 0);
radix_tree_tag_set(&root, 1, 0); radix_tree_tag_set(&root, 1, 0);
radix_tree_for_each_tagged(slot, &root, &iter, 0, 0) { radix_tree_for_each_tagged(slot, &root, &iter, 0, 0) {
printf("tagged %ld %p\n", iter.index, *slot); printv(2, "tagged %ld %p\n", iter.index, *slot);
if (!iter.index) { if (!iter.index) {
printf("next at %ld\n", iter.index); printv(2, "next at %ld\n", iter.index);
slot = radix_tree_iter_resume(slot, &iter); slot = radix_tree_iter_resume(slot, &iter);
} }
} }
...@@ -113,5 +113,5 @@ void regression3_test(void) ...@@ -113,5 +113,5 @@ void regression3_test(void)
radix_tree_delete(&root, 0); radix_tree_delete(&root, 0);
radix_tree_delete(&root, 1); radix_tree_delete(&root, 1);
printf("regression test 3 passed\n"); printv(1, "regression test 3 passed\n");
} }
...@@ -49,10 +49,10 @@ void simple_checks(void) ...@@ -49,10 +49,10 @@ void simple_checks(void)
} }
verify_tag_consistency(&tree, 0); verify_tag_consistency(&tree, 0);
verify_tag_consistency(&tree, 1); verify_tag_consistency(&tree, 1);
printf("before item_kill_tree: %d allocated\n", nr_allocated); printv(2, "before item_kill_tree: %d allocated\n", nr_allocated);
item_kill_tree(&tree); item_kill_tree(&tree);
rcu_barrier(); rcu_barrier();
printf("after item_kill_tree: %d allocated\n", nr_allocated); printv(2, "after item_kill_tree: %d allocated\n", nr_allocated);
} }
/* /*
...@@ -257,7 +257,7 @@ static void do_thrash(struct radix_tree_root *tree, char *thrash_state, int tag) ...@@ -257,7 +257,7 @@ static void do_thrash(struct radix_tree_root *tree, char *thrash_state, int tag)
gang_check(tree, thrash_state, tag); gang_check(tree, thrash_state, tag);
printf("%d(%d) %d(%d) %d(%d) %d(%d) / " printv(2, "%d(%d) %d(%d) %d(%d) %d(%d) / "
"%d(%d) present, %d(%d) tagged\n", "%d(%d) present, %d(%d) tagged\n",
insert_chunk, nr_inserted, insert_chunk, nr_inserted,
delete_chunk, nr_deleted, delete_chunk, nr_deleted,
...@@ -296,13 +296,13 @@ static void __leak_check(void) ...@@ -296,13 +296,13 @@ static void __leak_check(void)
{ {
RADIX_TREE(tree, GFP_KERNEL); RADIX_TREE(tree, GFP_KERNEL);
printf("%d: nr_allocated=%d\n", __LINE__, nr_allocated); printv(2, "%d: nr_allocated=%d\n", __LINE__, nr_allocated);
item_insert(&tree, 1000000); item_insert(&tree, 1000000);
printf("%d: nr_allocated=%d\n", __LINE__, nr_allocated); printv(2, "%d: nr_allocated=%d\n", __LINE__, nr_allocated);
item_delete(&tree, 1000000); item_delete(&tree, 1000000);
printf("%d: nr_allocated=%d\n", __LINE__, nr_allocated); printv(2, "%d: nr_allocated=%d\n", __LINE__, nr_allocated);
item_kill_tree(&tree); item_kill_tree(&tree);
printf("%d: nr_allocated=%d\n", __LINE__, nr_allocated); printv(2, "%d: nr_allocated=%d\n", __LINE__, nr_allocated);
} }
static void single_check(void) static void single_check(void)
...@@ -336,15 +336,15 @@ void tag_check(void) ...@@ -336,15 +336,15 @@ void tag_check(void)
extend_checks(); extend_checks();
contract_checks(); contract_checks();
rcu_barrier(); rcu_barrier();
printf("after extend_checks: %d allocated\n", nr_allocated); printv(2, "after extend_checks: %d allocated\n", nr_allocated);
__leak_check(); __leak_check();
leak_check(); leak_check();
rcu_barrier(); rcu_barrier();
printf("after leak_check: %d allocated\n", nr_allocated); printv(2, "after leak_check: %d allocated\n", nr_allocated);
simple_checks(); simple_checks();
rcu_barrier(); rcu_barrier();
printf("after simple_checks: %d allocated\n", nr_allocated); printv(2, "after simple_checks: %d allocated\n", nr_allocated);
thrash_tags(); thrash_tags();
rcu_barrier(); rcu_barrier();
printf("after thrash_tags: %d allocated\n", nr_allocated); printv(2, "after thrash_tags: %d allocated\n", nr_allocated);
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment