Skip to content

Commit

Permalink
lib/rbtree_test.c: add (inorder) traversal test
Browse files Browse the repository at this point in the history
This adds a second test for regular rb-tree testing in that there is no
need to repeat it for the augmented flavor.

Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Davidlohr Bueso <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
Davidlohr Bueso authored and torvalds committed Sep 9, 2017
1 parent 223f891 commit 977bd8d
Showing 1 changed file with 23 additions and 2 deletions.
25 changes: 23 additions & 2 deletions lib/rbtree_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ static int __init rbtree_test_init(void)
{
int i, j;
cycles_t time1, time2, time;
struct rb_node *node;

nodes = kmalloc(nnodes * sizeof(*nodes), GFP_KERNEL);
if (!nodes)
Expand All @@ -206,8 +207,28 @@ static int __init rbtree_test_init(void)
time = time2 - time1;

time = div_u64(time, perf_loops);
printk(" -> %llu cycles\n", (unsigned long long)time);
printk(" -> test 1 (latency of nnodes insert+delete): %llu cycles\n", (unsigned long long)time);

for (i = 0; i < nnodes; i++)
insert(nodes + i, &root);

time1 = get_cycles();

for (i = 0; i < perf_loops; i++) {
for (node = rb_first(&root); node; node = rb_next(node))
;
}

time2 = get_cycles();
time = time2 - time1;

time = div_u64(time, perf_loops);
printk(" -> test 2 (latency of inorder traversal): %llu cycles\n", (unsigned long long)time);

for (i = 0; i < nnodes; i++)
erase(nodes + i, &root);

/* run checks */
for (i = 0; i < check_loops; i++) {
init();
for (j = 0; j < nnodes; j++) {
Expand Down Expand Up @@ -238,7 +259,7 @@ static int __init rbtree_test_init(void)
time = time2 - time1;

time = div_u64(time, perf_loops);
printk(" -> %llu cycles\n", (unsigned long long)time);
printk(" -> test 1 (latency of nnodes insert+delete): %llu cycles\n", (unsigned long long)time);

for (i = 0; i < check_loops; i++) {
init();
Expand Down

0 comments on commit 977bd8d

Please sign in to comment.