|
@@ -144,7 +144,7 @@ void rpc_count_iostats(struct rpc_task *task)
|
|
|
struct rpc_rqst *req = task->tk_rqstp;
|
|
|
struct rpc_iostats *stats;
|
|
|
struct rpc_iostats *op_metrics;
|
|
|
- long rtt, execute, queue;
|
|
|
+ ktime_t delta;
|
|
|
|
|
|
if (!task->tk_client || !task->tk_client->cl_metrics || !req)
|
|
|
return;
|
|
@@ -159,20 +159,13 @@ void rpc_count_iostats(struct rpc_task *task)
|
|
|
op_metrics->om_bytes_sent += task->tk_bytes_sent;
|
|
|
op_metrics->om_bytes_recv += req->rq_reply_bytes_recvd;
|
|
|
|
|
|
- queue = (long)req->rq_xtime - task->tk_start;
|
|
|
- if (queue < 0)
|
|
|
- queue = -queue;
|
|
|
- op_metrics->om_queue += queue;
|
|
|
+ delta = ktime_sub(req->rq_xtime, task->tk_start);
|
|
|
+ op_metrics->om_queue = ktime_add(op_metrics->om_queue, delta);
|
|
|
|
|
|
- rtt = task->tk_rtt;
|
|
|
- if (rtt < 0)
|
|
|
- rtt = -rtt;
|
|
|
- op_metrics->om_rtt += rtt;
|
|
|
+ op_metrics->om_rtt = ktime_add(op_metrics->om_rtt, task->tk_rtt);
|
|
|
|
|
|
- execute = (long)jiffies - task->tk_start;
|
|
|
- if (execute < 0)
|
|
|
- execute = -execute;
|
|
|
- op_metrics->om_execute += execute;
|
|
|
+ delta = ktime_sub(ktime_get(), task->tk_start);
|
|
|
+ op_metrics->om_execute = ktime_add(op_metrics->om_execute, delta);
|
|
|
}
|
|
|
|
|
|
static void _print_name(struct seq_file *seq, unsigned int op,
|
|
@@ -186,8 +179,6 @@ static void _print_name(struct seq_file *seq, unsigned int op,
|
|
|
seq_printf(seq, "\t%12u: ", op);
|
|
|
}
|
|
|
|
|
|
-#define MILLISECS_PER_JIFFY (1000 / HZ)
|
|
|
-
|
|
|
void rpc_print_iostats(struct seq_file *seq, struct rpc_clnt *clnt)
|
|
|
{
|
|
|
struct rpc_iostats *stats = clnt->cl_metrics;
|
|
@@ -214,9 +205,9 @@ void rpc_print_iostats(struct seq_file *seq, struct rpc_clnt *clnt)
|
|
|
metrics->om_timeouts,
|
|
|
metrics->om_bytes_sent,
|
|
|
metrics->om_bytes_recv,
|
|
|
- metrics->om_queue * MILLISECS_PER_JIFFY,
|
|
|
- metrics->om_rtt * MILLISECS_PER_JIFFY,
|
|
|
- metrics->om_execute * MILLISECS_PER_JIFFY);
|
|
|
+ ktime_to_ms(metrics->om_queue),
|
|
|
+ ktime_to_ms(metrics->om_rtt),
|
|
|
+ ktime_to_ms(metrics->om_execute));
|
|
|
}
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(rpc_print_iostats);
|