From: Dan van der Ster Date: Fri, 14 Dec 2012 10:08:44 +0000 (+0100) Subject: rxperf: print achieved transfer rate X-Git-Tag: openafs-stable-1_8_0pre1~1659 X-Git-Url: https://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=07d83cd473146a0db9c2ed521b6fa6ba607b0d40 rxperf: print achieved transfer rate Prints the client transfer rate in appropriate units (kbit/s, Mbit/s, or Gbit/s). Change-Id: I5632185953c5d2bfc962af71152734d842cfb021 Reviewed-on: http://gerrit.openafs.org/8758 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear --- diff --git a/src/tools/rxperf/rxperf.c b/src/tools/rxperf/rxperf.c index b20f91f..c127ecd 100644 --- a/src/tools/rxperf/rxperf.c +++ b/src/tools/rxperf/rxperf.c @@ -118,16 +118,25 @@ start_timer(void) */ static void -end_and_print_timer(char *str) +end_and_print_timer(char *str, long long bytes) { long long start_l, stop_l; + double kbps; timer_check--; assert(timer_check == 0); gettimeofday(&timer_stop, NULL); start_l = timer_start.tv_sec * 1000000 + timer_start.tv_usec; stop_l = timer_stop.tv_sec * 1000000 + timer_stop.tv_usec; - printf("%s:\t%8llu msec\n", str, (stop_l - start_l) / 1000); + printf("%s:\t%8llu msec", str, (stop_l - start_l) / 1000); + + kbps = bytes * 8000.0 / (stop_l - start_l); + if (kbps > 1000000.0) + printf("\t[%.4g Gbit/s]\n", kbps/1000000.0); + else if (kbps > 1000.0) + printf("\t[%.4g Mbit/s]\n", kbps/1000.0); + else + printf("\t[%.4g kbit/s]\n", kbps); } /* @@ -792,7 +801,17 @@ do_client(const char *server, short port, char *filename, afs_int32 command, pthread_join(thread[i], &status); #endif - end_and_print_timer(stamp); + switch (command) { + case RX_PERF_RPC: + end_and_print_timer(stamp, (long long)threads*times*(sendbytes+readbytes)); + break; + case RX_PERF_RECV: + case RX_PERF_SEND: + case RX_PERF_FILE: + end_and_print_timer(stamp, (long long)threads*times*bytes); + break; + } + DBFPRINT(("done for good\n")); if (dumpstats) {