summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2012-02-14 16:35:49 -0600
committerDavid Teigland <teigland@redhat.com>2012-02-14 16:35:49 -0600
commit4009edc72efd093cd1ff0f40d815bd7caf9ac9da (patch)
treedbc97d2218793b5610a08effc48674dba79947d3
parente2cca0c70c99a8738b948450bf3a4fab407b28c5 (diff)
dlm_master: time ops
-rw-r--r--dlm/dlm_master.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/dlm/dlm_master.c b/dlm/dlm_master.c
index 2afe190..651d0f5 100644
--- a/dlm/dlm_master.c
+++ b/dlm/dlm_master.c
@@ -54,6 +54,16 @@ do { \
exit(-1); \
} while (0)
+static uint64_t dt_usec(struct timeval *start, struct timeval *stop)
+{
+ uint64_t dt;
+
+ dt = stop->tv_sec - start->tv_sec;
+ dt *= 1000000;
+ dt += stop->tv_usec - start->tv_usec;
+ return dt;
+}
+
static int rand_int(int a, int b)
{
return a + (int) (((float)(b - a + 1)) * random() / (RAND_MAX+1.0));
@@ -108,6 +118,7 @@ static void do_master(int acquire_mode, char *suffix)
static void ping_masters(int acquire_mode, int convert_mode, char *suffix,
uint32_t *lkids)
{
+ struct timeval start, end;
struct dlm_lksb lksb;
char name[DLM_RESNAME_MAXLEN];
int rv, i;
@@ -144,14 +155,19 @@ static void ping_masters(int acquire_mode, int convert_mode, char *suffix,
mode_str(convert_mode));
fflush(stdout);
+ gettimeofday(&start, NULL);
+
rv = dlm_ls_lock_wait(dh, convert_mode, &lksb,
LKF_NOQUEUE | LKF_CONVERT,
name, strlen(name),
0, NULL, NULL, NULL);
+ gettimeofday(&end, NULL);
+
if (rv < 0)
printf(" error %d\n", rv);
else
- printf(" .\n");
+ printf(" . %llu us\n",
+ (unsigned long long)dt_usec(&start, &end));
continue;
}
}