X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Fit_test.c;h=7b6906a55712b374f9ac94884e55a4d16aedb3a4;hb=fbdd08b958f974dd4d40a518ea3db8279428f013;hp=76515d5cdc05b1d8dde0b32677d72e803a85219e;hpb=70e80ade90af09300396706b8910e196a7928520;p=fs%2Flustre-release.git diff --git a/lustre/tests/it_test.c b/lustre/tests/it_test.c index 76515d5..7b6906a 100644 --- a/lustre/tests/it_test.c +++ b/lustre/tests/it_test.c @@ -1,6 +1,4 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: - * +/* * GPL HEADER START * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -16,8 +14,8 @@ * in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU General Public License - * version 2 along with this program; If not, see [sun.com URL with a - * copy of GPLv2]. + * version 2 along with this program; If not, see + * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or @@ -26,7 +24,7 @@ * GPL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. */ /* @@ -63,7 +61,7 @@ static struct it_node { struct interval_node node; - struct list_head list; + cfs_list_t list; int hit, valid; } *it_array; static int it_count; @@ -84,13 +82,11 @@ static enum interval_iter cb(struct interval_node *n, void *args) static int count = 1; if (node->hit == 1) { - dprintf("NODE "__S" has ever been accessed\n", - __F(&n->in_extent)); + error("A duplicate node "__S" access found\n", + __F(&n->in_extent)); return INTERVAL_ITER_CONT; - error("duplicate node accessing found\n"); - return INTERVAL_ITER_STOP; } - + if (node->valid == 0) { error("A deleted node "__S" being accessed\n", __F(&n->in_extent)); @@ -128,23 +124,23 @@ static int it_test_search(struct interval_node *root) interval_search(root, &ext, cb, NULL); dprintf("\nverifing ..."); - + /* verify */ for (i = 0; i < it_count; i++) { n = &it_array[i]; if (n->valid == 0) continue; - if (extent_overlapped(&ext, &n->node.in_extent) && + if (extent_overlapped(&ext, &n->node.in_extent) && n->hit == 0) error("node "__S" overlaps" __S"," - "but never to be hit.\n", + "but never to be hit.\n", __F(&n->node.in_extent), __F(&ext)); - if (!extent_overlapped(&ext, &n->node.in_extent) && + if (!extent_overlapped(&ext, &n->node.in_extent) && n->hit) - error("node "__S" overlaps" __S", but hit.\n", + error("node "__S" overlaps" __S", but hit.\n", __F(&n->node.in_extent), __F(&ext)); } @@ -245,8 +241,9 @@ static enum interval_iter sanity_cb(struct interval_node *node, void *args) } if (!has) { - int count = 1; + int count; err: + count = 1; dprintf("node"__S":%llu Child list:\n", node->in_extent.start, node->in_extent.end, @@ -284,7 +281,7 @@ err: } if (nr) error("wrong tree, unbalanced!\n"); - + return 0; } @@ -340,7 +337,7 @@ static int it_test_search_hole(struct interval_node *root) return 0; } -static int contended_count = 0; +static int contended_count = 0; #define LOOP_COUNT 1000 static enum interval_iter perf_cb(struct interval_node *n, void *args) { @@ -355,7 +352,7 @@ static inline long tv_delta(struct timeval *s, struct timeval *e) long c = e->tv_sec - s->tv_sec; c *= 1000; c += (long int)(e->tv_usec - s->tv_usec) / 1000; - dprintf("\tStart: %lu:%lu -> End: %lu:%lu\n", + dprintf("\tStart: %lu:%lu -> End: %lu:%lu\n", s->tv_sec, s->tv_usec, e->tv_sec, e->tv_usec); return c; } @@ -367,7 +364,7 @@ static int it_test_performance(struct interval_node *root, unsigned long len) struct it_node *n; struct timeval start, end; unsigned long count; - + ext.start = (random() % (max_count - len)) & ALIGN_MASK; ext.end = (ext.start + len) & ALIGN_MASK; if (have_wide_lock) { @@ -380,7 +377,7 @@ static int it_test_performance(struct interval_node *root, unsigned long len) /* list */ contended_count = 0; gettimeofday(&start, NULL); - list_for_each_entry(n, &header, list) { + cfs_list_for_each_entry(n, &header, list) { if (extent_overlapped(&ext, &n->node.in_extent)) { count = LOOP_COUNT; while (count--); @@ -421,11 +418,11 @@ static struct interval_node *it_test_helper(struct interval_node *root) if (n->valid) { if (!interval_find(root, &n->node.in_extent)) error("Cannot find an existent node\n"); - dprintf("Erasing a node "__S"\n", + dprintf("Erasing a node "__S"\n", __F(&n->node.in_extent)); interval_erase(&n->node, &root); n->valid = 0; - list_del_init(&n->list); + cfs_list_del_init(&n->list); } else { __u64 low, high; low = (random() % max_count) & ALIGN_MASK; @@ -435,10 +432,10 @@ static struct interval_node *it_test_helper(struct interval_node *root) interval_set(&n->node, low, high); while (interval_insert(&n->node, &root)) interval_set(&n->node, low, ++high); - dprintf("Adding a node "__S"\n", + dprintf("Adding a node "__S"\n", __F(&n->node.in_extent)); n->valid = 1; - list_add(&n->list, &header); + cfs_list_add(&n->list, &header); } } @@ -475,9 +472,9 @@ static struct interval_node *it_test_init(int count) n->hit = 0; n->valid = 1; if (i == 0) - list_add_tail(&n->list, &header); + cfs_list_add_tail(&n->list, &header); else - list_add_tail(&n->list, &it_array[rand()%i].list); + cfs_list_add_tail(&n->list, &it_array[rand()%i].list); } return root;