diff options
author | Andrew Tridgell <tridge@samba.org> | 2007-01-10 11:16:11 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:37:24 -0500 |
commit | f6274959ba381b6b5d025cb0cee78665107a72a6 (patch) | |
tree | 750d88afc3f88f833162dc7d9ae93d844b61a4e4 /source4/torture/nbench/nbio.c | |
parent | 1cd4339b9a2786aa26691ca4f02fa93ab0958b88 (diff) | |
download | samba-f6274959ba381b6b5d025cb0cee78665107a72a6.tar.gz |
r20647: add cluster code
(This used to be commit 5870830b99a8d76bda1ff5af3fcf8dda9aba50ec)
Diffstat (limited to 'source4/torture/nbench/nbio.c')
-rw-r--r-- | source4/torture/nbench/nbio.c | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/source4/torture/nbench/nbio.c b/source4/torture/nbench/nbio.c index cd680851690..6335d53c928 100644 --- a/source4/torture/nbench/nbio.c +++ b/source4/torture/nbench/nbio.c @@ -53,8 +53,25 @@ static struct { double bytes, warmup_bytes; int line; int done; + double max_latency; + struct timeval starttime; } *children; +void nbio_time_reset(void) +{ + children[nbio_id].starttime = timeval_current(); +} + +void nbio_time_delay(double targett) +{ + double elapsed = timeval_elapsed(&children[nbio_id].starttime); + if (targett > elapsed) { + msleep(1000*(targett - elapsed)); + } else if (elapsed - targett > children[nbio_id].max_latency) { + children[nbio_id].max_latency = elapsed - targett; + } +} + double nbio_result(void) { int i; @@ -65,6 +82,19 @@ double nbio_result(void) return 1.0e-6 * total / timeval_elapsed2(&tv_start, &tv_end); } +double nbio_latency(void) +{ + int i; + double max_latency = 0; + for (i=0;i<nprocs;i++) { + if (children[i].max_latency > max_latency) { + max_latency = children[i].max_latency; + children[i].max_latency = 0; + } + } + return max_latency; +} + BOOL nb_tick(void) { return children[nbio_id].done; @@ -122,9 +152,9 @@ void nb_alarm(int sig) nprocs, lines/nprocs, nbio_result(), t); } else { - printf("%4d %8d %.2f MB/sec execute %.0f sec \n", + printf("%4d %8d %.2f MB/sec execute %.0f sec latency %.2f msec \n", nprocs, lines/nprocs, - nbio_result(), t); + nbio_result(), t, nbio_latency() * 1.0e3); } fflush(stdout); @@ -443,7 +473,7 @@ void nb_readx(int handle, off_t offset, int size, int ret_size, NTSTATUS status) io.readx.in.remaining = 0; io.readx.in.read_for_execute = False; io.readx.out.data = buf; - + ret = smb_raw_read(c->tree, &io); free(buf); |