net/rds: Log vendor error if send/recv Work requests fail

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>
This commit is contained in:
Sudhakar Dindukurti 2019-10-01 16:33:14 -07:00 committed by David S. Miller
parent 80f60a911e
commit fab401e1ee
2 changed files with 5 additions and 4 deletions

View File

@ -993,10 +993,11 @@ void rds_ib_recv_cqe_handler(struct rds_ib_connection *ic,
} else { } else {
/* We expect errors as the qp is drained during shutdown */ /* We expect errors as the qp is drained during shutdown */
if (rds_conn_up(conn) || rds_conn_connecting(conn)) 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_laddr, &conn->c_faddr,
conn->c_tos, wc->status, 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 /* rds_ib_process_recv() doesn't always consume the frag, and

View 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 */ /* We expect errors as the qp is drained during shutdown */
if (wc->status != IB_WC_SUCCESS && rds_conn_up(conn)) { 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_laddr, &conn->c_faddr,
conn->c_tos, wc->status, conn->c_tos, wc->status,
ib_wc_status_msg(wc->status)); ib_wc_status_msg(wc->status), wc->vendor_err);
} }
} }