]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
rds: disable APM support
authorAjaykumar Hotchandani <ajaykumar.hotchandani@oracle.com>
Thu, 2 Apr 2015 21:35:07 +0000 (14:35 -0700)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Wed, 8 Jul 2015 20:12:40 +0000 (13:12 -0700)
The APM(Alternate Path Migration) feature is not used and its
code is being disabled. (It can be re-enabled if/when APM support
is enabled in rdma_cm.

Signed-off-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@oracle.com>
net/rds/ib.c
net/rds/ib.h
net/rds/ib_cm.c
net/rds/rdma_transport.c
net/rds/rds.h

index dbc4f5ea9107bb24e733e82cbf7999a23ecfecba..9822c8ac3446409dfa3ec11b3d728594703bd2c6 100644 (file)
 unsigned int rds_ib_fmr_1m_pool_size = RDS_FMR_1M_POOL_SIZE;
 unsigned int rds_ib_fmr_8k_pool_size = RDS_FMR_8K_POOL_SIZE;
 unsigned int rds_ib_retry_count = RDS_IB_DEFAULT_RETRY_COUNT;
+#if RDMA_RDS_APM_SUPPORTED
 unsigned int rds_ib_apm_enabled = 0;
 unsigned int rds_ib_apm_fallback = 1;
+#endif
 unsigned int rds_ib_haip_enabled = 0;
 unsigned int rds_ib_haip_fallback = 1;
+#if RDMA_RDS_APM_SUPPORTED
 unsigned int rds_ib_apm_timeout = RDS_IB_DEFAULT_TIMEOUT;
+#endif
 unsigned int rds_ib_rnr_retry_count = RDS_IB_DEFAULT_RNR_RETRY_COUNT;
 #if IB_RDS_CQ_VECTOR_SUPPORTED
 unsigned int rds_ib_cq_balance_enabled = 1;
@@ -68,16 +72,22 @@ module_param(rds_ib_fmr_8k_pool_size, int, 0444);
 MODULE_PARM_DESC(rds_ib_fmr_8k_pool_size, " Max number of 8k fmr per HCA");
 module_param(rds_ib_retry_count, int, 0444);
 MODULE_PARM_DESC(rds_ib_retry_count, " Number of hw retries before reporting an error");
+#if RDMA_RDS_APM_SUPPORTED
 module_param(rds_ib_apm_enabled, int, 0444);
 MODULE_PARM_DESC(rds_ib_apm_enabled, " APM Enabled");
+#endif
 module_param(rds_ib_haip_enabled, int, 0444);
 MODULE_PARM_DESC(rds_ib_haip_enabled, " High Availability IP enabled");
+#if RDMA_RDS_APM_SUPPORTED
 module_param(rds_ib_apm_timeout, int, 0444);
 MODULE_PARM_DESC(rds_ib_apm_timeout, " APM timeout");
+#endif
 module_param(rds_ib_rnr_retry_count, int, 0444);
 MODULE_PARM_DESC(rds_ib_rnr_retry_count, " QP rnr retry count");
+#if RDMA_RDS_APM_SUPPORTED
 module_param(rds_ib_apm_fallback, int, 0444);
 MODULE_PARM_DESC(rds_ib_apm_fallback, " APM failback enabled");
+#endif
 module_param(rds_ib_haip_fallback, int, 0444);
 MODULE_PARM_DESC(rds_ib_haip_fallback, " HAIP failback Enabled");
 module_param(rds_ib_haip_failover_groups, charp, 0444);
@@ -1353,7 +1363,9 @@ struct rds_transport rds_ib_transport = {
        .sync_mr                = rds_ib_sync_mr,
        .free_mr                = rds_ib_free_mr,
        .flush_mrs              = rds_ib_flush_mrs,
+#if RDMA_RDS_APM_SUPPORTED
        .check_migration        = rds_ib_check_migration,
+#endif
        .t_owner                = THIS_MODULE,
        .t_name                 = "infiniband",
        .t_type                 = RDS_TRANS_IB
index 816db3e3153f50d43ae8b4c9def9b46d6a0f0248..6e939b3d14015a00cf5706c122d9bd0d8abdfa4e 100644 (file)
@@ -425,12 +425,16 @@ extern unsigned int rds_ib_fmr_1m_pool_size;
 extern unsigned int rds_ib_fmr_8k_pool_size;
 extern unsigned int rds_ib_retry_count;
 extern unsigned int rds_ib_rnr_retry_count;
+#if RDMA_RDS_APM_SUPPORTED
 extern unsigned int rds_ib_apm_enabled;
 extern unsigned int rds_ib_apm_fallback;
+#endif
 extern unsigned int rds_ib_haip_enabled;
 extern unsigned int rds_ib_haip_fallback;
 extern unsigned int rds_ib_haip_failover_enabled;
+#if RDMA_RDS_APM_SUPPORTED
 extern unsigned int rds_ib_apm_timeout;
+#endif
 #if IB_RDS_CQ_VECTOR_SUPPORTED
 extern unsigned int rds_ib_cq_balance_enabled;
 #endif
@@ -454,9 +458,10 @@ int rds_ib_cm_handle_connect(struct rdma_cm_id *cm_id,
 int rds_ib_cm_initiate_connect(struct rdma_cm_id *cm_id);
 void rds_ib_cm_connect_complete(struct rds_connection *conn,
                                struct rdma_cm_event *event);
+#if RDMA_RDS_APM_SUPPORTED
 void rds_ib_check_migration(struct rds_connection *conn,
                                struct rdma_cm_event *event);
-
+#endif
 
 #define rds_ib_conn_error(conn, fmt...) \
        __rds_ib_conn_error(conn, KERN_WARNING "RDS/IB: " fmt)
index 8a805b5c72ca3a5f4c6b6efb6ef8f50cf01fc514..ef88af4c4ae5197811373268e28791617c40cb33 100644 (file)
@@ -216,6 +216,7 @@ void rds_ib_cm_connect_complete(struct rds_connection *conn, struct rdma_cm_even
        if (dp && dp->dp_ack_seq)
                rds_send_drop_acked(conn, be64_to_cpu(dp->dp_ack_seq), NULL);
 
+#if RDMA_RDS_APM_SUPPORTED
        if (rds_ib_apm_enabled && !ic->conn->c_reconnect) {
                memcpy(&ic->i_pri_path.p_sgid,
                        &ic->i_cm_id->route.path_rec[0].sgid,
@@ -242,6 +243,7 @@ void rds_ib_cm_connect_complete(struct rds_connection *conn, struct rdma_cm_even
                        RDS_IB_GID_ARG(ic->i_pri_path.p_sgid),
                        RDS_IB_GID_ARG(ic->i_pri_path.p_dgid));
        }
+#endif
 
        rds_connect_complete(conn);
 }
@@ -806,18 +808,21 @@ int rds_ib_cm_handle_connect(struct rdma_cm_id *cm_id,
                event->param.conn.responder_resources,
                event->param.conn.initiator_depth);
 
+#if RDMA_RDS_APM_SUPPORTED
        if (rds_ib_apm_enabled)
                rdma_set_timeout(cm_id, rds_ib_apm_timeout);
-
+#endif
        /* rdma_accept() calls rdma_reject() internally if it fails */
        err = rdma_accept(cm_id, &conn_param);
        if (err)
                rds_ib_conn_error(conn, "rdma_accept failed (%d)\n", err);
+#if RDMA_RDS_APM_SUPPORTED
        else if (rds_ib_apm_enabled && !conn->c_loopback) {
                err = rdma_enable_apm(cm_id, RDMA_ALT_PATH_BEST);
                if (err)
                        printk(KERN_WARNING "RDS/IB: APM couldn't be enabled for passive side: %d\n", err);
        }
+#endif
 
 out:
        if (conn)
@@ -836,11 +841,13 @@ int rds_ib_cm_initiate_connect(struct rdma_cm_id *cm_id)
        struct rds_ib_connect_private dp;
        int ret;
 
+#if RDMA_RDS_APM_SUPPORTED
        if (rds_ib_apm_enabled && !conn->c_loopback) {
                ret = rdma_enable_apm(cm_id, RDMA_ALT_PATH_BEST);
                if (ret)
                        printk(KERN_WARNING "RDS/IB: APM couldn't be enabled for active side: %d\n", ret);
        }
+#endif
 
        /* If the peer doesn't do protocol negotiation, we must
         * default to RDSv3.0 */
@@ -883,8 +890,10 @@ static void rds_ib_migrate(struct work_struct *_work)
        struct rdma_cm_id *cm_id = ic->i_cm_id;
        int ret = 0;
 
+#if RDMA_RDS_APM_SUPPORTED
        if (!rds_ib_apm_fallback)
                return;
+#endif
 
        if (!ic->i_active_side) {
                ret = ib_query_qp(cm_id->qp, &qp_attr, IB_QP_PATH_MIG_STATE,
@@ -913,6 +922,7 @@ static void rds_ib_migrate(struct work_struct *_work)
        }
 }
 
+#if RDMA_RDS_APM_SUPPORTED
 void rds_ib_check_migration(struct rds_connection *conn,
                        struct rdma_cm_event *event)
 {
@@ -967,6 +977,7 @@ void rds_ib_check_migration(struct rds_connection *conn,
                }
        }
 }
+#endif
 
 static void rds_ib_destroy_id(struct work_struct *_work)
 {
index b070a9cab195fb0eb05bbfc7431729dc888fd8b7..53a0300023ece5a27a62f935c24eb442b267118a 100644 (file)
@@ -86,8 +86,10 @@ int rds_rdma_cm_event_handler(struct rdma_cm_id *cm_id,
        case RDMA_CM_EVENT_ADDR_RESOLVED:
                rdma_set_service_type(cm_id, conn->c_tos);
 
+#if RDMA_RDS_APM_SUPPORTED
                if (rds_ib_apm_enabled)
                        rdma_set_timeout(cm_id, rds_ib_apm_timeout);
+#endif
 
                /* XXX do we need to clean up if this fails? */
                ret = rdma_resolve_route(cm_id,
@@ -115,6 +117,7 @@ int rds_rdma_cm_event_handler(struct rdma_cm_id *cm_id,
                ret = trans->cm_initiate_connect(cm_id);
                break;
 
+#if RDMA_RDS_APM_SUPPORTED
        case RDMA_CM_EVENT_ALT_PATH_LOADED:
                rdsdebug("RDS: alt path loaded\n");
                if (conn)
@@ -128,6 +131,7 @@ int rds_rdma_cm_event_handler(struct rdma_cm_id *cm_id,
        case RDMA_CM_EVENT_ALT_ROUTE_ERROR:
                rdsdebug("RDS: alt route resolve error\n");
                break;
+#endif
 
        case RDMA_CM_EVENT_ROUTE_ERROR:
                /* IP might have been moved so flush the ARP entry and retry */
@@ -163,8 +167,13 @@ int rds_rdma_cm_event_handler(struct rdma_cm_id *cm_id,
                break;
 
        case RDMA_CM_EVENT_ADDR_CHANGE:
+#if RDMA_RDS_APM_SUPPORTED
                if (conn && !rds_ib_apm_enabled)
                        rds_conn_drop(conn);
+#else
+               if (conn)
+                       rds_conn_drop(conn);
+#endif
                break;
 
        case RDMA_CM_EVENT_DISCONNECTED:
index f329354a07fcda115c6f8568bf47578d270ec7b3..d2c2fe19021db5a211fdfc39ed0d906fdf615c2e 100644 (file)
@@ -22,6 +22,7 @@
 #define RDS_PROTOCOL(maj, min) (((maj) << 8) | min)
 
 #define IB_RDS_CQ_VECTOR_SUPPORTED 0
+#define RDMA_RDS_APM_SUPPORTED 0
 
 /*
  * XXX randomly chosen, but at least seems to be unused: