From owner-p4-projects@FreeBSD.ORG Mon Nov 12 16:13:54 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1E05316A469; Mon, 12 Nov 2007 16:13:54 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A3BAE16A41A for ; Mon, 12 Nov 2007 16:13:53 +0000 (UTC) (envelope-from swise@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9381F13C48E for ; Mon, 12 Nov 2007 16:13:53 +0000 (UTC) (envelope-from swise@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id lACGDrmv015569 for ; Mon, 12 Nov 2007 16:13:53 GMT (envelope-from swise@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lACGDrTi015566 for perforce@freebsd.org; Mon, 12 Nov 2007 16:13:53 GMT (envelope-from swise@FreeBSD.org) Date: Mon, 12 Nov 2007 16:13:53 GMT Message-Id: <200711121613.lACGDrTi015566@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to swise@FreeBSD.org using -f From: Steve Wise To: Perforce Change Reviews Cc: Subject: PERFORCE change 128979 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Nov 2007 16:13:54 -0000 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