diff options
author | Santosh Shilimkar <santosh.shilimkar@oracle.com> | 2016-07-09 18:31:38 -0700 |
---|---|---|
committer | Santosh Shilimkar <santosh.shilimkar@oracle.com> | 2017-01-02 14:02:50 -0800 |
commit | 581d53c91cbf7b31415a9ed5e9a8b89d6af609b3 (patch) | |
tree | 31f25e649c2140e6e41ba10cc27706f6bd65871d /net/rds | |
parent | c536a068870a08fb7b35482e701a6b72e294b493 (diff) | |
download | linux-581d53c91cbf7b31415a9ed5e9a8b89d6af609b3.tar.bz2 |
RDS: IB: track and log active side endpoint in connection
Useful to know the active and passive end points in a
RDS IB connection.
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
Diffstat (limited to 'net/rds')
-rw-r--r-- | net/rds/ib.h | 3 | ||||
-rw-r--r-- | net/rds/ib_cm.c | 11 |
2 files changed, 10 insertions, 4 deletions
diff --git a/net/rds/ib.h b/net/rds/ib.h index f14c26d22b27..5f02b4d8f10c 100644 --- a/net/rds/ib.h +++ b/net/rds/ib.h @@ -181,6 +181,9 @@ struct rds_ib_connection { /* Batched completions */ unsigned int i_unsignaled_wrs; + + /* Endpoint role in connection */ + bool i_active_side; }; /* This assumes that atomic_t is at least 32 bits */ diff --git a/net/rds/ib_cm.c b/net/rds/ib_cm.c index 3002acf75766..4d1bf04b06b5 100644 --- a/net/rds/ib_cm.c +++ b/net/rds/ib_cm.c @@ -120,16 +120,17 @@ void rds_ib_cm_connect_complete(struct rds_connection *conn, struct rdma_cm_even rds_conn_destroy(conn); return; } else { - pr_notice("RDS/IB: connected <%pI4,%pI4> version %u.%u%s\n", + pr_notice("RDS/IB: %s conn connected <%pI4,%pI4> version %u.%u%s\n", + ic->i_active_side ? "Active" : "Passive", &conn->c_laddr, &conn->c_faddr, RDS_PROTOCOL_MAJOR(conn->c_version), RDS_PROTOCOL_MINOR(conn->c_version), ic->i_flowctl ? ", flow control" : ""); } - /* - * Init rings and fill recv. this needs to wait until protocol negotiation - * is complete, since ring layout is different from 3.0 to 3.1. + /* Init rings and fill recv. this needs to wait until protocol + * negotiation is complete, since ring layout is different + * from 3.1 to 4.1. */ rds_ib_send_init_ring(ic); rds_ib_recv_init_ring(ic); @@ -685,6 +686,7 @@ out: if (ic->i_cm_id == cm_id) ret = 0; } + ic->i_active_side = true; return ret; } @@ -859,6 +861,7 @@ void rds_ib_conn_path_shutdown(struct rds_conn_path *cp) ic->i_sends = NULL; vfree(ic->i_recvs); ic->i_recvs = NULL; + ic->i_active_side = false; } int rds_ib_conn_alloc(struct rds_connection *conn, gfp_t gfp) |