OSDN Git Service

net/rds: Log vendor error if send/recv Work requests fail
authorSudhakar Dindukurti <sudhakar.dindukurti@oracle.com>
Tue, 1 Oct 2019 23:33:14 +0000 (16:33 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 2 Oct 2019 23:25:49 +0000 (16:25 -0700)
Log vendor error if work requests fail. Vendor error provides
more information that is used for debugging the issue.

Signed-off-by: Sudhakar Dindukurti <sudhakar.dindukurti@oracle.com>
Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/rds/ib_recv.c
net/rds/ib_send.c

index a0f99bb..fb29c23 100644 (file)
@@ -993,10 +993,11 @@ void rds_ib_recv_cqe_handler(struct rds_ib_connection *ic,
        } else {
                /* We expect errors as the qp is drained during shutdown */
                if (rds_conn_up(conn) || rds_conn_connecting(conn))
-                       rds_ib_conn_error(conn, "recv completion on <%pI6c,%pI6c, %d> had status %u (%s), disconnecting and reconnecting\n",
+                       rds_ib_conn_error(conn, "recv completion on <%pI6c,%pI6c, %d> had status %u (%s), vendor err 0x%x, disconnecting and reconnecting\n",
                                          &conn->c_laddr, &conn->c_faddr,
                                          conn->c_tos, wc->status,
-                                         ib_wc_status_msg(wc->status));
+                                         ib_wc_status_msg(wc->status),
+                                         wc->vendor_err);
        }
 
        /* rds_ib_process_recv() doesn't always consume the frag, and
index dfe6237..102c5c5 100644 (file)
@@ -300,10 +300,10 @@ void rds_ib_send_cqe_handler(struct rds_ib_connection *ic, struct ib_wc *wc)
 
        /* We expect errors as the qp is drained during shutdown */
        if (wc->status != IB_WC_SUCCESS && rds_conn_up(conn)) {
-               rds_ib_conn_error(conn, "send completion on <%pI6c,%pI6c,%d> had status %u (%s), disconnecting and reconnecting\n",
+               rds_ib_conn_error(conn, "send completion on <%pI6c,%pI6c,%d> had status %u (%s), vendor err 0x%x, disconnecting and reconnecting\n",
                                  &conn->c_laddr, &conn->c_faddr,
                                  conn->c_tos, wc->status,
-                                 ib_wc_status_msg(wc->status));
+                                 ib_wc_status_msg(wc->status), wc->vendor_err);
        }
 }