Skip to content

Commit 5998739

Browse files
UCP/EP: refactoring of endpoint configuration comparison
- Add a helper function to compare lanes layout.
1 parent cb1ac86 commit 5998739

File tree

2 files changed

+32
-10
lines changed

2 files changed

+32
-10
lines changed

src/ucp/core/ucp_ep.c

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1952,11 +1952,10 @@ int ucp_ep_config_lane_is_equal(const ucp_ep_config_key_t *key1,
19521952
(config_lane1->seg_size == config_lane2->seg_size);
19531953
}
19541954

1955-
int ucp_ep_config_is_equal(const ucp_ep_config_key_t *key1,
1956-
const ucp_ep_config_key_t *key2)
1955+
static int ucp_ep_config_lanes_layout_is_equal(const ucp_ep_config_key_t *key1,
1956+
const ucp_ep_config_key_t *key2)
19571957
{
19581958
ucp_lane_index_t lane;
1959-
int i;
19601959

19611960
if ((key1->num_lanes != key2->num_lanes) ||
19621961
memcmp(key1->rma_lanes, key2->rma_lanes, sizeof(key1->rma_lanes)) ||
@@ -1965,18 +1964,12 @@ int ucp_ep_config_is_equal(const ucp_ep_config_key_t *key1,
19651964
memcmp(key1->rma_bw_lanes, key2->rma_bw_lanes,
19661965
sizeof(key1->rma_bw_lanes)) ||
19671966
memcmp(key1->amo_lanes, key2->amo_lanes, sizeof(key1->amo_lanes)) ||
1968-
(key1->rma_bw_md_map != key2->rma_bw_md_map) ||
1969-
(key1->rma_md_map != key2->rma_md_map) ||
1970-
(key1->reachable_md_map != key2->reachable_md_map) ||
19711967
(key1->am_lane != key2->am_lane) ||
19721968
(key1->tag_lane != key2->tag_lane) ||
19731969
(key1->wireup_msg_lane != key2->wireup_msg_lane) ||
19741970
(key1->cm_lane != key2->cm_lane) ||
19751971
(key1->keepalive_lane != key2->keepalive_lane) ||
1976-
(key1->rkey_ptr_lane != key2->rkey_ptr_lane) ||
1977-
(key1->err_mode != key2->err_mode) ||
1978-
(key1->flags != key2->flags) ||
1979-
(key1->dst_version != key2->dst_version)) {
1972+
(key1->rkey_ptr_lane != key2->rkey_ptr_lane)) {
19801973
return 0;
19811974
}
19821975

@@ -1986,6 +1979,27 @@ int ucp_ep_config_is_equal(const ucp_ep_config_key_t *key1,
19861979
}
19871980
}
19881981

1982+
return 1;
1983+
}
1984+
1985+
int ucp_ep_config_is_equal(const ucp_ep_config_key_t *key1,
1986+
const ucp_ep_config_key_t *key2)
1987+
{
1988+
int i;
1989+
1990+
if (!ucp_ep_config_lanes_layout_is_equal(key1, key2)) {
1991+
return 0;
1992+
}
1993+
1994+
if ((key1->rma_bw_md_map != key2->rma_bw_md_map) ||
1995+
(key1->rma_md_map != key2->rma_md_map) ||
1996+
(key1->reachable_md_map != key2->reachable_md_map) ||
1997+
(key1->err_mode != key2->err_mode) ||
1998+
(key1->flags != key2->flags) ||
1999+
(key1->dst_version != key2->dst_version)) {
2000+
return 0;
2001+
}
2002+
19892003
for (i = 0; i < ucs_popcount(key1->reachable_md_map); ++i) {
19902004
if (key1->dst_md_cmpts[i] != key2->dst_md_cmpts[i]) {
19912005
return 0;

src/ucp/core/ucp_ep.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -770,6 +770,14 @@ int ucp_ep_config_lane_is_equal(const ucp_ep_config_key_t *key1,
770770
const ucp_ep_config_key_t *key2,
771771
ucp_lane_index_t lane);
772772

773+
/**
774+
* @brief Compare two endpoint configurations.
775+
*
776+
* @param [in] key1 First config key to compare.
777+
* @param [in] key2 Second config key to compare.
778+
*
779+
* @return Whether the configurations are equal.
780+
*/
773781
int ucp_ep_config_is_equal(const ucp_ep_config_key_t *key1,
774782
const ucp_ep_config_key_t *key2);
775783

0 commit comments

Comments
 (0)