1
1

track which list a fragment came from, allows returning based on list, not

on size. 

This commit was SVN r10142.
Этот коммит содержится в:
Galen Shipman 2006-05-31 14:24:32 +00:00
родитель ddea249f9b
Коммит c79efc9efb
2 изменённых файлов: 8 добавлений и 14 удалений

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

@ -788,11 +788,8 @@ extern int mca_btl_sm_free(
mca_btl_base_descriptor_t* des)
{
mca_btl_sm_frag_t* frag = (mca_btl_sm_frag_t*)des;
if(frag->size == mca_btl_sm_component.eager_limit) {
MCA_BTL_SM_FRAG_RETURN1(frag);
} else {
MCA_BTL_SM_FRAG_RETURN2(frag);
}
MCA_BTL_SM_FRAG_RETURN(frag);
return OMPI_SUCCESS;
}
@ -830,7 +827,7 @@ struct mca_btl_base_descriptor_t* mca_btl_sm_prepare_src(
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
if(rc < 0) {
MCA_BTL_SM_FRAG_RETURN2(frag);
MCA_BTL_SM_FRAG_RETURN(frag);
return NULL;
}
frag->segment.seg_len = reserve + max_data;

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

@ -46,6 +46,7 @@ struct mca_btl_sm_frag_t {
mca_btl_base_tag_t tag;
size_t size;
int rc;
ompi_free_list_t* my_list;
};
typedef struct mca_btl_sm_frag_t mca_btl_sm_frag_t;
typedef struct mca_btl_sm_frag_t mca_btl_sm_frag1_t;
@ -61,6 +62,7 @@ OBJ_CLASS_DECLARATION(mca_btl_sm_frag2_t);
opal_list_item_t* item; \
OMPI_FREE_LIST_WAIT(&mca_btl_sm_component.sm_frags1, item, rc); \
frag = (mca_btl_sm_frag_t*)item; \
frag->my_list = &mca_btl_sm_component.sm_frags1; \
}
#define MCA_BTL_SM_FRAG_ALLOC2(frag, rc) \
@ -68,17 +70,12 @@ OBJ_CLASS_DECLARATION(mca_btl_sm_frag2_t);
opal_list_item_t* item; \
OMPI_FREE_LIST_WAIT(&mca_btl_sm_component.sm_frags2, item, rc); \
frag = (mca_btl_sm_frag_t*)item; \
frag->my_list = &mca_btl_sm_component.sm_frags2; \
}
#define MCA_BTL_SM_FRAG_RETURN1(frag) \
#define MCA_BTL_SM_FRAG_RETURN(frag) \
{ \
OMPI_FREE_LIST_RETURN(&mca_btl_sm_component.sm_frags1, (opal_list_item_t*)(frag)); \
OMPI_FREE_LIST_RETURN(frag->my_list, (opal_list_item_t*)(frag)); \
}
#define MCA_BTL_SM_FRAG_RETURN2(frag) \
{ \
OMPI_FREE_LIST_RETURN(&mca_btl_sm_component.sm_frags2, (opal_list_item_t*)(frag)); \
}
#endif