Skip to content

Commit

Permalink
Merge pull request #7403 from petro-rudenko/ucp/rereg-mem-on-cm-switch
Browse files Browse the repository at this point in the history
UCP: Reregister memh on CM switch.
  • Loading branch information
yosefe authored Sep 19, 2021
2 parents f98ff97 + d3f9f9c commit 85d3659
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 1 deletion.
1 change: 1 addition & 0 deletions src/ucp/proto/proto_am.inl
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,7 @@ ucs_status_t ucp_do_am_zcopy_single(uct_pending_req_t *self, uint8_t am_id,
ucs_status_t status;

req->send.lane = ucp_ep_get_am_lane(ep);
ucp_send_request_add_reg_lane(req, req->send.lane);

status = ucp_am_zcopy_common(req, hdr, hdr_size, user_hdr_desc,
user_hdr_size, 0ul, iov, iovcnt, max_iov,
Expand Down
37 changes: 36 additions & 1 deletion test/gtest/ucp/test_ucp_sockaddr.cc
Original file line number Diff line number Diff line change
Expand Up @@ -571,7 +571,7 @@ class test_ucp_sockaddr : public ucp_test {
m_test_addr.get_port());
EXPECT_EQ(m_test_addr, attr.local_sockaddr);
}

void one_sided_disconnect(entity &e, enum ucp_ep_close_mode mode) {
void *req = e.disconnect_nb(0, 0, mode);
ucs_time_t deadline = ucs::get_deadline();
Expand Down Expand Up @@ -1351,6 +1351,41 @@ UCS_TEST_P(test_ucp_sockaddr_different_tl_rsc, unset_devices_and_communicate)

UCP_INSTANTIATE_TEST_CASE_TLS(test_ucp_sockaddr_different_tl_rsc, all, "all")

class test_ucp_sockaddr_cm_switch : public test_ucp_sockaddr {
protected:
ucp_rsc_index_t get_num_cms()
{
const ucp_worker_h worker = sender().worker();
ucp_rsc_index_t num_cm_cmpts = ucp_worker_num_cm_cmpts(worker);
ucp_rsc_index_t num_cms = 0;

for (ucp_rsc_index_t cm_idx = 0; cm_idx < num_cm_cmpts; ++cm_idx) {
if (worker->cms[cm_idx].cm != NULL) {
num_cms++;
}
}

return num_cms;
}

void check_cm_fallback()
{
if (get_num_cms() < 2) {
UCS_TEST_SKIP_R("No CM for fallback to");
}
}
};

UCS_TEST_P(test_ucp_sockaddr_cm_switch,
rereg_memory_on_cm_switch,
"ZCOPY_THRESH=0", "TLS=rc",
"SOCKADDR_TLS_PRIORITY=rdmacm,tcp")
{
check_cm_fallback();
listen_and_communicate(false, SEND_DIRECTION_BIDI);
}

UCP_INSTANTIATE_TEST_CASE_TLS(test_ucp_sockaddr_cm_switch, all, "all")

class test_ucp_sockaddr_cm_private_data : public test_ucp_sockaddr {
protected:
Expand Down

0 comments on commit 85d3659

Please sign in to comment.