1
1

-- 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.
Этот коммит содержится в:
Weikuan Yu 2004-08-25 13:23:13 +00:00
родитель 05b3b8d8f0
Коммит 1aa1ebd721
4 изменённых файлов: 59 добавлений и 14 удалений

Просмотреть файл

@ -8,7 +8,7 @@ include $(top_ompi_srcdir)/config/Makefile.options
AM_CPPFLAGS = -I$(top_ompi_builddir)/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

Просмотреть файл

@ -9,6 +9,23 @@
#
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
PTL_ELAN_LIBS="$LIBS"
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_ERROR([Cannot continue])
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
AC_SUBST(LIBS)

Просмотреть файл

@ -388,7 +388,10 @@ ompi_init_elan_qdma (mca_ptl_elan_component_t * emp,
RESETEVENT_WORD (&rxq->qr_doneWord);
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_WriteEnableBit |
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);
queue->tx_cmdq = elan4_alloc_cmdq (ctx,
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
rail->r_alloc,
#endif
CQ_Size8K,
CQ_WriteEnableBit |
CQ_DmaStartEnableBit |
@ -495,7 +500,10 @@ ompi_init_elan_qdma (mca_ptl_elan_component_t * emp,
RESETEVENT_WORD (&rxq->qr_doneWord);
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_WriteEnableBit |
CQ_WaitEventEnableBit, NULL);
@ -549,10 +557,16 @@ ompi_init_elan_putget (mca_ptl_elan_component_t * emp,
/* construct the lock variable */
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,
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
rail->r_alloc,
#endif
CQ_Size8K,
CQ_WriteEnableBit |
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);
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_WriteEnableBit |
CQ_STENEnableBit |

Просмотреть файл

@ -157,8 +157,6 @@ ompi_elan_attach_network (mca_ptl_elan_state_t * ems)
/* Allocate a cookie pool for the thread processor
* and copy to sdram */
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);
@ -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);
/*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_WriteEnableBit |
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
a cmd port copy event */
es->es_ecmdq = elan4_alloc_cmdq (rail->r_ctx,
rail->r_alloc, CQ_Size1K, /* CQ_EnableAllBits, */
CQ_WriteEnableBit | CQ_InterruptEnableBit, NULL);
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
rail->r_alloc,
#endif
CQ_Size1K, /* CQ_EnableAllBits, */
CQ_WriteEnableBit
| CQ_InterruptEnableBit,
NULL);
OMPI_PTL_ELAN_CHECK_UNEX (es->es_ecmdq, NULL, NULL, 0);
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 */
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_ModifyEnableBit |
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);
/* Allocate a command port for thread rescheduling etc */
rail->r_ecmdq = elan4_alloc_cmdq (rail->r_ctx, rail->r_alloc,
CQ_Size8K, CQ_EnableAllBits,
rail->r_ecmdq = elan4_alloc_cmdq (rail->r_ctx,
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
rail->r_alloc,
#endif
CQ_Size8K,
CQ_EnableAllBits,
NULL);
OMPI_PTL_ELAN_CHECK_UNEX (rail->r_ecmdq, NULL, OMPI_ERROR, 0);