-- Introduce configure options for customized path to kernel header files
-- Adjust routine synmatics according to the different qsnet version. -- Remove an unnecessary reference to tcookie field in ELAN4_PRIVATESTATE This commit was SVN r2298.
Этот коммит содержится в:
родитель
05b3b8d8f0
Коммит
1aa1ebd721
@ -8,7 +8,7 @@ include $(top_ompi_srcdir)/config/Makefile.options
|
|||||||
|
|
||||||
AM_CPPFLAGS = -I$(top_ompi_builddir)/src/include \
|
AM_CPPFLAGS = -I$(top_ompi_builddir)/src/include \
|
||||||
-I$(top_ompi_srcdir)/src -I$(top_ompi_srcdir)/src/include \
|
-I$(top_ompi_srcdir)/src -I$(top_ompi_srcdir)/src/include \
|
||||||
-I/usr/lib/qsnet/elan4/include
|
-I/usr/lib/qsnet/elan4/include
|
||||||
|
|
||||||
SUBDIRS = src tests
|
SUBDIRS = src tests
|
||||||
|
|
||||||
|
@ -9,6 +9,23 @@
|
|||||||
#
|
#
|
||||||
AC_DEFUN([MCA_CONFIGURE_STUB],[
|
AC_DEFUN([MCA_CONFIGURE_STUB],[
|
||||||
|
|
||||||
|
AC_ARG_WITH(ptl-elan-qsnet-headers,
|
||||||
|
AC_HELP_STRING([--with-ptl-elan-qsnet-headers=DIR],
|
||||||
|
[The path to qsnet header files, default /usr ]))
|
||||||
|
|
||||||
|
EXTRA_CPPFLAGS=
|
||||||
|
if test -n "$with_ptl_elan_qsnet_headers"; then
|
||||||
|
EXTRA_CPPFLAGS="-I$with_ptl_elan_qsnet_headers/include/"
|
||||||
|
else
|
||||||
|
EXTRA_CPPFLAGS="-I/usr/include/"
|
||||||
|
AC_MSG_WARN([*** Warning: using default qsnet header path /usr/include])
|
||||||
|
fi
|
||||||
|
|
||||||
|
# See if we can find a sample kernel header
|
||||||
|
CPPFLAGS="$EXTRA_CPPFLAGS $CPPFLAGS "
|
||||||
|
AC_CHECK_HEADERS([qsnet/autoconf.h],,
|
||||||
|
[AC_MSG_ERROR([*** Cannot find qsnet header files, e.g., autoconf.h])])
|
||||||
|
|
||||||
# Look for a bunch of libraries; abort if we don't have them
|
# Look for a bunch of libraries; abort if we don't have them
|
||||||
PTL_ELAN_LIBS="$LIBS"
|
PTL_ELAN_LIBS="$LIBS"
|
||||||
pairs="rmscall:rms_getcap elan:elan_init elan4:elan4_init"
|
pairs="rmscall:rms_getcap elan:elan_init elan4:elan4_init"
|
||||||
@ -53,7 +70,7 @@ AC_DEFUN([MCA_CONFIGURE_STUB],[
|
|||||||
AC_MSG_WARN([*** Need path to qsnet2 library source; please use --with-ptl-elan-qs2netlibsrc=/path/to/qsnet2/source])
|
AC_MSG_WARN([*** Need path to qsnet2 library source; please use --with-ptl-elan-qs2netlibsrc=/path/to/qsnet2/source])
|
||||||
AC_MSG_ERROR([Cannot continue])
|
AC_MSG_ERROR([Cannot continue])
|
||||||
else
|
else
|
||||||
CPPFLAGS="-I${QSNET2SRC}/include -I${QSNET2SRC}/elan4lib/include -I${QSNET2SRC}/elan4lib/elan4 -I${QSNET2SRC}/elan4lib/common"
|
CPPFLAGS="$CPPFLAGS -I${QSNET2SRC}/include -I${QSNET2SRC}/elan4lib/include -I${QSNET2SRC}/elan4lib/elan4 -I${QSNET2SRC}/elan4lib/common"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_SUBST(LIBS)
|
AC_SUBST(LIBS)
|
||||||
|
@ -388,7 +388,10 @@ ompi_init_elan_qdma (mca_ptl_elan_component_t * emp,
|
|||||||
RESETEVENT_WORD (&rxq->qr_doneWord);
|
RESETEVENT_WORD (&rxq->qr_doneWord);
|
||||||
PRIMEEVENT_WORD (ctx, (EVENT *) rxq->qr_elanDone, 1);
|
PRIMEEVENT_WORD (ctx, (EVENT *) rxq->qr_elanDone, 1);
|
||||||
|
|
||||||
rxq->qr_cmdq = elan4_alloc_cmdq (ctx, rail->r_alloc,
|
rxq->qr_cmdq = elan4_alloc_cmdq (ctx,
|
||||||
|
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
|
||||||
|
rail->r_alloc,
|
||||||
|
#endif
|
||||||
CQ_Size1K,
|
CQ_Size1K,
|
||||||
CQ_WriteEnableBit |
|
CQ_WriteEnableBit |
|
||||||
CQ_WaitEventEnableBit, NULL);
|
CQ_WaitEventEnableBit, NULL);
|
||||||
@ -424,7 +427,9 @@ ompi_init_elan_qdma (mca_ptl_elan_component_t * emp,
|
|||||||
OMPI_PTL_ELAN_CHECK_UNEX (queue->input, NULL, OMPI_ERROR, 0);
|
OMPI_PTL_ELAN_CHECK_UNEX (queue->input, NULL, OMPI_ERROR, 0);
|
||||||
|
|
||||||
queue->tx_cmdq = elan4_alloc_cmdq (ctx,
|
queue->tx_cmdq = elan4_alloc_cmdq (ctx,
|
||||||
|
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
|
||||||
rail->r_alloc,
|
rail->r_alloc,
|
||||||
|
#endif
|
||||||
CQ_Size8K,
|
CQ_Size8K,
|
||||||
CQ_WriteEnableBit |
|
CQ_WriteEnableBit |
|
||||||
CQ_DmaStartEnableBit |
|
CQ_DmaStartEnableBit |
|
||||||
@ -495,7 +500,10 @@ ompi_init_elan_qdma (mca_ptl_elan_component_t * emp,
|
|||||||
RESETEVENT_WORD (&rxq->qr_doneWord);
|
RESETEVENT_WORD (&rxq->qr_doneWord);
|
||||||
PRIMEEVENT_WORD (ctx, (EVENT *) rxq->qr_elanDone, 1);
|
PRIMEEVENT_WORD (ctx, (EVENT *) rxq->qr_elanDone, 1);
|
||||||
|
|
||||||
rxq->qr_cmdq = elan4_alloc_cmdq (ctx, rail->r_alloc,
|
rxq->qr_cmdq = elan4_alloc_cmdq (ctx,
|
||||||
|
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
|
||||||
|
rail->r_alloc,
|
||||||
|
#endif
|
||||||
CQ_Size1K,
|
CQ_Size1K,
|
||||||
CQ_WriteEnableBit |
|
CQ_WriteEnableBit |
|
||||||
CQ_WaitEventEnableBit, NULL);
|
CQ_WaitEventEnableBit, NULL);
|
||||||
@ -549,10 +557,16 @@ ompi_init_elan_putget (mca_ptl_elan_component_t * emp,
|
|||||||
/* construct the lock variable */
|
/* construct the lock variable */
|
||||||
OBJ_CONSTRUCT (&putget->pg_lock, ompi_mutex_t);
|
OBJ_CONSTRUCT (&putget->pg_lock, ompi_mutex_t);
|
||||||
|
|
||||||
cqp = elan4_probe_cmdq(ctx, rail->r_alloc, 0x10, CQ_AutoCtrlFlowOn);
|
cqp = elan4_probe_cmdq(ctx,
|
||||||
|
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
|
||||||
|
rail->r_alloc,
|
||||||
|
#endif
|
||||||
|
0x10, CQ_AutoCtrlFlowOn);
|
||||||
|
|
||||||
putget->put_cmdq = elan4_alloc_cmdq(ctx,
|
putget->put_cmdq = elan4_alloc_cmdq(ctx,
|
||||||
|
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
|
||||||
rail->r_alloc,
|
rail->r_alloc,
|
||||||
|
#endif
|
||||||
CQ_Size8K,
|
CQ_Size8K,
|
||||||
CQ_WriteEnableBit |
|
CQ_WriteEnableBit |
|
||||||
CQ_DmaStartEnableBit |
|
CQ_DmaStartEnableBit |
|
||||||
@ -561,7 +575,9 @@ ompi_init_elan_putget (mca_ptl_elan_component_t * emp,
|
|||||||
OMPI_PTL_ELAN_CHECK_UNEX (putget->put_cmdq, NULL, OMPI_ERROR, 0);
|
OMPI_PTL_ELAN_CHECK_UNEX (putget->put_cmdq, NULL, OMPI_ERROR, 0);
|
||||||
|
|
||||||
putget->get_cmdq = elan4_alloc_cmdq(ctx,
|
putget->get_cmdq = elan4_alloc_cmdq(ctx,
|
||||||
rail->r_alloc,
|
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
|
||||||
|
rail->r_alloc,
|
||||||
|
#endif
|
||||||
CQ_Size8K,
|
CQ_Size8K,
|
||||||
CQ_WriteEnableBit |
|
CQ_WriteEnableBit |
|
||||||
CQ_STENEnableBit |
|
CQ_STENEnableBit |
|
||||||
|
@ -157,8 +157,6 @@ ompi_elan_attach_network (mca_ptl_elan_state_t * ems)
|
|||||||
/* Allocate a cookie pool for the thread processor
|
/* Allocate a cookie pool for the thread processor
|
||||||
* and copy to sdram */
|
* and copy to sdram */
|
||||||
rail->r_cpool = elan4_allocCookiePool (rail->r_ctx, ems->elan_vp);
|
rail->r_cpool = elan4_allocCookiePool (rail->r_ctx, ems->elan_vp);
|
||||||
((ELAN_EPRIVSTATE *) rail->r_estate)->tcookie =
|
|
||||||
rail->r_cpool->cp_cookie;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
loc = elan_vp2location (ems->elan_vp, ems->elan_cap);
|
loc = elan_vp2location (ems->elan_vp, ems->elan_cap);
|
||||||
@ -287,7 +285,10 @@ ompi_init_elan_sleepdesc (mca_ptl_elan_state_t * ems,
|
|||||||
OMPI_PTL_ELAN_CHECK_UNEX (es->es_cmdBlk, 0, NULL, 0);
|
OMPI_PTL_ELAN_CHECK_UNEX (es->es_cmdBlk, 0, NULL, 0);
|
||||||
|
|
||||||
/*Allocate a pair of command queues for blocking waits with */
|
/*Allocate a pair of command queues for blocking waits with */
|
||||||
es->es_cmdq = elan4_alloc_cmdq (rail->r_ctx, rail->r_alloc,
|
es->es_cmdq = elan4_alloc_cmdq (rail->r_ctx,
|
||||||
|
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
|
||||||
|
rail->r_alloc,
|
||||||
|
#endif
|
||||||
CQ_Size1K,
|
CQ_Size1K,
|
||||||
CQ_WriteEnableBit |
|
CQ_WriteEnableBit |
|
||||||
CQ_WaitEventEnableBit, NULL);
|
CQ_WaitEventEnableBit, NULL);
|
||||||
@ -296,8 +297,13 @@ ompi_init_elan_sleepdesc (mca_ptl_elan_state_t * ems,
|
|||||||
/* This command queue used to fire the IRQ via
|
/* This command queue used to fire the IRQ via
|
||||||
a cmd port copy event */
|
a cmd port copy event */
|
||||||
es->es_ecmdq = elan4_alloc_cmdq (rail->r_ctx,
|
es->es_ecmdq = elan4_alloc_cmdq (rail->r_ctx,
|
||||||
rail->r_alloc, CQ_Size1K, /* CQ_EnableAllBits, */
|
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
|
||||||
CQ_WriteEnableBit | CQ_InterruptEnableBit, NULL);
|
rail->r_alloc,
|
||||||
|
#endif
|
||||||
|
CQ_Size1K, /* CQ_EnableAllBits, */
|
||||||
|
CQ_WriteEnableBit
|
||||||
|
| CQ_InterruptEnableBit,
|
||||||
|
NULL);
|
||||||
OMPI_PTL_ELAN_CHECK_UNEX (es->es_ecmdq, NULL, NULL, 0);
|
OMPI_PTL_ELAN_CHECK_UNEX (es->es_ecmdq, NULL, NULL, 0);
|
||||||
es->es_next = NULL;
|
es->es_next = NULL;
|
||||||
|
|
||||||
@ -454,7 +460,9 @@ ompi_mca_ptl_elan_init (mca_ptl_elan_component_t * emp)
|
|||||||
|
|
||||||
/* Allocate a command port for non sten functions etc */
|
/* Allocate a command port for non sten functions etc */
|
||||||
rail->r_cmdq = elan4_alloc_cmdq (rail->r_ctx,
|
rail->r_cmdq = elan4_alloc_cmdq (rail->r_ctx,
|
||||||
rail->r_alloc,
|
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
|
||||||
|
rail->r_alloc,
|
||||||
|
#endif
|
||||||
CQ_Size8K,
|
CQ_Size8K,
|
||||||
CQ_ModifyEnableBit |
|
CQ_ModifyEnableBit |
|
||||||
CQ_WriteEnableBit |
|
CQ_WriteEnableBit |
|
||||||
@ -464,8 +472,12 @@ ompi_mca_ptl_elan_init (mca_ptl_elan_component_t * emp)
|
|||||||
OMPI_PTL_ELAN_CHECK_UNEX (rail->r_cmdq, NULL, OMPI_ERROR, 0);
|
OMPI_PTL_ELAN_CHECK_UNEX (rail->r_cmdq, NULL, OMPI_ERROR, 0);
|
||||||
|
|
||||||
/* Allocate a command port for thread rescheduling etc */
|
/* Allocate a command port for thread rescheduling etc */
|
||||||
rail->r_ecmdq = elan4_alloc_cmdq (rail->r_ctx, rail->r_alloc,
|
rail->r_ecmdq = elan4_alloc_cmdq (rail->r_ctx,
|
||||||
CQ_Size8K, CQ_EnableAllBits,
|
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
|
||||||
|
rail->r_alloc,
|
||||||
|
#endif
|
||||||
|
CQ_Size8K,
|
||||||
|
CQ_EnableAllBits,
|
||||||
NULL);
|
NULL);
|
||||||
OMPI_PTL_ELAN_CHECK_UNEX (rail->r_ecmdq, NULL, OMPI_ERROR, 0);
|
OMPI_PTL_ELAN_CHECK_UNEX (rail->r_ecmdq, NULL, OMPI_ERROR, 0);
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user