From 355cea592a45a9d5077285fa5adee6f013b5201f Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Aug 06 2019 10:58:53 +0000 Subject: import libfabric-1.7.0-1.el7 --- diff --git a/.gitignore b/.gitignore index 12085a8..f9af3ea 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/libfabric-1.6.1.tar.gz +SOURCES/libfabric-1.7.0.tar.bz2 diff --git a/.libfabric.metadata b/.libfabric.metadata index 0f2ffa3..f405181 100644 --- a/.libfabric.metadata +++ b/.libfabric.metadata @@ -1 +1 @@ -f5933c41c05473aff1050db6cc6a5bd895202c0f SOURCES/libfabric-1.6.1.tar.gz +3a7d939d60d87ca9629a53ff2e4ca72efe5ab750 SOURCES/libfabric-1.7.0.tar.bz2 diff --git a/SOURCES/0001-Revert-prov-psm2-Avoid-long-delay-in-psm2_ep_close.patch b/SOURCES/0001-Revert-prov-psm2-Avoid-long-delay-in-psm2_ep_close.patch deleted file mode 100644 index ba9867d..0000000 --- a/SOURCES/0001-Revert-prov-psm2-Avoid-long-delay-in-psm2_ep_close.patch +++ /dev/null @@ -1,195 +0,0 @@ -From dafc07e38c7c2af1dec371276dec08da39e1636a Mon Sep 17 00:00:00 2001 -From: Jianxin Xiong -Date: Wed, 12 Sep 2018 08:53:32 -0700 -Subject: [PATCH] Revert "prov/psm2: Avoid long delay in psm2_ep_close" - -This reverts commit 7741df0db37085c1a49c05185c9b3f8170981661. - -Sporadic assertion failures have been observed inside psm2_ep_disconnect2(). -Disable the patch until the issue is fixed. - -Signed-off-by: Jianxin Xiong ---- - prov/psm2/src/psmx2_av.c | 79 ++++++++++++++++++------------------------ - prov/psm2/src/psmx2_trx_ctxt.c | 32 +++-------------- - 2 files changed, 39 insertions(+), 72 deletions(-) - -diff --git a/prov/psm2/src/psmx2_av.c b/prov/psm2/src/psmx2_av.c -index 815407405..63c6e5beb 100644 ---- a/prov/psm2/src/psmx2_av.c -+++ b/prov/psm2/src/psmx2_av.c -@@ -32,40 +32,6 @@ - - #include "psmx2.h" - --static void psmx2_set_epaddr_context(struct psmx2_trx_ctxt *trx_ctxt, -- psm2_epid_t epid, psm2_epaddr_t epaddr) --{ -- struct psmx2_epaddr_context *context; -- -- context = (void *)psm2_epaddr_getctxt(epaddr); -- if (context) { -- if (context->trx_ctxt != trx_ctxt || context->epid != epid) { -- FI_WARN(&psmx2_prov, FI_LOG_AV, -- "trx_ctxt or epid doesn't match\n"); -- context = NULL; -- } -- } -- -- if (context) -- return; -- -- context = malloc(sizeof *context); -- if (!context) { -- FI_WARN(&psmx2_prov, FI_LOG_AV, -- "cannot allocate context\n"); -- return; -- } -- -- context->trx_ctxt = trx_ctxt; -- context->epid = epid; -- context->epaddr = epaddr; -- psm2_epaddr_setctxt(epaddr, context); -- -- psmx2_lock(&trx_ctxt->peer_lock, 2); -- dlist_insert_before(&context->entry, &trx_ctxt->peer_list); -- psmx2_unlock(&trx_ctxt->peer_lock, 2); --} -- - /* - * SEP address query protocol: - * -@@ -118,8 +84,6 @@ int psmx2_am_sep_handler(psm2_am_token_t token, psm2_amarg_t *args, - struct psmx2_fid_sep *sep; - struct psmx2_sep_query *req; - struct psmx2_fid_av *av; -- psm2_epaddr_t src_epaddr; -- psm2_epid_t src_epid; - psm2_epid_t *epids; - psm2_epid_t *buf = NULL; - int buflen; -@@ -129,15 +93,6 @@ int psmx2_am_sep_handler(psm2_am_token_t token, psm2_amarg_t *args, - cmd = PSMX2_AM_GET_OP(args[0].u32w0); - domain = trx_ctxt->domain; - -- /* -- * the implicit connection to the AM source needs also to be disconnected -- * to avoid long delay inside psm2_ep_close. make sure the source is added -- * to the peer list. -- */ -- psm2_am_get_source(token, &src_epaddr); -- psm2_epaddr_to_epid(src_epaddr, &src_epid); -- psmx2_set_epaddr_context(trx_ctxt, src_epid, src_epaddr); -- - switch (cmd) { - case PSMX2_AM_REQ_SEP_QUERY: - sep_id = args[0].u32w1; -@@ -226,6 +181,40 @@ static inline double psmx2_conn_timeout(int sec) - return sec * 1e9; - } - -+static void psmx2_set_epaddr_context(struct psmx2_trx_ctxt *trx_ctxt, -+ psm2_epid_t epid, psm2_epaddr_t epaddr) -+{ -+ struct psmx2_epaddr_context *context; -+ -+ context = (void *)psm2_epaddr_getctxt(epaddr); -+ if (context) { -+ if (context->trx_ctxt != trx_ctxt || context->epid != epid) { -+ FI_WARN(&psmx2_prov, FI_LOG_AV, -+ "trx_ctxt or epid doesn't match\n"); -+ context = NULL; -+ } -+ } -+ -+ if (context) -+ return; -+ -+ context = malloc(sizeof *context); -+ if (!context) { -+ FI_WARN(&psmx2_prov, FI_LOG_AV, -+ "cannot allocate context\n"); -+ return; -+ } -+ -+ context->trx_ctxt = trx_ctxt; -+ context->epid = epid; -+ context->epaddr = epaddr; -+ psm2_epaddr_setctxt(epaddr, context); -+ -+ psmx2_lock(&trx_ctxt->peer_lock, 2); -+ dlist_insert_before(&context->entry, &trx_ctxt->peer_list); -+ psmx2_unlock(&trx_ctxt->peer_lock, 2); -+} -+ - int psmx2_epid_to_epaddr(struct psmx2_trx_ctxt *trx_ctxt, - psm2_epid_t epid, psm2_epaddr_t *epaddr) - { -diff --git a/prov/psm2/src/psmx2_trx_ctxt.c b/prov/psm2/src/psmx2_trx_ctxt.c -index 6dd3196e5..709ced94f 100644 ---- a/prov/psm2/src/psmx2_trx_ctxt.c -+++ b/prov/psm2/src/psmx2_trx_ctxt.c -@@ -124,10 +124,6 @@ void psmx2_trx_ctxt_disconnect_peers(struct psmx2_trx_ctxt *trx_ctxt) - struct psmx2_epaddr_context *peer; - struct dlist_entry peer_list; - psm2_amarg_t arg; -- psm2_epaddr_t *epaddrs; -- psm2_error_t *errors; -- int peer_count = 0; -- int i = 0; - - arg.u32w0 = PSMX2_AM_REQ_TRX_CTXT_DISCONNECT; - -@@ -137,36 +133,17 @@ void psmx2_trx_ctxt_disconnect_peers(struct psmx2_trx_ctxt *trx_ctxt) - dlist_foreach_safe(&trx_ctxt->peer_list, item, tmp) { - dlist_remove(item); - dlist_insert_before(item, &peer_list); -- peer_count++; - } - psmx2_unlock(&trx_ctxt->peer_lock, 2); - -- if (!peer_count) -- return; -- -- epaddrs = malloc(peer_count * sizeof(*epaddrs)); -- errors = malloc(peer_count * sizeof(*errors)); -- - dlist_foreach_safe(&peer_list, item, tmp) { - peer = container_of(item, struct psmx2_epaddr_context, entry); -- if (epaddrs) -- epaddrs[i++] = peer->epaddr; -- if (psmx2_env.disconnect) { -- FI_INFO(&psmx2_prov, FI_LOG_CORE, "epaddr: %p\n", peer->epaddr); -- psm2_am_request_short(peer->epaddr, PSMX2_AM_TRX_CTXT_HANDLER, -- &arg, 1, NULL, 0, 0, NULL, NULL); -- } -+ FI_INFO(&psmx2_prov, FI_LOG_CORE, "epaddr: %p\n", peer->epaddr); -+ psm2_am_request_short(peer->epaddr, PSMX2_AM_TRX_CTXT_HANDLER, -+ &arg, 1, NULL, 0, 0, NULL, NULL); - psm2_epaddr_setctxt(peer->epaddr, NULL); - free(peer); - } -- -- /* disconnect locally to avoid long delay inside psm2_ep_close() */ -- if (epaddrs && errors) -- psm2_ep_disconnect2(trx_ctxt->psm2_ep, peer_count, epaddrs, NULL, -- errors, PSM2_EP_DISCONNECT_FORCE, 0); -- -- free(errors); -- free(epaddrs); - } - - static const char *psmx2_usage_flags_to_string(int usage_flags) -@@ -203,7 +180,8 @@ void psmx2_trx_ctxt_free(struct psmx2_trx_ctxt *trx_ctxt, int usage_flags) - dlist_remove(&trx_ctxt->entry); - psmx2_unlock(&trx_ctxt->domain->trx_ctxt_lock, 1); - -- psmx2_trx_ctxt_disconnect_peers(trx_ctxt); -+ if (psmx2_env.disconnect) -+ psmx2_trx_ctxt_disconnect_peers(trx_ctxt); - - if (trx_ctxt->am_initialized) - psmx2_am_fini(trx_ctxt); --- -2.14.4 - diff --git a/SPECS/libfabric.spec b/SPECS/libfabric.spec index e5ff731..975aab1 100644 --- a/SPECS/libfabric.spec +++ b/SPECS/libfabric.spec @@ -1,12 +1,11 @@ Name: libfabric -Version: 1.6.1 -Release: 2%{?dist} +Version: 1.7.0 +Release: 1%{?dist} Summary: User-space RDMA Fabric Interfaces Group: System Environment/Libraries License: GPLv2 or BSD Url: http://www.github.com/ofiwg/libfabric -Source: %{name}-%{version}.tar.gz -Patch1: 0001-Revert-prov-psm2-Avoid-long-delay-in-psm2_ep_close.patch +Source: %{name}-%{version}.tar.bz2 BuildRequires: librdmacm-devel BuildRequires: libibverbs-devel >= 1.2.0 @@ -42,7 +41,6 @@ Development files for the libfabric library. %prep %setup -q -%patch1 -p1 %build @@ -79,6 +77,10 @@ rm -f %{buildroot}%{_libdir}/*.la %{_mandir}/man7/* %changelog +* Thu Jan 31 2019 Honggang Li - 1.7.0-1 +- Rebase to latest release 1.7.0 +- Resolves: bz1637246 + * Sat Sep 22 2018 Honggang Li - 1.6.1-2 - Revert a psm2 commit to avoid sporadic assertion failures - Resolves: bz1631874