1
1

Adapt to the last commits from Tim.

This commit was SVN r5837.
Этот коммит содержится в:
George Bosilca 2005-05-23 23:05:15 +00:00
родитель 2739c0b0c5
Коммит 4a7211468b
6 изменённых файлов: 22 добавлений и 26 удалений

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

@ -41,8 +41,7 @@ mca_pml_uniq_t mca_pml_uniq = {
{ {
mca_pml_uniq_add_procs, mca_pml_uniq_add_procs,
mca_pml_uniq_del_procs, mca_pml_uniq_del_procs,
mca_pml_uniq_add_ptls, mca_pml_uniq_enable,
mca_pml_uniq_control,
mca_pml_uniq_progress, mca_pml_uniq_progress,
mca_pml_uniq_add_comm, mca_pml_uniq_add_comm,
mca_pml_uniq_del_comm, mca_pml_uniq_del_comm,
@ -92,13 +91,12 @@ static int ptl_exclusivity_compare(const void* arg1, const void* arg2)
} }
int mca_pml_uniq_add_ptls(ompi_list_t *ptls) int mca_pml_uniq_add_ptls( void )
{ {
/* build an array of ptls and ptl modules */ /* build an array of ptls and ptl modules */
mca_ptl_base_selected_module_t* selected_ptl; mca_ptl_base_selected_module_t* selected_ptl;
size_t num_ptls = ompi_list_get_size(ptls); size_t num_ptls = ompi_list_get_size(&mca_ptl_base_modules_initialized);
size_t cache_bytes = 0; size_t cache_bytes = 0;
mca_pml_uniq.uniq_num_ptl_modules = 0; mca_pml_uniq.uniq_num_ptl_modules = 0;
mca_pml_uniq.uniq_num_ptl_progress = 0; mca_pml_uniq.uniq_num_ptl_progress = 0;
mca_pml_uniq.uniq_num_ptl_components = 0; mca_pml_uniq.uniq_num_ptl_components = 0;
@ -111,9 +109,11 @@ int mca_pml_uniq_add_ptls(ompi_list_t *ptls)
return OMPI_ERR_OUT_OF_RESOURCE; return OMPI_ERR_OUT_OF_RESOURCE;
} }
for(selected_ptl = (mca_ptl_base_selected_module_t*)ompi_list_get_first(ptls); for(selected_ptl = (mca_ptl_base_selected_module_t*)
selected_ptl != (mca_ptl_base_selected_module_t*)ompi_list_get_end(ptls); ompi_list_get_first(&mca_ptl_base_modules_initialized);
selected_ptl = (mca_ptl_base_selected_module_t*)ompi_list_get_next(selected_ptl)) { selected_ptl != (mca_ptl_base_selected_module_t*)
ompi_list_get_end(&mca_ptl_base_modules_initialized);
selected_ptl = (mca_ptl_base_selected_module_t*)ompi_list_get_next(selected_ptl)) {
mca_ptl_base_module_t *ptl = selected_ptl->pbsm_module; mca_ptl_base_module_t *ptl = selected_ptl->pbsm_module;
size_t i; size_t i;
@ -165,12 +165,13 @@ int mca_pml_uniq_add_ptls(ompi_list_t *ptls)
* Pass control information through to all PTL modules. * Pass control information through to all PTL modules.
*/ */
int mca_pml_uniq_control(int param, void* value, size_t size) int mca_pml_uniq_enable( bool enable )
{ {
size_t i; size_t i;
int value = enable;
for( i = 0; i < mca_pml_uniq.uniq_num_ptl_components; i++ ) { for( i = 0; i < mca_pml_uniq.uniq_num_ptl_components; i++ ) {
if(NULL != mca_pml_uniq.uniq_ptl_components[i]->ptlm_control) { if(NULL != mca_pml_uniq.uniq_ptl_components[i]->ptlm_control) {
int rc = mca_pml_uniq.uniq_ptl_components[i]->ptlm_control(param,value,size); int rc = mca_pml_uniq.uniq_ptl_components[i]->ptlm_control(MCA_PTL_ENABLE,&value,sizeof(value));
if(rc != OMPI_SUCCESS) if(rc != OMPI_SUCCESS)
return rc; return rc;
} }

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

@ -111,14 +111,10 @@ extern int mca_pml_uniq_del_procs(
size_t nprocs size_t nprocs
); );
extern int mca_pml_uniq_add_ptls( extern int mca_pml_uniq_add_ptls(void);
ompi_list_t *ptls
);
extern int mca_pml_uniq_control( extern int mca_pml_uniq_enable(
int param, bool enable
void *size,
size_t value
); );
extern int mca_pml_uniq_progress(void); extern int mca_pml_uniq_progress(void);
@ -223,7 +219,6 @@ extern int mca_pml_uniq_start(
pml_request->req_free_called = true; \ pml_request->req_free_called = true; \
if( pml_request->req_pml_complete == true) \ if( pml_request->req_pml_complete == true) \
{ \ { \
OMPI_REQUEST_FINI(*(request)); \
switch(pml_request->req_type) { \ switch(pml_request->req_type) { \
case MCA_PML_REQUEST_SEND: \ case MCA_PML_REQUEST_SEND: \
{ \ { \

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

@ -180,7 +180,7 @@ mca_pml_base_module_t* mca_pml_uniq_component_init(int* priority,
if(rc != OMPI_SUCCESS) if(rc != OMPI_SUCCESS)
return NULL; return NULL;
mca_pml_teg_add_ptls(); mca_pml_uniq_add_ptls();
return &mca_pml_uniq.super; return &mca_pml_uniq.super;
} }

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

@ -44,7 +44,7 @@ int mca_pml_uniq_iprobe(int src,
ompi_progress(); ompi_progress();
} }
} }
MCA_PML_UNIQ_RECV_REQUEST_RETURN( &recvreq ); MCA_PML_BASE_RECV_REQUEST_FINI( &recvreq.req_recv );
return rc; return rc;
} }
@ -63,7 +63,7 @@ int mca_pml_uniq_probe(int src,
MCA_PML_UNIQ_RECV_REQUEST_INIT(&recvreq, NULL, 0, &ompi_mpi_char, src, tag, comm, true); MCA_PML_UNIQ_RECV_REQUEST_INIT(&recvreq, NULL, 0, &ompi_mpi_char, src, tag, comm, true);
if ((rc = mca_pml_uniq_recv_request_start(&recvreq)) != OMPI_SUCCESS) { if ((rc = mca_pml_uniq_recv_request_start(&recvreq)) != OMPI_SUCCESS) {
MCA_PML_UNIQ_RECV_REQUEST_RETURN( &recvreq ); MCA_PML_BASE_RECV_REQUEST_FINI( &recvreq.req_recv );
return rc; return rc;
} }
@ -87,7 +87,7 @@ int mca_pml_uniq_probe(int src,
if (NULL != status) { if (NULL != status) {
*status = recvreq.req_recv.req_base.req_ompi.req_status; *status = recvreq.req_recv.req_base.req_ompi.req_status;
} }
MCA_PML_UNIQ_RECV_REQUEST_RETURN( &recvreq ); MCA_PML_BASE_RECV_REQUEST_FINI( &recvreq.req_recv );
return OMPI_SUCCESS; return OMPI_SUCCESS;
} }

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

@ -75,9 +75,9 @@ OBJ_CLASS_DECLARATION(mca_pml_uniq_recv_request_t);
* *
* @param request (IN) Receive request. * @param request (IN) Receive request.
*/ */
#define MCA_PML_UNIQ_RECV_REQUEST_RETURN(request) \ #define MCA_PML_UNIQ_RECV_REQUEST_RETURN(request) \
do { \ do { \
MCA_PML_BASE_RECV_REQUEST_RETURN( &((request)->req_recv) ); \ MCA_PML_BASE_RECV_REQUEST_FINI( &((request)->req_recv) ); \
OMPI_FREE_LIST_RETURN(&mca_pml_uniq.uniq_recv_requests, (ompi_list_item_t*)(request)); \ OMPI_FREE_LIST_RETURN(&mca_pml_uniq.uniq_recv_requests, (ompi_list_item_t*)(request)); \
} while(0) } while(0)

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

@ -122,7 +122,7 @@ OBJ_CLASS_DECLARATION(mca_pml_uniq_send_request_t);
mca_pml_base_ptl_t* ptl_base = ptl->ptl_base; \ mca_pml_base_ptl_t* ptl_base = ptl->ptl_base; \
\ \
/* Let the base handle the reference counts */ \ /* Let the base handle the reference counts */ \
MCA_PML_BASE_SEND_REQUEST_RETURN( &((sendreq)->req_send) ); \ MCA_PML_BASE_SEND_REQUEST_FINI( &((sendreq)->req_send) ); \
\ \
/* \ /* \
* If there is a cache associated with the ptl - first attempt \ * If there is a cache associated with the ptl - first attempt \