summaryrefslogtreecommitdiff
path: root/source4/torture/nbench
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2004-11-03 10:09:48 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:05:23 -0500
commitdde07058075d357cfdc63624c8dcaa67ebd40add (patch)
treec3f29090e37f1bc103a3d6051e708d1ebbe305a5 /source4/torture/nbench
parent90a8c4acc7e673e6439197776d19cc4b095ac322 (diff)
downloadsamba-dde07058075d357cfdc63624c8dcaa67ebd40add.tar.gz
samba-dde07058075d357cfdc63624c8dcaa67ebd40add.tar.bz2
samba-dde07058075d357cfdc63624c8dcaa67ebd40add.zip
r3507: - added deferred replies on sharing violation in pvfs open. The
deferred reply is short-circuited immediately when the file is closed by another user, allowing it to be opened by the waiting user. - added a sane set of timeval manipulation routines - converted all the events code and code that uses it to use struct timeval instead of time_t, which allows for microsecond resolution instead of 1 second resolution. This was needed for doing the pvfs deferred open code, and is why the patch is so big. (This used to be commit 0d51511d408d91eb5f68a35e980e0875299b1831)
Diffstat (limited to 'source4/torture/nbench')
-rw-r--r--source4/torture/nbench/nbench.c11
-rw-r--r--source4/torture/nbench/nbio.c7
2 files changed, 11 insertions, 7 deletions
diff --git a/source4/torture/nbench/nbench.c b/source4/torture/nbench/nbench.c
index 0b4bf4bbf1..1c90658f49 100644
--- a/source4/torture/nbench/nbench.c
+++ b/source4/torture/nbench/nbench.c
@@ -37,6 +37,9 @@ static BOOL run_netbench(struct smbcli_state *cli, int client)
fstring params[20];
const char *p;
BOOL correct = True;
+ struct timeval tv;
+
+ tv = timeval_current();
nb_setup(cli, client, warmup);
@@ -52,15 +55,15 @@ static BOOL run_netbench(struct smbcli_state *cli, int client)
again:
while (fgets(line, sizeof(line)-1, f)) {
NTSTATUS status;
- double t = end_timer();
- if (warmup && t >= warmup) {
+ if (warmup &&
+ timeval_elapsed(&tv) >= warmup) {
warmup = 0;
nb_warmup_done();
- start_timer();
+ tv = timeval_current();
}
- if (end_timer() >= timelimit) {
+ if (timeval_elapsed(&tv) >= timelimit) {
goto done;
}
diff --git a/source4/torture/nbench/nbio.c b/source4/torture/nbench/nbio.c
index 98b1c08c97..98967f2523 100644
--- a/source4/torture/nbench/nbio.c
+++ b/source4/torture/nbench/nbio.c
@@ -31,6 +31,7 @@ static int nbio_id;
static int nprocs;
static BOOL bypass_io;
static int warmup;
+static struct timeval tv;
struct ftable {
struct ftable *next, *prev;
@@ -76,7 +77,7 @@ void nb_alarm(int sig)
if (!children[i].done) num_clients++;
}
- t = end_timer();
+ t = timeval_elapsed(&tv);
if (warmup) {
printf("%4d %8d %.2f MB/sec warmup %.0f sec \n",
@@ -91,7 +92,7 @@ void nb_alarm(int sig)
}
if (warmup && t >= warmup) {
- start_timer();
+ tv = timeval_current();
warmup = 0;
}
@@ -156,7 +157,7 @@ void nb_setup(struct smbcli_state *cli, int id, int warmupt)
warmup = warmupt;
nbio_id = id;
c = cli;
- start_timer();
+ tv = timeval_current();
if (children) {
children[nbio_id].done = 0;
}