Revert "osc/pt2pt: use two distinct "namespaces" for tags"
This reverts commit 06ecdb6aa7ee688f51de2b3ca05e9f0605a90099 to reimplement the fix completely.
Этот коммит содержится в:
родитель
c72688e8cf
Коммит
3576ecafa7
@ -150,7 +150,6 @@ struct ompi_osc_pt2pt_module_t {
|
||||
|
||||
/** cyclic counter for a unique tage for long messages. */
|
||||
uint32_t tag_counter;
|
||||
uint32_t rtag_counter;
|
||||
|
||||
/* Number of outgoing fragments that have completed since the
|
||||
begining of time */
|
||||
@ -650,18 +649,10 @@ static inline int get_tag(ompi_osc_pt2pt_module_t *module)
|
||||
/* the LSB of the tag is used be the receiver to determine if the
|
||||
message is a passive or active target (ie, where to mark
|
||||
completion). */
|
||||
int32_t tmp = OPAL_THREAD_ADD32((volatile int32_t *) &module->tag_counter, 4);
|
||||
int32_t tmp = OPAL_THREAD_ADD32((volatile int32_t *) &module->tag_counter, 2);
|
||||
return (tmp & OSC_PT2PT_FRAG_MASK) | !!(module->passive_target_access_epoch);
|
||||
}
|
||||
|
||||
static inline int get_rtag(ompi_osc_pt2pt_module_t *module)
|
||||
{
|
||||
/* the LSB of the tag is used be the receiver to determine if the
|
||||
message is a passive or active target (ie, where to mark
|
||||
completion). */
|
||||
int32_t tmp = OPAL_THREAD_ADD32((volatile int32_t *) &module->rtag_counter, 4);
|
||||
return (tmp & OSC_PT2PT_FRAG_MASK) | !!(module->passive_target_access_epoch);
|
||||
}
|
||||
/**
|
||||
* ompi_osc_pt2pt_accumulate_lock:
|
||||
*
|
||||
|
@ -491,7 +491,7 @@ ompi_osc_pt2pt_accumulate_w_req (const void *origin_addr, int origin_count,
|
||||
}
|
||||
|
||||
is_long_msg = true;
|
||||
tag = get_rtag (module);
|
||||
tag = get_tag (module);
|
||||
}
|
||||
|
||||
if (is_long_msg) {
|
||||
|
@ -290,7 +290,6 @@ component_select(struct ompi_win_t *win, void **base, size_t size, int disp_unit
|
||||
/* fill in the function pointer part */
|
||||
memcpy(module, &ompi_osc_pt2pt_module_template,
|
||||
sizeof(ompi_osc_base_module_t));
|
||||
module->rtag_counter = 2;
|
||||
|
||||
/* initialize the objects, so that always free in cleanup */
|
||||
OBJ_CONSTRUCT(&module->lock, opal_mutex_t);
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user