Whamcloud - gitweb
LU-7733 ptlrpc: print times in microseconds 35/18335/5
authorBob Glossman <bob.glossman@intel.com>
Fri, 5 Feb 2016 20:47:48 +0000 (12:47 -0800)
committerOleg Drokin <oleg.drokin@intel.com>
Mon, 16 May 2016 16:47:49 +0000 (16:47 +0000)
report times and time diffs in seconds.microseconds instead of seconds

Signed-off-by: Bob Glosman <bob.glossman@intel.com>
Change-Id: I272626012a7162072fb3ad73912a56403afb6b39
Reviewed-on: http://review.whamcloud.com/18335
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Minh Diep <minh.diep@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/ptlrpc/lproc_ptlrpc.c

index adbd7e2..82fe468 100644 (file)
@@ -964,23 +964,34 @@ static int ptlrpc_lprocfs_svc_req_history_show(struct seq_file *s, void *iter)
        rc = ptlrpc_lprocfs_svc_req_history_seek(svcpt, srhi, srhi->srhi_seq);
 
        if (rc == 0) {
+               struct timespec arrival, sent, arrivaldiff;
                char nidstr[LNET_NIDSTR_SIZE];
 
                req = srhi->srhi_req;
 
                libcfs_nid2str_r(req->rq_self, nidstr, sizeof(nidstr));
+               arrival.tv_sec = req->rq_arrival_time.tv_sec;
+               arrival.tv_nsec =
+                       req->rq_arrival_time.tv_usec * NSEC_PER_USEC;
+               sent.tv_sec = req->rq_sent;
+               sent.tv_nsec = 0;
+               arrivaldiff = timespec_sub(sent, arrival);
+
                /* Print common req fields.
                 * CAVEAT EMPTOR: we're racing with the service handler
                 * here.  The request could contain any old crap, so you
                 * must be just as careful as the service's request
                 * parser. Currently I only print stuff here I know is OK
                 * to look at coz it was set up in request_in_callback()!!! */
-               seq_printf(s, LPD64":%s:%s:x"LPU64":%d:%s:%ld:%lds(%+lds) ",
+               seq_printf(s, LPD64":%s:%s:x"LPU64":%d:%s:"
+                          "%ld.%06ld:%ld.%06lds(%+ld.0s) ",
                           req->rq_history_seq, nidstr,
                           libcfs_id2str(req->rq_peer), req->rq_xid,
                           req->rq_reqlen, ptlrpc_rqphase2str(req),
                           req->rq_arrival_time.tv_sec,
-                          req->rq_sent - req->rq_arrival_time.tv_sec,
+                          req->rq_arrival_time.tv_usec,
+                          arrivaldiff.tv_sec,
+                          arrivaldiff.tv_nsec / NSEC_PER_USEC,
                           req->rq_sent - req->rq_deadline);
                if (svc->srv_ops.so_req_printer == NULL)
                        seq_printf(s, "\n");