From 7324de9f09914ec835121e5753730ca1609e873c Mon Sep 17 00:00:00 2001 From: yaoguangzhong Date: Fri, 30 Dec 2022 11:30:25 +0800 Subject: [PATCH] backport prov/rxm: fix a bug in matching directed receives From: Arun C Ilango Signed-off-by: Guangzhong Yao --- ...-a-bug-in-matching-directed-receives.patch | 48 +++++++++++++++++++ libfabric.spec | 6 ++- 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 backport-prov-rxm-fix-a-bug-in-matching-directed-receives.patch diff --git a/backport-prov-rxm-fix-a-bug-in-matching-directed-receives.patch b/backport-prov-rxm-fix-a-bug-in-matching-directed-receives.patch new file mode 100644 index 0000000..17aea67 --- /dev/null +++ b/backport-prov-rxm-fix-a-bug-in-matching-directed-receives.patch @@ -0,0 +1,48 @@ +From d6fc71f6920638a468d1b1a91a3dbc55f2ac95d5 Mon Sep 17 00:00:00 2001 +From: Arun C Ilango +Date: Fri, 11 May 2018 10:21:31 -0700 +Subject: [PATCH] prov/rxm: fix a bug in matching directed receives + +Fix a bug where received messages whose source hasn't been determined +were matching with directed receives. + +Signed-off-by: Arun C Ilango +(cherry picked from commit 456d3c72ba63d20ece8f3deb00e323876b4c2934) +--- + prov/rxm/src/rxm.h | 5 ++--- + prov/rxm/src/rxm_ep.c | 2 +- + 2 files changed, 3 insertions(+), 4 deletions(-) + +diff --git a/prov/rxm/src/rxm.h b/prov/rxm/src/rxm.h +index 128746a54..d4b8ce47b 100644 +--- a/prov/rxm/src/rxm.h ++++ b/prov/rxm/src/rxm.h +@@ -376,10 +376,9 @@ extern struct fi_tx_attr rxm_tx_attr; + extern struct fi_rx_attr rxm_rx_attr; + + // TODO move to common code? +-static inline int rxm_match_addr(fi_addr_t addr, fi_addr_t match_addr) ++static inline int rxm_match_addr(fi_addr_t recv_addr, fi_addr_t rx_addr) + { +- return (addr == FI_ADDR_UNSPEC) || (match_addr == FI_ADDR_UNSPEC) || +- (addr == match_addr); ++ return (recv_addr == FI_ADDR_UNSPEC) || (recv_addr == rx_addr); + } + + static inline int rxm_match_tag(uint64_t tag, uint64_t ignore, uint64_t match_tag) +diff --git a/prov/rxm/src/rxm_ep.c b/prov/rxm/src/rxm_ep.c +index 975d802e6..f090b3f15 100644 +--- a/prov/rxm/src/rxm_ep.c ++++ b/prov/rxm/src/rxm_ep.c +@@ -76,7 +76,7 @@ static int rxm_match_unexp_msg(struct dlist_entry *item, const void *arg) + struct rxm_unexp_msg *unexp_msg; + + unexp_msg = container_of(item, struct rxm_unexp_msg, entry); +- return rxm_match_addr(unexp_msg->addr, attr->addr); ++ return rxm_match_addr(attr->addr, unexp_msg->addr); + } + + static int rxm_match_unexp_msg_tagged(struct dlist_entry *item, const void *arg) +-- +2.27.0 + diff --git a/libfabric.spec b/libfabric.spec index 00241f2..e981a13 100644 --- a/libfabric.spec +++ b/libfabric.spec @@ -1,11 +1,12 @@ Name: libfabric Version: 1.6.1 -Release: 5 +Release: 6 Summary: A core component of OpenFabric Interfaces License: BSD or GPLv2 URL: http://ofiwg.github.io/libfabric/ Source0: https://github.com/ofiwg/libfabric/releases/download/v%{version}/%{name}-%{version}.tar.bz2 Patch0001: backport-libfabric-fix-multiple-definition.patch +Patch0002: backport-prov-rxm-fix-a-bug-in-matching-directed-receives.patch BuildRequires: gcc libibverbs-devel libnl3-devel librdmacm-devel chrpath @@ -77,6 +78,9 @@ chrpath -d %{buildroot}%{_bindir}/fi_* %changelog +* Fri Dec 30 2022 Guangzhong Yao -1.6.1-6 +- backport patch: fix a bug in matching directed receives + * Fri Sep 10 2021 gongzhengtang -1.6.1-5 - fix rpath -- Gitee