diff options
author | Amar Tumballi <amarts@redhat.com> | 2017-09-25 16:44:06 +0530 |
---|---|---|
committer | Jeff Darcy <jeff@pl.atyp.us> | 2017-11-06 14:23:49 +0000 |
commit | 125fc934e7f4c669f67e5eec5b0e3dae3a2b6d72 (patch) | |
tree | 24d1aa5139ad5766c4e9bc9e6add7e55df8fe329 /xlators | |
parent | e86d71b7b4653ddd66db7f3a16074e46ed24848f (diff) |
stack: change gettimeofday() to clock_gettime()
For achieving the above, needed below changes too.
* more sanity into how 'frame->op' is assigned.
* infra to have 'stats' as separate section in 'xlator_t' structure
Updates #137
Change-Id: I36679bf9577f3ed00a695b4e7d92870dcb3db8e1
Signed-off-by: Amar Tumballi <amarts@redhat.com>
Diffstat (limited to 'xlators')
-rw-r--r-- | xlators/debug/io-stats/src/io-stats.c | 22 | ||||
-rw-r--r-- | xlators/meta/src/frames-file.c | 6 |
2 files changed, 14 insertions, 14 deletions
diff --git a/xlators/debug/io-stats/src/io-stats.c b/xlators/debug/io-stats/src/io-stats.c index 9c3ca2d0a69..b660e5ac8cb 100644 --- a/xlators/debug/io-stats/src/io-stats.c +++ b/xlators/debug/io-stats/src/io-stats.c @@ -223,7 +223,7 @@ is_fop_latency_started (call_frame_t *frame) \ conf = this->private; \ if (conf && conf->measure_latency) { \ - gettimeofday (&frame->end, NULL); \ + timespec_now (&frame->end); \ update_ios_latency (conf, frame, GF_FOP_##op); \ } \ } while (0) @@ -234,7 +234,7 @@ is_fop_latency_started (call_frame_t *frame) \ conf = this->private; \ if (conf && conf->measure_latency) { \ - gettimeofday (&frame->begin, NULL); \ + timespec_now (&frame->begin); \ } else { \ memset (&frame->begin, 0, sizeof (frame->begin));\ } \ @@ -262,7 +262,7 @@ is_fop_latency_started (call_frame_t *frame) if (conf && conf->measure_latency && \ conf->count_fop_hits) { \ BUMP_FOP (op); \ - gettimeofday (&frame->end, NULL); \ + timespec_now (&frame->end); \ update_ios_latency (conf, frame, GF_FOP_##op); \ } \ } while (0) @@ -271,15 +271,15 @@ is_fop_latency_started (call_frame_t *frame) do { \ struct ios_conf *conf = NULL; \ double elapsed; \ - struct timeval *begin, *end; \ + struct timespec *begin, *end; \ double throughput; \ int flag = 0; \ \ begin = &frame->begin; \ end = &frame->end; \ \ - elapsed = (end->tv_sec - begin->tv_sec) * 1e6 \ - + (end->tv_usec - begin->tv_usec); \ + elapsed = ((end->tv_sec - begin->tv_sec) * 1e9 \ + + (end->tv_nsec - begin->tv_nsec)) / 1000; \ throughput = op_ret / elapsed; \ \ conf = this->private; \ @@ -1695,7 +1695,7 @@ void collect_ios_latency_sample (struct ios_conf *conf, { ios_sample_buf_t *ios_sample_buf = NULL; ios_sample_t *ios_sample = NULL; - struct timeval *timestamp = NULL; + struct timespec *timestamp = NULL; call_stack_t *root = NULL; @@ -1714,7 +1714,7 @@ void collect_ios_latency_sample (struct ios_conf *conf, ios_sample->uid = root->uid; ios_sample->gid = root->gid; (ios_sample->timestamp).tv_sec = timestamp->tv_sec; - (ios_sample->timestamp).tv_usec = timestamp->tv_usec; + (ios_sample->timestamp).tv_usec = timestamp->tv_nsec / 1000; memcpy (&ios_sample->identifier, &root->identifier, sizeof (root->identifier)); @@ -1759,13 +1759,13 @@ update_ios_latency (struct ios_conf *conf, call_frame_t *frame, glusterfs_fop_t op) { double elapsed; - struct timeval *begin, *end; + struct timespec *begin, *end; begin = &frame->begin; end = &frame->end; - elapsed = (end->tv_sec - begin->tv_sec) * 1e6 - + (end->tv_usec - begin->tv_usec); + elapsed = ((end->tv_sec - begin->tv_sec) * 1e9 + + (end->tv_nsec - begin->tv_nsec)) / 1000; update_ios_latency_stats (&conf->cumulative, elapsed, op); update_ios_latency_stats (&conf->incremental, elapsed, op); diff --git a/xlators/meta/src/frames-file.c b/xlators/meta/src/frames-file.c index ebac3d9cbaa..027fa294fe8 100644 --- a/xlators/meta/src/frames-file.c +++ b/xlators/meta/src/frames-file.c @@ -48,9 +48,9 @@ frames_file_fill (xlator_t *this, inode_t *file, strfd_t *strfd) frame->this->name); if (frame->begin.tv_sec) strprintf (strfd, - "\t\t\t\"Creation_time\": %d.%d,\n", - (int)frame->begin.tv_sec, - (int)frame->begin.tv_usec); + "\t\t\t\"Creation_time\": %d.%09d,\n", + (int)frame->begin.tv_sec, + (int)frame->begin.tv_nsec); strprintf (strfd, " \t\t\t\"Refcount\": %d,\n", frame->ref_count); if (frame->parent) |