Skip to content

Instantly share code, notes, and snippets.

@quasiben
Created February 19, 2021 12:48
Show Gist options
  • Save quasiben/b6e6990351be1cc6afcc03c163977df3 to your computer and use it in GitHub Desktop.
Save quasiben/b6e6990351be1cc6afcc03c163977df3 to your computer and use it in GitHub Desktop.
diff --git a/src/ucp/core/ucp_types.h b/src/ucp/core/ucp_types.h
index 458317530..e2047d339 100644
--- a/src/ucp/core/ucp_types.h
+++ b/src/ucp/core/ucp_types.h
@@ -38,7 +38,7 @@ typedef uint8_t ucp_lane_map_t;
/* Worker configuration index for endpoint and rkey */
typedef uint8_t ucp_worker_cfg_index_t;
-#define UCP_WORKER_MAX_EP_CONFIG 16
+#define UCP_WORKER_MAX_EP_CONFIG 64
#define UCP_WORKER_MAX_RKEY_CONFIG 128
#define UCP_WORKER_CFG_INDEX_NULL UINT8_MAX
diff --git a/src/uct/ib/rdmacm/rdmacm_cm.c b/src/uct/ib/rdmacm/rdmacm_cm.c
index 558208f97..03bade758 100644
--- a/src/uct/ib/rdmacm/rdmacm_cm.c
+++ b/src/uct/ib/rdmacm/rdmacm_cm.c
@@ -66,13 +66,13 @@ ucs_status_t uct_rdmacm_cm_reject(struct rdma_cm_id *id)
}
ucs_status_t uct_rdmacm_cm_get_cq(uct_rdmacm_cm_t *cm, struct ibv_context *verbs,
- uint32_t pd_key, struct ibv_cq **cq_p)
+ uint64_t key, struct ibv_cq **cq_p)
{
struct ibv_cq *cq;
khiter_t iter;
int ret;
- iter = kh_put(uct_rdmacm_cm_cqs, &cm->cqs, pd_key, &ret);
+ iter = kh_put(uct_rdmacm_cm_cqs, &cm->cqs, key, &ret);
if (ret == -1) {
ucs_error("cm %p: cannot allocate hash entry for CQ", cm);
return UCS_ERR_NO_MEMORY;
diff --git a/src/uct/ib/rdmacm/rdmacm_cm.h b/src/uct/ib/rdmacm/rdmacm_cm.h
index 35ab34bb1..2e6862c60 100644
--- a/src/uct/ib/rdmacm/rdmacm_cm.h
+++ b/src/uct/ib/rdmacm/rdmacm_cm.h
@@ -13,7 +13,7 @@
#include <ucs/datastruct/khash.h>
-KHASH_MAP_INIT_INT(uct_rdmacm_cm_cqs, struct ibv_cq*);
+KHASH_MAP_INIT_INT64(uct_rdmacm_cm_cqs, struct ibv_cq*);
/**
@@ -46,7 +46,7 @@ ucs_status_t uct_rdmacm_cm_ack_event(struct rdma_cm_event *event);
ucs_status_t uct_rdmacm_cm_reject(struct rdma_cm_id *id);
ucs_status_t uct_rdmacm_cm_get_cq(uct_rdmacm_cm_t *cm, struct ibv_context *verbs,
- uint32_t pd_key, struct ibv_cq **cq);
+ uint64_t key, struct ibv_cq **cq);
void uct_rdmacm_cm_cqs_cleanup(uct_rdmacm_cm_t *cm);
diff --git a/src/uct/ib/rdmacm/rdmacm_cm_ep.c b/src/uct/ib/rdmacm/rdmacm_cm_ep.c
index e33f10257..1c1978c81 100644
--- a/src/uct/ib/rdmacm/rdmacm_cm_ep.c
+++ b/src/uct/ib/rdmacm/rdmacm_cm_ep.c
@@ -197,8 +197,10 @@ uct_rdamcm_cm_ep_set_qp_num(struct rdma_conn_param *conn_param,
struct ibv_cq *cq;
ucs_status_t status;
- status = uct_rdmacm_cm_get_cq(uct_rdmacm_cm_ep_get_cm(cep), cep->id->verbs,
- cep->id->pd->handle, &cq);
+ status = uct_rdmacm_cm_get_cq(uct_rdmacm_cm_ep_get_cm(cep),
+ cep->id->verbs,
+ (uintptr_t)cep->id->pd->context->device,
+ &cq);
if (status != UCS_OK) {
return status;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment