1
1

osc/portals4: For the ME, use the uid from PtlGetUid instead of PTL_UID_ANY

Этот коммит содержится в:
Pascal Deveze 2016-07-07 11:02:07 +02:00
родитель 56b36eeb7e
Коммит e99e7d08ed
2 изменённых файлов: 13 добавлений и 2 удалений

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

@ -53,6 +53,7 @@ struct ompi_osc_portals4_component_t {
ptl_size_t matching_atomic_max;
ptl_size_t matching_fetch_atomic_max;
ptl_size_t matching_atomic_ordered_size;
ptl_uid_t uid;
opal_free_list_t requests; /* request free list for the r* communication variants */
};

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

@ -360,8 +360,18 @@ component_query(struct ompi_win_t *win, void **base, size_t size, int disp_unit,
struct ompi_communicator_t *comm, struct ompi_info_t *info,
int flavor)
{
int ret;
if (MPI_WIN_FLAVOR_SHARED == flavor) return -1;
ret = PtlGetUid(mca_osc_portals4_component.matching_ni_h, &mca_osc_portals4_component.uid);
if (PTL_OK != ret) {
opal_output_verbose(1, ompi_osc_base_framework.framework_output,
"%s:%d: PtlGetUid failed: %d\n",
__FILE__, __LINE__, ret);
return OMPI_ERROR;
}
return 20;
}
@ -482,7 +492,7 @@ component_select(struct ompi_win_t *win, void **base, size_t size, int disp_unit
me.length = size;
}
me.ct_handle = PTL_CT_NONE;
me.uid = PTL_UID_ANY;
me.uid = mca_osc_portals4_component.uid;
me.options = PTL_ME_OP_PUT | PTL_ME_OP_GET | PTL_ME_NO_TRUNCATE | PTL_ME_EVENT_SUCCESS_DISABLE;
me.match_id.phys.nid = PTL_NID_ANY;
me.match_id.phys.pid = PTL_PID_ANY;
@ -505,7 +515,7 @@ component_select(struct ompi_win_t *win, void **base, size_t size, int disp_unit
me.start = &module->state;
me.length = sizeof(module->state);
me.ct_handle = PTL_CT_NONE;
me.uid = PTL_UID_ANY;
me.uid = mca_osc_portals4_component.uid;
me.options = PTL_ME_OP_PUT | PTL_ME_OP_GET | PTL_ME_NO_TRUNCATE | PTL_ME_EVENT_SUCCESS_DISABLE;
me.match_id.phys.nid = PTL_NID_ANY;
me.match_id.phys.pid = PTL_PID_ANY;