1
1

-- Change the calling semantics for elan4_alloc_cmdq again

-- Still need to verify the exact version numbers.

This commit was SVN r2302.
Этот коммит содержится в:
Weikuan Yu 2004-08-25 17:11:28 +00:00
родитель db1eb110cc
Коммит cbb53f305d
6 изменённых файлов: 30 добавлений и 41 удалений

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

@ -17,14 +17,13 @@ AC_DEFUN([MCA_CONFIGURE_STUB],[
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])])
AC_CHECK_HEADERS([qsnet/config.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
PTL_ELAN_LIBS="$LIBS"

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

@ -442,7 +442,7 @@ mca_ptl_elan_matched (mca_ptl_base_module_t * ptl,
}
/* Process the fragment */
#if 0
#if 1
set = fetchNset (&((mca_ptl_elan_recv_frag_t *)frag)->frag_progressed, 1);
#else
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);
PRIMEEVENT_WORD (ctx, (EVENT *) rxq->qr_elanDone, 1);
rxq->qr_cmdq = elan4_alloc_cmdq (ctx,
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
rxq->qr_cmdq = OMPI_PTL_ELAN_ALLOC_CMDQ (ctx,
rail->r_alloc,
#endif
CQ_Size1K,
CQ_WriteEnableBit |
CQ_WaitEventEnableBit, NULL);
@ -426,10 +424,8 @@ ompi_init_elan_qdma (mca_ptl_elan_component_t * emp,
INPUT_QUEUE_SIZE);
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)
queue->tx_cmdq = OMPI_PTL_ELAN_ALLOC_CMDQ (ctx,
rail->r_alloc,
#endif
CQ_Size8K,
CQ_WriteEnableBit |
CQ_DmaStartEnableBit |
@ -500,10 +496,8 @@ 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,
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
rail->r_alloc,
#endif
rxq->qr_cmdq = OMPI_PTL_ELAN_ALLOC_CMDQ (ctx,
rail->r_alloc,
CQ_Size1K,
CQ_WriteEnableBit |
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);
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)
putget->put_cmdq = OMPI_PTL_ELAN_ALLOC_CMDQ(ctx,
rail->r_alloc,
#endif
CQ_Size8K,
CQ_WriteEnableBit |
CQ_DmaStartEnableBit |
@ -574,10 +564,8 @@ ompi_init_elan_putget (mca_ptl_elan_component_t * emp,
CQ_STENEnableBit, cqp);
OMPI_PTL_ELAN_CHECK_UNEX (putget->put_cmdq, NULL, OMPI_ERROR, 0);
putget->get_cmdq = elan4_alloc_cmdq(ctx,
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
putget->get_cmdq = OMPI_PTL_ELAN_ALLOC_CMDQ(ctx,
rail->r_alloc,
#endif
CQ_Size8K,
CQ_WriteEnableBit |
CQ_STENEnableBit |

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

@ -172,7 +172,9 @@ mca_ptl_elan_send_desc_done (
& MCA_PTL_FLAGS_ACK_MATCHED)
|| 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,
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);
/*Allocate a pair of command queues for blocking waits with */
es->es_cmdq = elan4_alloc_cmdq (rail->r_ctx,
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
es->es_cmdq = OMPI_PTL_ELAN_ALLOC_CMDQ(rail->r_ctx,
rail->r_alloc,
#endif
CQ_Size1K,
CQ_WriteEnableBit |
CQ_WaitEventEnableBit, NULL);
(CQ_WriteEnableBit |
CQ_WaitEventEnableBit), NULL);
OMPI_PTL_ELAN_CHECK_UNEX (es->es_cmdq, NULL, NULL, 0);
/* This command queue used to fire the IRQ via
a cmd port copy event */
es->es_ecmdq = elan4_alloc_cmdq (rail->r_ctx,
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
es->es_ecmdq = OMPI_PTL_ELAN_ALLOC_CMDQ (rail->r_ctx,
rail->r_alloc,
#endif
CQ_Size1K, /* CQ_EnableAllBits, */
CQ_WriteEnableBit
| CQ_InterruptEnableBit,
(CQ_WriteEnableBit
| CQ_InterruptEnableBit),
NULL);
OMPI_PTL_ELAN_CHECK_UNEX (es->es_ecmdq, NULL, NULL, 0);
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));
/* Allocate a command port for non sten functions etc */
rail->r_cmdq = elan4_alloc_cmdq (rail->r_ctx,
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
rail->r_cmdq = OMPI_PTL_ELAN_ALLOC_CMDQ (rail->r_ctx,
rail->r_alloc,
#endif
CQ_Size8K,
CQ_ModifyEnableBit |
(CQ_ModifyEnableBit |
CQ_WriteEnableBit |
CQ_WaitEventEnableBit |
CQ_SetEventEnableBit |
CQ_ThreadStartEnableBit, NULL);
CQ_ThreadStartEnableBit), NULL);
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,
#if QSNETLIBS_VERSION_CODE <= QSNETLIBS_VERSION(1,6,4)
rail->r_ecmdq = OMPI_PTL_ELAN_ALLOC_CMDQ (rail->r_ctx,
rail->r_alloc,
#endif
CQ_Size8K,
CQ_EnableAllBits,
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)
#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...) \
do { \
if (PTL_ELAN_DEBUG_FLAG & flag) { \