diff options
Diffstat (limited to 'lib/rbtree_test.c')
-rw-r--r-- | lib/rbtree_test.c | 25 |
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(); |