aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/sunrpc
diff options
context:
space:
mode:
authorDave Wysochanski <dwysocha@redhat.com>2019-05-23 16:13:50 -0400
committerTrond Myklebust <trond.myklebust@hammerspace.com>2019-07-06 14:54:51 -0400
commita332518fda4731c07394164b3edcbb6efaf4c4d7 (patch)
treeddb6ffaee7a3327fe10402914093ae8bdd1ca031 /include/linux/sunrpc
parentSUNRPC: Use proper printk specifiers for unsigned long long (diff)
downloadlinux-dev-a332518fda4731c07394164b3edcbb6efaf4c4d7.tar.xz
linux-dev-a332518fda4731c07394164b3edcbb6efaf4c4d7.zip
SUNRPC: Count ops completing with tk_status < 0
We often see various error conditions with NFS4.x that show up with a very high operation count all completing with tk_status < 0 in a short period of time. Add a count to rpc_iostats to record on a per-op basis the ops that complete in this manner, which will enable lower overhead diagnostics. Signed-off-by: Dave Wysochanski <dwysocha@redhat.com> Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Diffstat (limited to 'include/linux/sunrpc')
-rw-r--r--include/linux/sunrpc/metrics.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/include/linux/sunrpc/metrics.h b/include/linux/sunrpc/metrics.h
index 1b3751327575..0ee3f7052846 100644
--- a/include/linux/sunrpc/metrics.h
+++ b/include/linux/sunrpc/metrics.h
@@ -30,7 +30,7 @@
#include <linux/ktime.h>
#include <linux/spinlock.h>
-#define RPC_IOSTATS_VERS "1.0"
+#define RPC_IOSTATS_VERS "1.1"
struct rpc_iostats {
spinlock_t om_lock;
@@ -66,6 +66,11 @@ struct rpc_iostats {
ktime_t om_queue, /* queued for xmit */
om_rtt, /* RPC RTT */
om_execute; /* RPC execution */
+ /*
+ * The count of operations that complete with tk_status < 0.
+ * These statuses usually indicate error conditions.
+ */
+ unsigned long om_error_status;
} ____cacheline_aligned;
struct rpc_task;