|
@@ -208,6 +208,21 @@ static void _print_name(struct seq_file *seq, unsigned int op,
|
|
|
seq_printf(seq, "\t%12u: ", op);
|
|
|
}
|
|
|
|
|
|
+static void _print_rpc_iostats(struct seq_file *seq, struct rpc_iostats *stats,
|
|
|
+ int op, const struct rpc_procinfo *procs)
|
|
|
+{
|
|
|
+ _print_name(seq, op, procs);
|
|
|
+ seq_printf(seq, "%lu %lu %lu %Lu %Lu %Lu %Lu %Lu\n",
|
|
|
+ stats->om_ops,
|
|
|
+ stats->om_ntrans,
|
|
|
+ stats->om_timeouts,
|
|
|
+ stats->om_bytes_sent,
|
|
|
+ stats->om_bytes_recv,
|
|
|
+ ktime_to_ms(stats->om_queue),
|
|
|
+ ktime_to_ms(stats->om_rtt),
|
|
|
+ ktime_to_ms(stats->om_execute));
|
|
|
+}
|
|
|
+
|
|
|
void rpc_print_iostats(struct seq_file *seq, struct rpc_clnt *clnt)
|
|
|
{
|
|
|
struct rpc_iostats *stats = clnt->cl_metrics;
|
|
@@ -229,17 +244,7 @@ void rpc_print_iostats(struct seq_file *seq, struct rpc_clnt *clnt)
|
|
|
|
|
|
seq_printf(seq, "\tper-op statistics\n");
|
|
|
for (op = 0; op < maxproc; op++) {
|
|
|
- struct rpc_iostats *metrics = &stats[op];
|
|
|
- _print_name(seq, op, clnt->cl_procinfo);
|
|
|
- seq_printf(seq, "%lu %lu %lu %Lu %Lu %Lu %Lu %Lu\n",
|
|
|
- metrics->om_ops,
|
|
|
- metrics->om_ntrans,
|
|
|
- metrics->om_timeouts,
|
|
|
- metrics->om_bytes_sent,
|
|
|
- metrics->om_bytes_recv,
|
|
|
- ktime_to_ms(metrics->om_queue),
|
|
|
- ktime_to_ms(metrics->om_rtt),
|
|
|
- ktime_to_ms(metrics->om_execute));
|
|
|
+ _print_rpc_iostats(seq, &stats[op], op, clnt->cl_procinfo);
|
|
|
}
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(rpc_print_iostats);
|