From: Dan van der Ster Date: Fri, 14 Dec 2012 10:08:44 +0000 (+0100) Subject: rxperf: print achieved transfer rate X-Git-Tag: upstream/1.6.3^2~65 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=b230e176d8e66090afb9225bf4d68c26006b5f5f;p=packages%2Fo%2Fopenafs.git rxperf: print achieved transfer rate Prints the client transfer rate in appropriate units (kbit/s, Mbit/s, or Gbit/s). Reviewed-on: http://gerrit.openafs.org/8758 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear (cherry picked from commit 07d83cd473146a0db9c2ed521b6fa6ba607b0d40) Change-Id: Ia17b315e79313407e5479cd3710ac454d56ee7dd Reviewed-on: http://gerrit.openafs.org/9682 Tested-by: BuildBot Reviewed-by: Dan van der Ster Reviewed-by: Simon Wilkinson Reviewed-by: Jeffrey Altman Reviewed-by: Stephan Wiesand --- diff --git a/src/rx/test/rxperf.c b/src/rx/test/rxperf.c index ffbf0c167..4983905f5 100644 --- a/src/rx/test/rxperf.c +++ b/src/rx/test/rxperf.c @@ -217,16 +217,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); } /* @@ -892,7 +901,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) {