1
1

OSC UCX: make sure no-op fetch in rget/rput is properly aligned

Signed-off-by: Joseph Schuchart <schuchart@hlrs.de>
(cherry picked from commit c1f7776341254b825a1b5f12fb93088c73c2c2ef)
Этот коммит содержится в:
Joseph Schuchart 2020-06-25 16:16:58 +02:00
родитель a3258afad9
Коммит d4219f8144

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

@ -904,9 +904,10 @@ int ompi_osc_ucx_rput(const void *origin_addr, int origin_count,
return OMPI_ERROR;
}
/* TODO: investigate whether ucp_worker_flush_nb is a better choice here */
internal_req = ucp_atomic_fetch_nb(ep, UCP_ATOMIC_FETCH_OP_FADD, 0,
&(module->req_result), sizeof(uint64_t),
remote_addr, rkey, req_completion);
remote_addr & (~0x7), rkey, req_completion);
if (UCS_PTR_IS_PTR(internal_req)) {
internal_req->external_req = ucx_req;
@ -965,9 +966,10 @@ int ompi_osc_ucx_rget(void *origin_addr, int origin_count,
return OMPI_ERROR;
}
/* TODO: investigate whether ucp_worker_flush_nb is a better choice here */
internal_req = ucp_atomic_fetch_nb(ep, UCP_ATOMIC_FETCH_OP_FADD, 0,
&(module->req_result), sizeof(uint64_t),
remote_addr, rkey, req_completion);
remote_addr & (~0x7), rkey, req_completion);
if (UCS_PTR_IS_PTR(internal_req)) {
internal_req->external_req = ucx_req;