X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Ftdb2%2Ftools%2Fspeed.c;h=ccb5ae349d894f43d57ce0349b280d6539713e7d;hb=22d0e0dc59fc9d7e0046fec6971ef478c2d604fd;hp=86c36ed809aee3c43f54a2a803b328bf5c79772c;hpb=8cca0397ef6f6017b13ce9ab4999bf3d92a2dee5;p=ccan diff --git a/ccan/tdb2/tools/speed.c b/ccan/tdb2/tools/speed.c index 86c36ed8..ccb5ae34 100644 --- a/ccan/tdb2/tools/speed.c +++ b/ccan/tdb2/tools/speed.c @@ -10,7 +10,7 @@ #include #include #include -#include +#include "tdb2.h" /* Nanoseconds per operation */ static size_t normalize(const struct timeval *start, @@ -70,13 +70,15 @@ static void dump_and_clear_stats(struct tdb_context **tdb, (unsigned long long)stats.stats.alloc_leftover); printf(" alloc_coalesce_tried = %llu\n", (unsigned long long)stats.stats.alloc_coalesce_tried); + printf(" alloc_coalesce_iterate_clash = %llu\n", + (unsigned long long)stats.stats.alloc_coalesce_iterate_clash); printf(" alloc_coalesce_lockfail = %llu\n", (unsigned long long)stats.stats.alloc_coalesce_lockfail); printf(" alloc_coalesce_race = %llu\n", (unsigned long long)stats.stats.alloc_coalesce_race); printf(" alloc_coalesce_succeeded = %llu\n", (unsigned long long)stats.stats.alloc_coalesce_succeeded); - printf(" alloc_coalesce_num_merged = %llu\n", + printf(" alloc_coalesce_num_merged = %llu\n", (unsigned long long)stats.stats.alloc_coalesce_num_merged); printf("compares = %llu\n", (unsigned long long)stats.stats.compares); @@ -90,27 +92,48 @@ static void dump_and_clear_stats(struct tdb_context **tdb, (unsigned long long)stats.stats.compare_wrong_rechash); printf(" compare_wrong_keycmp = %llu\n", (unsigned long long)stats.stats.compare_wrong_keycmp); + printf("transactions = %llu\n", + (unsigned long long)stats.stats.transactions); + printf(" transaction_cancel = %llu\n", + (unsigned long long)stats.stats.transaction_cancel); + printf(" transaction_nest = %llu\n", + (unsigned long long)stats.stats.transaction_nest); + printf(" transaction_expand_file = %llu\n", + (unsigned long long)stats.stats.transaction_expand_file); + printf(" transaction_read_direct = %llu\n", + (unsigned long long)stats.stats.transaction_read_direct); + printf(" transaction_read_direct_fail = %llu\n", + (unsigned long long)stats.stats.transaction_read_direct_fail); + printf(" transaction_write_direct = %llu\n", + (unsigned long long)stats.stats.transaction_write_direct); + printf(" transaction_write_direct_fail = %llu\n", + (unsigned long long)stats.stats.transaction_write_direct_fail); printf("expands = %llu\n", (unsigned long long)stats.stats.expands); printf("frees = %llu\n", (unsigned long long)stats.stats.frees); printf("locks = %llu\n", (unsigned long long)stats.stats.locks); - printf(" lock_lowlevel = %llu\n", + printf(" lock_lowlevel = %llu\n", (unsigned long long)stats.stats.lock_lowlevel); - printf(" lock_nonblock = %llu\n", + printf(" lock_nonblock = %llu\n", (unsigned long long)stats.stats.lock_nonblock); + printf(" lock_nonblock_fail = %llu\n", + (unsigned long long)stats.stats.lock_nonblock_fail); /* Now clear. */ tdb_close(*tdb); *tdb = tdb_open("/tmp/speed.tdb", flags, O_RDWR, 0, attr); } -static void tdb_log(struct tdb_context *tdb, enum tdb_log_level level, - const char *message, void *data) +static void tdb_log(struct tdb_context *tdb, + enum tdb_log_level level, + enum TDB_ERROR ecode, + const char *message, + void *data) { - fputs(message, stderr); - putc('\n', stderr); + fprintf(stderr, "tdb:%s:%s:%s\n", + tdb_name(tdb), tdb_errorstr(ecode), message); } int main(int argc, char *argv[])