-- Change the calling semantics for elan4_alloc_cmdq again
-- Still need to verify the exact version numbers. This commit was SVN r2302.
Этот коммит содержится в:
родитель
db1eb110cc
Коммит
cbb53f305d
@ -17,14 +17,13 @@ AC_DEFUN([MCA_CONFIGURE_STUB],[
|
|||||||
if test -n "$with_ptl_elan_qsnet_headers"; then
|
if test -n "$with_ptl_elan_qsnet_headers"; then
|
||||||
EXTRA_CPPFLAGS="-I$with_ptl_elan_qsnet_headers/include/"
|
EXTRA_CPPFLAGS="-I$with_ptl_elan_qsnet_headers/include/"
|
||||||
else
|
else
|
||||||
EXTRA_CPPFLAGS="-I/usr/include/"
|
|
||||||
AC_MSG_WARN([*** Warning: using default qsnet header path /usr/include])
|
AC_MSG_WARN([*** Warning: using default qsnet header path /usr/include])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# See if we can find a sample kernel header
|
# See if we can find a sample kernel header
|
||||||
CPPFLAGS="$EXTRA_CPPFLAGS $CPPFLAGS "
|
CPPFLAGS="$EXTRA_CPPFLAGS $CPPFLAGS "
|
||||||
AC_CHECK_HEADERS([qsnet/autoconf.h],,
|
AC_CHECK_HEADERS([qsnet/config.h],,
|
||||||
[AC_MSG_ERROR([*** Cannot find qsnet header files, e.g., autoconf.h])])
|
[AC_MSG_ERROR([*** Cannot find qsnet header files, e.g., config.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"
|
||||||
|
@ -442,7 +442,7 @@ mca_ptl_elan_matched (mca_ptl_base_module_t * ptl,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Process the fragment */
|
/* Process the fragment */
|
||||||
#if 0
|
#if 1
|
||||||
set = fetchNset (&((mca_ptl_elan_recv_frag_t *)frag)->frag_progressed, 1);
|
set = fetchNset (&((mca_ptl_elan_recv_frag_t *)frag)->frag_progressed, 1);
|
||||||
#else
|
#else
|
||||||
set = ompi_atomic_fetch_and_set_int (&((mca_ptl_elan_recv_frag_t *)frag)->frag_progressed, 1);
|
set = ompi_atomic_fetch_and_set_int (&((mca_ptl_elan_recv_frag_t *)frag)->frag_progressed, 1);
|
||||||
|
@ -388,10 +388,8 @@ 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,
|
rxq->qr_cmdq = OMPI_PTL_ELAN_ALLOC_CMDQ (ctx,
|
||||||
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
|
|
||||||
rail->r_alloc,
|
rail->r_alloc,
|
||||||
#endif
|
|
||||||
CQ_Size1K,
|
CQ_Size1K,
|
||||||
CQ_WriteEnableBit |
|
CQ_WriteEnableBit |
|
||||||
CQ_WaitEventEnableBit, NULL);
|
CQ_WaitEventEnableBit, NULL);
|
||||||
@ -426,10 +424,8 @@ ompi_init_elan_qdma (mca_ptl_elan_component_t * emp,
|
|||||||
INPUT_QUEUE_SIZE);
|
INPUT_QUEUE_SIZE);
|
||||||
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 = OMPI_PTL_ELAN_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 |
|
||||||
@ -500,10 +496,8 @@ 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,
|
rxq->qr_cmdq = OMPI_PTL_ELAN_ALLOC_CMDQ (ctx,
|
||||||
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
|
|
||||||
rail->r_alloc,
|
rail->r_alloc,
|
||||||
#endif
|
|
||||||
CQ_Size1K,
|
CQ_Size1K,
|
||||||
CQ_WriteEnableBit |
|
CQ_WriteEnableBit |
|
||||||
CQ_WaitEventEnableBit, NULL);
|
CQ_WaitEventEnableBit, NULL);
|
||||||
@ -558,15 +552,11 @@ ompi_init_elan_putget (mca_ptl_elan_component_t * emp,
|
|||||||
OBJ_CONSTRUCT (&putget->pg_lock, ompi_mutex_t);
|
OBJ_CONSTRUCT (&putget->pg_lock, ompi_mutex_t);
|
||||||
|
|
||||||
cqp = elan4_probe_cmdq(ctx,
|
cqp = elan4_probe_cmdq(ctx,
|
||||||
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
|
|
||||||
rail->r_alloc,
|
rail->r_alloc,
|
||||||
#endif
|
|
||||||
0x10, CQ_AutoCtrlFlowOn);
|
0x10, CQ_AutoCtrlFlowOn);
|
||||||
|
|
||||||
putget->put_cmdq = elan4_alloc_cmdq(ctx,
|
putget->put_cmdq = OMPI_PTL_ELAN_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 |
|
||||||
@ -574,10 +564,8 @@ ompi_init_elan_putget (mca_ptl_elan_component_t * emp,
|
|||||||
CQ_STENEnableBit, cqp);
|
CQ_STENEnableBit, cqp);
|
||||||
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 = OMPI_PTL_ELAN_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_STENEnableBit |
|
CQ_STENEnableBit |
|
||||||
|
@ -172,7 +172,9 @@ mca_ptl_elan_send_desc_done (
|
|||||||
& MCA_PTL_FLAGS_ACK_MATCHED)
|
& MCA_PTL_FLAGS_ACK_MATCHED)
|
||||||
|| mca_pml_base_send_request_matched(req)) {
|
|| mca_pml_base_send_request_matched(req)) {
|
||||||
|
|
||||||
if(ompi_atomic_fetch_and_set_int (&desc->frag_progressed, 1) == 0) {
|
if(fetchNset(&desc->frag_progressed, 1) == 0)
|
||||||
|
/*if(ompi_atomic_fetch_and_set_int (&desc->frag_progressed, 1) == 0) */
|
||||||
|
{
|
||||||
ptl->super.ptl_send_progress(ptl, req,
|
ptl->super.ptl_send_progress(ptl, req,
|
||||||
header->hdr_frag.hdr_frag_length);
|
header->hdr_frag.hdr_frag_length);
|
||||||
}
|
}
|
||||||
|
@ -285,24 +285,20 @@ 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,
|
es->es_cmdq = OMPI_PTL_ELAN_ALLOC_CMDQ(rail->r_ctx,
|
||||||
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
|
|
||||||
rail->r_alloc,
|
rail->r_alloc,
|
||||||
#endif
|
|
||||||
CQ_Size1K,
|
CQ_Size1K,
|
||||||
CQ_WriteEnableBit |
|
(CQ_WriteEnableBit |
|
||||||
CQ_WaitEventEnableBit, NULL);
|
CQ_WaitEventEnableBit), NULL);
|
||||||
OMPI_PTL_ELAN_CHECK_UNEX (es->es_cmdq, NULL, NULL, 0);
|
OMPI_PTL_ELAN_CHECK_UNEX (es->es_cmdq, NULL, NULL, 0);
|
||||||
|
|
||||||
/* 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 = OMPI_PTL_ELAN_ALLOC_CMDQ (rail->r_ctx,
|
||||||
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
|
|
||||||
rail->r_alloc,
|
rail->r_alloc,
|
||||||
#endif
|
|
||||||
CQ_Size1K, /* CQ_EnableAllBits, */
|
CQ_Size1K, /* CQ_EnableAllBits, */
|
||||||
CQ_WriteEnableBit
|
(CQ_WriteEnableBit
|
||||||
| CQ_InterruptEnableBit,
|
| CQ_InterruptEnableBit),
|
||||||
NULL);
|
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;
|
||||||
@ -459,23 +455,19 @@ ompi_mca_ptl_elan_init (mca_ptl_elan_component_t * emp)
|
|||||||
memset (priv_estate, 0, sizeof (ELAN_EPRIVSTATE));
|
memset (priv_estate, 0, sizeof (ELAN_EPRIVSTATE));
|
||||||
|
|
||||||
/* 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 = OMPI_PTL_ELAN_ALLOC_CMDQ (rail->r_ctx,
|
||||||
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
|
|
||||||
rail->r_alloc,
|
rail->r_alloc,
|
||||||
#endif
|
|
||||||
CQ_Size8K,
|
CQ_Size8K,
|
||||||
CQ_ModifyEnableBit |
|
(CQ_ModifyEnableBit |
|
||||||
CQ_WriteEnableBit |
|
CQ_WriteEnableBit |
|
||||||
CQ_WaitEventEnableBit |
|
CQ_WaitEventEnableBit |
|
||||||
CQ_SetEventEnableBit |
|
CQ_SetEventEnableBit |
|
||||||
CQ_ThreadStartEnableBit, NULL);
|
CQ_ThreadStartEnableBit), NULL);
|
||||||
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_ecmdq = OMPI_PTL_ELAN_ALLOC_CMDQ (rail->r_ctx,
|
||||||
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
|
|
||||||
rail->r_alloc,
|
rail->r_alloc,
|
||||||
#endif
|
|
||||||
CQ_Size8K,
|
CQ_Size8K,
|
||||||
CQ_EnableAllBits,
|
CQ_EnableAllBits,
|
||||||
NULL);
|
NULL);
|
||||||
|
@ -80,6 +80,14 @@
|
|||||||
#define PTL_ELAN_DEBUG_FLAG (PTL_ELAN_DEBUG_MAC|PTL_ELAN_DEBUG_ACK|PTL_ELAN_DEBUG_SEND|PTL_ELAN_DEBUG_PUT)
|
#define PTL_ELAN_DEBUG_FLAG (PTL_ELAN_DEBUG_MAC|PTL_ELAN_DEBUG_ACK|PTL_ELAN_DEBUG_SEND|PTL_ELAN_DEBUG_PUT)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if 1 || (QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4))
|
||||||
|
#define OMPI_PTL_ELAN_ALLOC_CMDQ(ctx, alloc, size, bits, params) \
|
||||||
|
elan4_alloc_cmdq (ctx, alloc, size, bits, params)
|
||||||
|
#else
|
||||||
|
#define OMPI_PTL_ELAN_ALLOC_CMDQ(ctx, alloc, size, bits, params) \
|
||||||
|
elan4_alloc_cmdq (ctx, size, bits, params)
|
||||||
|
#endif
|
||||||
|
|
||||||
#define LOG_PRINT(flag, args...) \
|
#define LOG_PRINT(flag, args...) \
|
||||||
do { \
|
do { \
|
||||||
if (PTL_ELAN_DEBUG_FLAG & flag) { \
|
if (PTL_ELAN_DEBUG_FLAG & flag) { \
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user