The ft_event function needs access to the bml_r2_remove_btl_progress() to ensure
that all progress events are flushed as needed across a checkpoint/restart. This commit was SVN r19566.
Этот коммит содержится в:
родитель
270f482fea
Коммит
351c3a3a86
@ -543,7 +543,7 @@ int mca_bml_r2_del_procs(size_t nprocs,
|
||||
return OMPI_SUCCESS;
|
||||
}
|
||||
|
||||
static inline int bml_r2_remove_btl_progress(mca_btl_base_module_t* btl)
|
||||
inline int bml_r2_remove_btl_progress(mca_btl_base_module_t* btl)
|
||||
{
|
||||
unsigned int p;
|
||||
|
||||
|
@ -89,6 +89,9 @@ int mca_bml_r2_component_fini(void);
|
||||
|
||||
int mca_bml_r2_ft_event(int status);
|
||||
|
||||
inline int bml_r2_remove_btl_progress(mca_btl_base_module_t* btl);
|
||||
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
@ -48,6 +48,7 @@ int mca_bml_r2_ft_event(int state)
|
||||
size_t btl_idx;
|
||||
int ret, p;
|
||||
int loc_state;
|
||||
opal_list_item_t* w_item = NULL;
|
||||
|
||||
if(OPAL_CRS_CHECKPOINT == state) {
|
||||
/* Do nothing for now */
|
||||
@ -128,6 +129,28 @@ int mca_bml_r2_ft_event(int state)
|
||||
;
|
||||
}
|
||||
else if(OPAL_CRS_RESTART_PRE == state ) {
|
||||
/* Flush the progress functions */
|
||||
procs = ompi_proc_all(&num_procs);
|
||||
if(NULL == procs) {
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
for (w_item = opal_list_get_first(&mca_btl_base_modules_initialized);
|
||||
w_item != opal_list_get_end(&mca_btl_base_modules_initialized);
|
||||
w_item = opal_list_get_next(w_item)) {
|
||||
mca_btl_base_selected_module_t *sm = (mca_btl_base_selected_module_t *) w_item;
|
||||
mca_btl_base_module_t* btl = sm->btl_module;
|
||||
|
||||
/* unregister the BTL progress function if any */
|
||||
bml_r2_remove_btl_progress(btl);
|
||||
|
||||
/* dont use this btl for any peers */
|
||||
for(p = 0; p < (int)num_procs; ++p) {
|
||||
ompi_proc_t* proc = procs[p];
|
||||
mca_bml_r2_del_proc_btl(proc, sm->btl_module);
|
||||
}
|
||||
}
|
||||
/* End New */
|
||||
|
||||
mca_bml_r2.num_btl_modules = 0;
|
||||
mca_bml_r2.num_btl_progress = 0;
|
||||
|
||||
|
@ -28,7 +28,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user