Date: Mon, 12 Nov 2007 16:13:53 GMT From: Steve Wise <swise@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 128979 for review Message-ID: <200711121613.lACGDrTi015566@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=128979 Change 128979 by swise@swise:vic10:iwarp on 2007/11/12 16:13:00 Get rdma modules to load! rdma_addr, rdma_cma, rdma_iwcm, and rdma_core now load. The IB stuff is all ifdefed out, but iwarp should work! Affected files ... .. //depot/projects/iwarp/sys/contrib/rdma/rdma_cma.c#5 edit .. //depot/projects/iwarp/sys/contrib/rdma/rdma_device.c#3 edit .. //depot/projects/iwarp/sys/contrib/rdma/rdma_iwcm.c#3 edit .. //depot/projects/iwarp/sys/modules/rdma/iwcm/Makefile#2 edit Differences ... ==== //depot/projects/iwarp/sys/contrib/rdma/rdma_cma.c#5 (text+ko) ==== @@ -71,7 +71,9 @@ .remove = cma_remove_one }; +#ifdef IB_SUPPORTED static struct ib_sa_client sa_client; +#endif static struct rdma_addr_client addr_client; static TAILQ_HEAD(, cma_device) dev_list; static LIST_HEAD(, rdma_id_private) listen_any_list; @@ -553,6 +555,7 @@ return ib_modify_qp(id->qp, &qp_attr, IB_QP_STATE); } +#ifdef IB_SUPPORTED static int cma_ib_init_qp_attr(struct rdma_id_private *id_priv, struct ib_qp_attr *qp_attr, int *qp_attr_mask) { @@ -577,6 +580,7 @@ } return 0; } +#endif int rdma_init_qp_attr(struct rdma_cm_id *id, struct ib_qp_attr *qp_attr, int *qp_attr_mask) @@ -585,6 +589,7 @@ int ret = 0; id_priv = container_of(id, struct rdma_id_private, id); +#ifdef IB_SUPPORTED switch (rdma_node_get_transport(id_priv->id.device->node_type)) { case RDMA_TRANSPORT_IB: if (!id_priv->cm_id.ib || cma_is_ud_ps(id_priv->id.ps)) @@ -596,17 +601,20 @@ qp_attr->rq_psn = id_priv->seq_num; break; case RDMA_TRANSPORT_IWARP: +#endif if (!id_priv->cm_id.iw) { qp_attr->qp_access_flags = IB_ACCESS_LOCAL_WRITE; *qp_attr_mask = IB_QP_STATE | IB_QP_ACCESS_FLAGS; } else ret = iw_cm_init_qp_attr(id_priv->cm_id.iw, qp_attr, qp_attr_mask); +#ifdef IB_SUPPORTED break; default: ret = ENOSYS; break; } +#endif return ret; } @@ -731,6 +739,7 @@ static void cma_cancel_route(struct rdma_id_private *id_priv) { +#ifdef IB_SUPPORTED switch (rdma_node_get_transport(id_priv->id.device->node_type)) { case RDMA_TRANSPORT_IB: if (id_priv->query) @@ -739,6 +748,7 @@ default: break; } +#endif } static inline int cma_internal_listen(struct rdma_id_private *id_priv) @@ -752,18 +762,22 @@ cma_exch(id_priv, CMA_DESTROYING); if (id_priv->cma_dev) { +#ifdef IB_SUPPORTED switch (rdma_node_get_transport(id_priv->id.device->node_type)) { case RDMA_TRANSPORT_IB: if (id_priv->cm_id.ib && !IS_ERR(id_priv->cm_id.ib)) ib_destroy_cm_id(id_priv->cm_id.ib); break; case RDMA_TRANSPORT_IWARP: +#endif if (id_priv->cm_id.iw && !IS_ERR(id_priv->cm_id.iw)) iw_destroy_cm_id(id_priv->cm_id.iw); +#ifdef IB_SUPPORTED break; default: break; } +#endif cma_detach_from_dev(id_priv); } LIST_REMOVE(id_priv, listen_entry); @@ -2870,7 +2884,9 @@ return (ENOMEM); taskqueue_start_threads(&cma_wq, 1, PI_NET, "cma_wq thread"); +#ifdef IB_SUPPORTED ib_sa_register_client(&sa_client); +#endif rdma_addr_register_client(&addr_client); ret = ib_register_client(&cma_client); @@ -2880,7 +2896,9 @@ err: rdma_addr_unregister_client(&addr_client); +#ifdef IB_SUPPORTED ib_sa_unregister_client(&sa_client); +#endif taskqueue_free(cma_wq); return ret; } @@ -2889,7 +2907,9 @@ { ib_unregister_client(&cma_client); rdma_addr_unregister_client(&addr_client); +#ifdef IB_SUPPORTED ib_sa_unregister_client(&sa_client); +#endif taskqueue_free(cma_wq); idr_destroy(&sdp_ps); idr_destroy(&tcp_ps); @@ -2933,4 +2953,5 @@ MODULE_VERSION(rdma_cma, 1); MODULE_DEPEND(rdma_cma, rdma_core, 1, 1, 1); MODULE_DEPEND(rdma_cma, rdma_addr, 1, 1, 1); +MODULE_DEPEND(rdma_cma, rdma_iwcm, 1, 1, 1); DECLARE_MODULE(rdma_cma, mod_data, SI_SUB_EXEC, SI_ORDER_ANY); ==== //depot/projects/iwarp/sys/contrib/rdma/rdma_device.c#3 (text+ko) ==== @@ -732,6 +732,8 @@ #endif mtx_init(&device_mutex, "rdma_device mutex", NULL, MTX_DUPOK|MTX_DEF); + TAILQ_INIT(&client_list); + TAILQ_INIT(&device_list); ret = ib_cache_setup(); if (ret) { log(LOG_WARNING, "Couldn't set up InfiniBand P_Key/GID cache\n"); @@ -760,14 +762,13 @@ switch (cmd) { case MOD_LOAD: - printf("Loading iwcm.\n"); - + printf("Loading rdma_core.\n"); rdma_core_init(); break; case MOD_QUIESCE: break; case MOD_UNLOAD: - printf("Unloading iwcm.\n"); + printf("Unloading rdma_core.\n"); rdma_core_cleanup(); break; case MOD_SHUTDOWN: ==== //depot/projects/iwarp/sys/contrib/rdma/rdma_iwcm.c#3 (text+ko) ==== @@ -1058,14 +1058,14 @@ switch (cmd) { case MOD_LOAD: - printf("Loading iwcm.\n"); + printf("Loading rdma_iwcm.\n"); iw_cm_init(); break; case MOD_QUIESCE: break; case MOD_UNLOAD: - printf("Unloading iwcm.\n"); + printf("Unloading rdma_iwcm.\n"); iw_cm_cleanup(); break; case MOD_SHUTDOWN: ==== //depot/projects/iwarp/sys/modules/rdma/iwcm/Makefile#2 (text+ko) ==== @@ -3,7 +3,7 @@ RDMA= ${.CURDIR}/../../../contrib/rdma .PATH: ${RDMA} -KMOD= iw_cm +KMOD= rdma_iwcm SRCS= device_if.h bus_if.h pci_if.h pcib_if.h SRCS+= rdma_iwcm.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200711121613.lACGDrTi015566>