summaryrefslogtreecommitdiffstats
path: root/net/sunrpc/xprtrdma
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2018-10-01 14:25:36 -0400
committerAnna Schumaker <Anna.Schumaker@Netapp.com>2018-10-02 16:08:12 -0400
commit3968a8a5310404c2f0b9e4d9f28cab13a12bc4fd (patch)
tree58962b248638724060e33544ecaa43c853a65ceb /net/sunrpc/xprtrdma
parentd379eaa838f1813ca906b946ad3cbb77781d2be7 (diff)
downloadlinux-3968a8a5310404c2f0b9e4d9f28cab13a12bc4fd.tar.gz
linux-3968a8a5310404c2f0b9e4d9f28cab13a12bc4fd.tar.bz2
linux-3968a8a5310404c2f0b9e4d9f28cab13a12bc4fd.zip
sunrpc: Fix connect metrics
For TCP, the logic in xprt_connect_status is currently never invoked to record a successful connection. Commit 2a4919919a97 ("SUNRPC: Return EAGAIN instead of ENOTCONN when waking up xprt->pending") changed the way TCP xprt's are awoken after a connect succeeds. Instead, change connection-oriented transports to bump connect_count and compute connect_time the moment that XPRT_CONNECTED is set. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'net/sunrpc/xprtrdma')
-rw-r--r--net/sunrpc/xprtrdma/transport.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/net/sunrpc/xprtrdma/transport.c b/net/sunrpc/xprtrdma/transport.c
index 3ae73e6a5c93..087acfce142a 100644
--- a/net/sunrpc/xprtrdma/transport.c
+++ b/net/sunrpc/xprtrdma/transport.c
@@ -242,8 +242,12 @@ rpcrdma_connect_worker(struct work_struct *work)
spin_lock_bh(&xprt->transport_lock);
if (ep->rep_connected > 0) {
- if (!xprt_test_and_set_connected(xprt))
+ if (!xprt_test_and_set_connected(xprt)) {
+ xprt->stat.connect_count++;
+ xprt->stat.connect_time += (long)jiffies -
+ xprt->stat.connect_start;
xprt_wake_pending_tasks(xprt, 0);
+ }
} else {
if (xprt_test_and_clear_connected(xprt))
xprt_wake_pending_tasks(xprt, -ENOTCONN);