diff options
Diffstat (limited to 'source4/torture/nbench/nbio.c')
-rw-r--r-- | source4/torture/nbench/nbio.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/source4/torture/nbench/nbio.c b/source4/torture/nbench/nbio.c index b2058249bd..fee3af05e4 100644 --- a/source4/torture/nbench/nbio.c +++ b/source4/torture/nbench/nbio.c @@ -28,6 +28,7 @@ extern int nbench_line_count; static int nbio_id; static int nprocs; static BOOL bypass_io; +static int warmup; static struct { int fd; @@ -50,6 +51,13 @@ double nbio_total(void) return total; } +void nb_warmup_done(void) +{ + children[nbio_id].bytes_out = 0; + children[nbio_id].bytes_in = 0; +} + + void nb_alarm(void) { int i; @@ -65,10 +73,15 @@ void nb_alarm(void) t = end_timer(); - printf("%4d %8d %.2f MB/sec t=%.0f \r", + printf("%4d %8d %.2f MB/sec time %.0f sec \r", num_clients, lines/nprocs, 1.0e-6 * nbio_total() / t, - t); + t - warmup); + + if (warmup && t >= warmup) { + start_timer(); + warmup = 0; + } signal(SIGALRM, nb_alarm); alarm(1); @@ -101,8 +114,9 @@ static int find_handle(int handle) static struct cli_state *c; -void nb_setup(struct cli_state *cli, int id) +void nb_setup(struct cli_state *cli, int id, int warmupt) { + warmup = warmupt; nbio_id = id; c = cli; start_timer(); @@ -245,7 +259,6 @@ void nb_writex(int handle, int offset, int size, int ret_size, NTSTATUS status) children[nbio_id].bytes_out += ret_size; } - void nb_write(int handle, int offset, int size, int ret_size, NTSTATUS status) { union smb_write io; |