[lustre-devel] [PATCH 23/32] lnet: o2iblnd: add debug messages for IB
James Simmons
jsimmons at infradead.org
Wed Aug 3 18:38:08 PDT 2022
From: Cyril Bordage <cbordage at whamcloud.com>
If net debug is enabled, information about connection, when
tx status is ECONNABORTED, is collected (only for IB).
WC-bug-id: https://jira.whamcloud.com/browse/LU-15925
Lustre-commit: 9153049bdc7ec8217 ("LU-15925 lnet: add debug messages for IB")
Signed-off-by: Cyril Bordage <cbordage at whamcloud.com>
Reviewed-on: https://review.whamcloud.com/47583
Reviewed-by: Frank Sehr <fsehr at whamcloud.com>
Reviewed-by: Serguei Smirnov <ssmirnov at whamcloud.com>
Reviewed-by: Oleg Drokin <green at whamcloud.com>
Signed-off-by: James Simmons <jsimmons at infradead.org>
---
net/lnet/klnds/o2iblnd/o2iblnd_cb.c | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/net/lnet/klnds/o2iblnd/o2iblnd_cb.c b/net/lnet/klnds/o2iblnd/o2iblnd_cb.c
index 01fa499..d4d8954 100644
--- a/net/lnet/klnds/o2iblnd/o2iblnd_cb.c
+++ b/net/lnet/klnds/o2iblnd/o2iblnd_cb.c
@@ -276,6 +276,13 @@ static int kiblnd_init_rdma(struct kib_conn *conn, struct kib_tx *tx, int type,
if (!tx->tx_status) { /* success so far */
if (status < 0) { /* failed? */
+ if (status == -ECONNABORTED) {
+ CDEBUG(D_NET,
+ "bad status for connection to %s with completion type %x\n",
+ libcfs_nid2str(conn->ibc_peer->ibp_nid),
+ txtype);
+ }
+
tx->tx_status = status;
tx->tx_hstatus = LNET_MSG_STATUS_REMOTE_ERROR;
} else if (txtype == IBLND_MSG_GET_REQ) {
@@ -812,6 +819,8 @@ static int kiblnd_map_tx(struct lnet_ni *ni, struct kib_tx *tx,
/* I'm still holding ibc_lock! */
if (conn->ibc_state != IBLND_CONN_ESTABLISHED) {
+ CDEBUG(D_NET, "connection to %s is not established\n",
+ conn->ibc_peer ? libcfs_nid2str(conn->ibc_peer->ibp_nid) : "NULL");
rc = -ECONNABORTED;
} else if (tx->tx_pool->tpo_pool.po_failed ||
conn->ibc_hdev != tx->tx_pool->tpo_hdev) {
@@ -1153,6 +1162,9 @@ static int kiblnd_map_tx(struct lnet_ni *ni, struct kib_tx *tx,
LASSERT(conn->ibc_state >= IBLND_CONN_ESTABLISHED);
if (conn->ibc_state >= IBLND_CONN_DISCONNECTED) {
+ CDEBUG(D_NET, "connection with %s is disconnected\n",
+ conn->ibc_peer ? libcfs_nid2str(conn->ibc_peer->ibp_nid) : "NULL");
+
tx->tx_status = -ECONNABORTED;
tx->tx_waiting = 0;
if (tx->tx_conn) {
@@ -2141,10 +2153,12 @@ static int kiblnd_map_tx(struct lnet_ni *ni, struct kib_tx *tx,
kiblnd_set_conn_state(conn, IBLND_CONN_DISCONNECTED);
- /*
- * Complete all tx descs not waiting for sends to complete.
+ /* Complete all tx descs not waiting for sends to complete.
* NB we should be safe from RDMA now that the QP has changed state
*/
+ CDEBUG(D_NET, "abort connection with %s\n",
+ libcfs_nid2str(conn->ibc_peer->ibp_nid));
+
kiblnd_abort_txs(conn, &conn->ibc_tx_noops);
kiblnd_abort_txs(conn, &conn->ibc_tx_queue);
kiblnd_abort_txs(conn, &conn->ibc_tx_queue_rsrvd);
--
1.8.3.1
More information about the lustre-devel
mailing list