From 95ecf26e505313ec174ac93a11d6b43ce257f80b Mon Sep 17 00:00:00 2001 From: Arlin Davis Date: Wed, 16 May 2012 11:28:09 -0700 Subject: [PATCH] Add configuration files for new Proxy RDMA/SCIF Provider This proxy RDMA provider is a interbus service within a platform to enable offloading of RDMA writes from a small core (MIC) to large core resource. Data sourced on a MIC that is destined for remote nodes on the fabric will be transfered to large core via SCIF and than to remote node. Signed-off-by: Arlin Davis --- Makefile.am | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++- configure.in | 11 +++++ 2 files changed, 147 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index 7441348..07bdb77 100755 --- a/Makefile.am +++ b/Makefile.am @@ -104,6 +104,15 @@ dapl_udapl_libdaploucm_la_CFLAGS = $(AM_CFLAGS) -D_GNU_SOURCE $(OSFLAGS) $(XFLAG -I$(srcdir)/dapl/openib_ucm \ -I$(srcdir)/dapl/openib_ucm/linux endif +if DEFINE_PCM +dapl_udapl_libdaplopcm_la_CFLAGS = $(AM_CFLAGS) -D_GNU_SOURCE $(OSFLAGS) $(XFLAGS) \ + -DOPENIB -DCQ_WAIT_OBJECT \ + -I$(srcdir)/dat/include/ -I$(srcdir)/dapl/include/ \ + -I$(srcdir)/dapl/common -I$(srcdir)/dapl/udapl/linux \ + -I$(srcdir)/dapl/openib_common \ + -I$(srcdir)/dapl/openib_ucm \ + -I$(srcdir)/dapl/openib_ucm/linux +endif if HAVE_LD_VERSION_SCRIPT dat_version_script = -Wl,--version-script=$(srcdir)/dat/udat/libdat2.map if DEFINE_CMA @@ -115,6 +124,9 @@ endif if DEFINE_UCM daploucm_version_script = -Wl,--version-script=$(srcdir)/dapl/udapl/libdaploucm.map endif +if DEFINE_UCM + daplopcm_version_script = -Wl,--version-script=$(srcdir)/dapl/udapl/libdaplopcm.map +endif else dat_version_script = if DEFINE_CMA @@ -126,6 +138,9 @@ endif if DEFINE_UCM daploucm_version_script = endif +if DEFINE_PCM + daplopcm_version_script = +endif endif # @@ -484,11 +499,128 @@ dapl_udapl_libdaploucm_la_SOURCES = dapl/udapl/dapl_init.c \ dapl/openib_ucm/cm.c \ dapl/openib_ucm/device.c $(XPROGRAMS) -dapl_udapl_libdaploucm_la_LDFLAGS = -version-info 2:0:0 $(daploscm_version_script) \ +dapl_udapl_libdaploucm_la_LDFLAGS = -version-info 2:0:0 $(daploucm_version_script) \ -Wl,-init,dapl_init -Wl,-fini,dapl_fini \ -lpthread -libverbs $(XLIBS) endif +if DEFINE_PCM +# +# uDAPL OpenFabrics Proxy CM version for IB: libdaplpcm.so +# Proxy Infiniband RDMA writes via SCIF +# +dapl_udapl_libdaploucm_la_SOURCES = dapl/udapl/dapl_init.c \ + dapl/udapl/dapl_evd_create.c \ + dapl/udapl/dapl_evd_query.c \ + dapl/udapl/dapl_cno_create.c \ + dapl/udapl/dapl_cno_modify_agent.c \ + dapl/udapl/dapl_cno_free.c \ + dapl/udapl/dapl_cno_wait.c \ + dapl/udapl/dapl_cno_query.c \ + dapl/udapl/dapl_lmr_create.c \ + dapl/udapl/dapl_evd_wait.c \ + dapl/udapl/dapl_evd_disable.c \ + dapl/udapl/dapl_evd_enable.c \ + dapl/udapl/dapl_evd_modify_cno.c \ + dapl/udapl/dapl_evd_set_unwaitable.c \ + dapl/udapl/dapl_evd_clear_unwaitable.c \ + dapl/udapl/linux/dapl_osd.c \ + dapl/common/dapl_cookie.c \ + dapl/common/dapl_cr_accept.c \ + dapl/common/dapl_cr_query.c \ + dapl/common/dapl_cr_reject.c \ + dapl/common/dapl_cr_util.c \ + dapl/common/dapl_cr_callback.c \ + dapl/common/dapl_cr_handoff.c \ + dapl/common/dapl_ep_connect.c \ + dapl/common/dapl_ep_create.c \ + dapl/common/dapl_ep_disconnect.c \ + dapl/common/dapl_ep_dup_connect.c \ + dapl/common/dapl_ep_free.c \ + dapl/common/dapl_ep_reset.c \ + dapl/common/dapl_ep_get_status.c \ + dapl/common/dapl_ep_modify.c \ + dapl/common/dapl_ep_post_rdma_read.c \ + dapl/common/dapl_ep_post_rdma_write.c \ + dapl/common/dapl_ep_post_recv.c \ + dapl/common/dapl_ep_post_send.c \ + dapl/common/dapl_ep_query.c \ + dapl/common/dapl_ep_util.c \ + dapl/common/dapl_evd_dequeue.c \ + dapl/common/dapl_evd_free.c \ + dapl/common/dapl_evd_post_se.c \ + dapl/common/dapl_evd_resize.c \ + dapl/common/dapl_evd_util.c \ + dapl/common/dapl_evd_cq_async_error_callb.c \ + dapl/common/dapl_evd_qp_async_error_callb.c \ + dapl/common/dapl_evd_un_async_error_callb.c \ + dapl/common/dapl_evd_connection_callb.c \ + dapl/common/dapl_evd_dto_callb.c \ + dapl/common/dapl_get_consumer_context.c \ + dapl/common/dapl_get_handle_type.c \ + dapl/common/dapl_hash.c \ + dapl/common/dapl_hca_util.c \ + dapl/common/dapl_ia_close.c \ + dapl/common/dapl_ia_open.c \ + dapl/common/dapl_ia_query.c \ + dapl/common/dapl_ia_util.c \ + dapl/common/dapl_llist.c \ + dapl/common/dapl_lmr_free.c \ + dapl/common/dapl_lmr_query.c \ + dapl/common/dapl_lmr_util.c \ + dapl/common/dapl_lmr_sync_rdma_read.c \ + dapl/common/dapl_lmr_sync_rdma_write.c \ + dapl/common/dapl_mr_util.c \ + dapl/common/dapl_provider.c \ + dapl/common/dapl_sp_util.c \ + dapl/common/dapl_psp_create.c \ + dapl/common/dapl_psp_create_any.c \ + dapl/common/dapl_psp_free.c \ + dapl/common/dapl_psp_query.c \ + dapl/common/dapl_pz_create.c \ + dapl/common/dapl_pz_free.c \ + dapl/common/dapl_pz_query.c \ + dapl/common/dapl_pz_util.c \ + dapl/common/dapl_rmr_create.c \ + dapl/common/dapl_rmr_free.c \ + dapl/common/dapl_rmr_bind.c \ + dapl/common/dapl_rmr_query.c \ + dapl/common/dapl_rmr_util.c \ + dapl/common/dapl_rsp_create.c \ + dapl/common/dapl_rsp_free.c \ + dapl/common/dapl_rsp_query.c \ + dapl/common/dapl_cno_util.c \ + dapl/common/dapl_set_consumer_context.c \ + dapl/common/dapl_ring_buffer_util.c \ + dapl/common/dapl_name_service.c \ + dapl/common/dapl_timer_util.c \ + dapl/common/dapl_ep_create_with_srq.c \ + dapl/common/dapl_ep_recv_query.c \ + dapl/common/dapl_ep_set_watermark.c \ + dapl/common/dapl_srq_create.c \ + dapl/common/dapl_srq_free.c \ + dapl/common/dapl_srq_query.c \ + dapl/common/dapl_srq_resize.c \ + dapl/common/dapl_srq_post_recv.c \ + dapl/common/dapl_srq_set_lw.c \ + dapl/common/dapl_srq_util.c \ + dapl/common/dapl_debug.c \ + dapl/common/dapl_ia_ha.c \ + dapl/common/dapl_csp.c \ + dapl/common/dapl_ep_post_send_invalidate.c \ + dapl/common/dapl_ep_post_rdma_read_to_rmr.c \ + dapl/openib_common/mem.c \ + dapl/openib_common/cq.c \ + dapl/openib_common/qp.c \ + dapl/openib_common/util.c \ + dapl/openib_pcm/cm.c \ + dapl/openib_pcm/device.c $(XPROGRAMS) + +dapl_udapl_libdaploucm_la_LDFLAGS = -version-info 2:0:0 $(daplopcm_version_script) \ + -Wl,-init,dapl_init -Wl,-fini,dapl_fini \ + -lpthread -libverbs -lscif $(XLIBS) +endif + libdatincludedir = $(includedir)/dat2 libdatinclude_HEADERS = dat/include/dat2/dat.h \ @@ -554,10 +686,13 @@ EXTRA_DIST = dat/common/dat_dictionary.h \ dapl/openib_scm/linux/openib_osd.h \ dapl/openib_ucm/dapl_ib_util.h \ dapl/openib_ucm/linux/openib_osd.h \ + dapl/openib_pcm/dapl_ib_util.h \ + dapl/openib_pcm/linux/openib_osd.h \ dat/udat/libdat2.map \ dapl/udapl/libdaplofa.map \ dapl/udapl/libdaploscm.map \ dapl/udapl/libdaploucm.map \ + dapl/udapl/libdaplopcm.map \ LICENSE.txt \ LICENSE2.txt \ LICENSE3.txt \ diff --git a/configure.in b/configure.in index 60da50b..a5a41b9 100644 --- a/configure.in +++ b/configure.in @@ -104,6 +104,17 @@ AC_ARG_ENABLE([ucm], [ucm=true]) AM_CONDITIONAL(DEFINE_UCM, test x$ucm = xtrue) +nl Support to enable/disable PCM (proxy) SCIF provider library build +AC_ARG_ENABLE([pcm], + AS_HELP_STRING([--enable-ucm],[enable PCM (proxy CM) SCIF provider build, default=disabled]), + [case "${enableval}" in + yes) pcm=true ;; + no) pcm=false ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-pcm) ;; + esac], + [pcm=false]) +AM_CONDITIONAL(DEFINE_PCM, test x$pcm = xtrue) + dnl Support to enable/disable IB extended counters (CM,LINK,DIAG) AC_ARG_ENABLE([counters], AS_HELP_STRING([--enable-counters],[enable counters provider build, default=disabled]), -- 2.41.0