summaryrefslogtreecommitdiffstats
path: root/lib/rbtree_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rbtree_test.c')
-rw-r--r--lib/rbtree_test.c25
1 files changed, 23 insertions, 2 deletions
diff --git a/lib/rbtree_test.c b/lib/rbtree_test.c
index e83331aa1b7f..967999ff46db 100644
--- a/lib/rbtree_test.c
+++ b/lib/rbtree_test.c
@@ -183,6 +183,7 @@ static int __init rbtree_test_init(void)
183{ 183{
184 int i, j; 184 int i, j;
185 cycles_t time1, time2, time; 185 cycles_t time1, time2, time;
186 struct rb_node *node;
186 187
187 nodes = kmalloc(nnodes * sizeof(*nodes), GFP_KERNEL); 188 nodes = kmalloc(nnodes * sizeof(*nodes), GFP_KERNEL);
188 if (!nodes) 189 if (!nodes)
@@ -206,8 +207,28 @@ static int __init rbtree_test_init(void)
206 time = time2 - time1; 207 time = time2 - time1;
207 208
208 time = div_u64(time, perf_loops); 209 time = div_u64(time, perf_loops);
209 printk(" -> %llu cycles\n", (unsigned long long)time); 210 printk(" -> test 1 (latency of nnodes insert+delete): %llu cycles\n", (unsigned long long)time);
210 211
212 for (i = 0; i < nnodes; i++)
213 insert(nodes + i, &root);
214
215 time1 = get_cycles();
216
217 for (i = 0; i < perf_loops; i++) {
218 for (node = rb_first(&root); node; node = rb_next(node))
219 ;
220 }
221
222 time2 = get_cycles();
223 time = time2 - time1;
224
225 time = div_u64(time, perf_loops);
226 printk(" -> test 2 (latency of inorder traversal): %llu cycles\n", (unsigned long long)time);
227
228 for (i = 0; i < nnodes; i++)
229 erase(nodes + i, &root);
230
231 /* run checks */
211 for (i = 0; i < check_loops; i++) { 232 for (i = 0; i < check_loops; i++) {
212 init(); 233 init();
213 for (j = 0; j < nnodes; j++) { 234 for (j = 0; j < nnodes; j++) {
@@ -238,7 +259,7 @@ static int __init rbtree_test_init(void)
238 time = time2 - time1; 259 time = time2 - time1;
239 260
240 time = div_u64(time, perf_loops); 261 time = div_u64(time, perf_loops);
241 printk(" -> %llu cycles\n", (unsigned long long)time); 262 printk(" -> test 1 (latency of nnodes insert+delete): %llu cycles\n", (unsigned long long)time);
242 263
243 for (i = 0; i < check_loops; i++) { 264 for (i = 0; i < check_loops; i++) {
244 init(); 265 init();