From cc6519eb0bca7870788e7d7b40f2f2a1ce0bb25e Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 21 Jan 2020 14:51:05 -0500 Subject: [PATCH] import libfabric-1.9.0rc1-1.el8 --- .gitignore | 1 + .libfabric.metadata | 1 + ...-Fix-scalalble-endpoint-handling-in-.patch | 40 +++++ ...-Clean-up-connection-state-in-fi_av_.patch | 112 ++++++++++++ SPECS/libfabric.spec | 168 ++++++++++++++++++ 5 files changed, 322 insertions(+) create mode 100644 .gitignore create mode 100644 .libfabric.metadata create mode 100644 SOURCES/0001-Revert-prov-psm2-Fix-scalalble-endpoint-handling-in-.patch create mode 100644 SOURCES/0002-Revert-prov-psm2-Clean-up-connection-state-in-fi_av_.patch create mode 100644 SPECS/libfabric.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..53b19d2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/libfabric-1.9.0rc1.tar.bz2 diff --git a/.libfabric.metadata b/.libfabric.metadata new file mode 100644 index 0000000..8d2c412 --- /dev/null +++ b/.libfabric.metadata @@ -0,0 +1 @@ +5220280bc4cdd92f7729ecfa26d10091b27b3526 SOURCES/libfabric-1.9.0rc1.tar.bz2 diff --git a/SOURCES/0001-Revert-prov-psm2-Fix-scalalble-endpoint-handling-in-.patch b/SOURCES/0001-Revert-prov-psm2-Fix-scalalble-endpoint-handling-in-.patch new file mode 100644 index 0000000..d768f95 --- /dev/null +++ b/SOURCES/0001-Revert-prov-psm2-Fix-scalalble-endpoint-handling-in-.patch @@ -0,0 +1,40 @@ +From 0e3df6e32ba46fda98979e2e4fb1997d17f04b6e Mon Sep 17 00:00:00 2001 +From: Honggang Li +Date: Thu, 4 Jul 2019 03:40:09 -0400 +Subject: [PATCH 1/2] Revert "prov/psm2: Fix scalalble endpoint handling in + fi_av_remove()" + +This reverts commit 2bb4bcba5a78db20bfc3f3505763e1a3b03dd353. +--- + prov/psm2/src/psmx2_av.c | 7 ++----- + 1 file changed, 2 insertions(+), 5 deletions(-) + +diff --git a/prov/psm2/src/psmx2_av.c b/prov/psm2/src/psmx2_av.c +index bb4fd615c..2dabf93bb 100644 +--- a/prov/psm2/src/psmx2_av.c ++++ b/prov/psm2/src/psmx2_av.c +@@ -678,19 +678,16 @@ STATIC int psmx2_av_remove(struct fid_av *av, fi_addr_t *fi_addr, size_t count, + av_priv->conn_info[j].epaddrs[idx] = NULL; + } + } else { +- if (!av_priv->sep_info[idx].epids) +- continue; +- + for (j = 0; j < av_priv->max_trx_ctxt; j++) { + if (!av_priv->conn_info[j].trx_ctxt) + continue; + +- if (!av_priv->conn_info[j].sepaddrs[idx]) ++ if (!av_priv->conn_info[j].sepaddrs) + continue; + + for (k = 0; k < av_priv->sep_info[idx].ctxt_cnt; k++) { + err = psmx2_av_disconnect_addr( +- j, av_priv->sep_info[idx].epids[k], ++ j, av_priv->table[idx].epid, + av_priv->conn_info[j].sepaddrs[idx][k]); + if (!err) + av_priv->conn_info[j].sepaddrs[idx][k] = NULL; +-- +2.20.1 + diff --git a/SOURCES/0002-Revert-prov-psm2-Clean-up-connection-state-in-fi_av_.patch b/SOURCES/0002-Revert-prov-psm2-Clean-up-connection-state-in-fi_av_.patch new file mode 100644 index 0000000..0119275 --- /dev/null +++ b/SOURCES/0002-Revert-prov-psm2-Clean-up-connection-state-in-fi_av_.patch @@ -0,0 +1,112 @@ +From 8bafb0be08d93743db66398471723fe49983df1b Mon Sep 17 00:00:00 2001 +From: Honggang Li +Date: Thu, 4 Jul 2019 03:48:39 -0400 +Subject: [PATCH 2/2] Revert "prov/psm2: Clean up connection state in + fi_av_remove" + +This reverts commit 5b892bd43c5a824d1e5709c3c1f686e48ee4e373. + + Conflicts: + prov/psm2/src/psmx2_av.c + +Simple context conflict. +--- + prov/psm2/src/psmx2_av.c | 78 ---------------------------------------- + 1 file changed, 78 deletions(-) + +diff --git a/prov/psm2/src/psmx2_av.c b/prov/psm2/src/psmx2_av.c +index 2dabf93bb..aaa4624e4 100644 +--- a/prov/psm2/src/psmx2_av.c ++++ b/prov/psm2/src/psmx2_av.c +@@ -616,88 +616,10 @@ out: + return ret; + } + +-static int psmx2_av_disconnect_addr(int trx_ctxt_id, psm2_epid_t epid, +- psm2_epaddr_t epaddr) +-{ +- struct psmx2_epaddr_context *epaddr_context; +- psm2_error_t errors; +- int err; +- +- if (!epaddr) +- return 0; +- +- FI_INFO(&psmx2_prov, FI_LOG_AV, +- "trx_ctxt_id %d epid %lx epaddr %p\n", trx_ctxt_id, epid, epaddr); +- +- epaddr_context = psm2_epaddr_getctxt(epaddr); +- if (!epaddr_context) +- return -FI_EINVAL; +- +- if (trx_ctxt_id != epaddr_context->trx_ctxt->id) +- return -FI_EINVAL; +- +- if (epid != epaddr_context->epid) +- return -FI_EINVAL; +- +- err = psm2_ep_disconnect2(epaddr_context->trx_ctxt->psm2_ep, 1, &epaddr, +- NULL, &errors, PSM2_EP_DISCONNECT_FORCE, 0); +- +- return psmx2_errno(err); +-} +- + DIRECT_FN + STATIC int psmx2_av_remove(struct fid_av *av, fi_addr_t *fi_addr, size_t count, + uint64_t flags) + { +- struct psmx2_fid_av *av_priv; +- int idx, i, j, k; +- int err; +- +- av_priv = container_of(av, struct psmx2_fid_av, av); +- +- av_priv->domain->av_lock_fn(&av_priv->lock, 1); +- +- for (i = 0; i < count; i++) { +- idx = PSMX2_ADDR_IDX(fi_addr[i]); +- if (idx >= av_priv->hdr->last) { +- FI_WARN(&psmx2_prov, FI_LOG_AV, +- "AV index out of range: fi_addr %lx idx %d last %ld\n", +- fi_addr[i], idx, av_priv->hdr->last); +- continue; +- } +- +- if (av_priv->table[idx].type == PSMX2_EP_REGULAR) { +- for (j = 0; j < av_priv->max_trx_ctxt; j++) { +- if (!av_priv->conn_info[j].trx_ctxt) +- continue; +- +- err = psmx2_av_disconnect_addr( +- j, av_priv->table[idx].epid, +- av_priv->conn_info[j].epaddrs[idx]); +- if (!err) +- av_priv->conn_info[j].epaddrs[idx] = NULL; +- } +- } else { +- for (j = 0; j < av_priv->max_trx_ctxt; j++) { +- if (!av_priv->conn_info[j].trx_ctxt) +- continue; +- +- if (!av_priv->conn_info[j].sepaddrs) +- continue; +- +- for (k = 0; k < av_priv->sep_info[idx].ctxt_cnt; k++) { +- err = psmx2_av_disconnect_addr( +- j, av_priv->table[idx].epid, +- av_priv->conn_info[j].sepaddrs[idx][k]); +- if (!err) +- av_priv->conn_info[j].sepaddrs[idx][k] = NULL; +- } +- } +- } +- } +- +- av_priv->domain->av_unlock_fn(&av_priv->lock, 1); +- + return 0; + } + +-- +2.20.1 + diff --git a/SPECS/libfabric.spec b/SPECS/libfabric.spec new file mode 100644 index 0000000..4d21237 --- /dev/null +++ b/SPECS/libfabric.spec @@ -0,0 +1,168 @@ +Name: libfabric +Version: 1.9.0rc1 +Release: 1%{?dist} +Summary: Open Fabric Interfaces + +License: BSD or GPLv2 +URL: http://ofiwg.github.io/libfabric/ +Source0: https://github.com/ofiwg/libfabric/releases/download/v%{version}/libfabric-%{version}.tar.bz2 +Patch1: 0001-Revert-prov-psm2-Fix-scalalble-endpoint-handling-in-.patch +Patch2: 0002-Revert-prov-psm2-Clean-up-connection-state-in-fi_av_.patch + +BuildRequires: libnl3-devel +# RDMA not available on 32-bit ARM: #1484155 +%ifnarch %{arm} +BuildRequires: libibverbs-devel +BuildRequires: librdmacm-devel +%endif +%ifarch x86_64 +%if 0%{?fedora} || ( 0%{?rhel} >= 6 && 0%{?rhel} <= 7 ) +BuildRequires: infinipath-psm-devel +%endif +%if 0%{?fedora} >= 25 || 0%{?rhel} >= 7 +BuildRequires: libpsm2-devel +%endif +%endif + +%description +OpenFabrics Interfaces (OFI) is a framework focused on exporting fabric +communication services to applications. OFI is best described as a collection +of libraries and applications used to export fabric services. The key +components of OFI are: application interfaces, provider libraries, kernel +services, daemons, and test applications. + +Libfabric is a core component of OFI. It is the library that defines and +exports the user-space API of OFI, and is typically the only software that +applications deal with directly. It works in conjunction with provider +libraries, which are often integrated directly into libfabric. + + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + + +%prep +%setup -q +%patch1 -p1 +%patch2 -p1 + +%build +%configure --disable-static --disable-silent-rules +%make_build + + +%install +%make_install +find %{buildroot} -name '*.la' -exec rm -f {} ';' + + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + + +%files +%license COPYING +%{_bindir}/fi_info +%{_bindir}/fi_pingpong +%{_bindir}/fi_strerror +%{_libdir}/*.so.1* +%{_mandir}/man1/*.1* + +%files devel +%license COPYING +%doc AUTHORS README +# We knowingly share this with kernel-headers and librdmacm-devel +# https://github.com/ofiwg/libfabric/issues/1277 +%{_includedir}/rdma/ +%{_libdir}/*.so +%{_libdir}/pkgconfig/%{name}.pc +%{_mandir}/man3/*.3* +%{_mandir}/man7/*.7* + + +%changelog +* Tue Nov 05 2019 Honggang Li - 1.9.0rc1-1 +- Rebase to upstream release v1.9.0rc1 +- Resolves: bz1719678 + +* Wed Aug 14 2019 Honggang Li - 1.8.0-2 +- Fix segment fault issue for linux container +- Resolves: bz1731749 + +* Fri Jul 12 2019 Honggang Li - 1.8.0-1 +- Rebase to upstream release v1.8.0 +- Resolves: bz1660621 + +* Mon Dec 10 2018 Honggang Li - 1.6.2-1 +- Rebase to upstream release v1.6.2 +- Resolves: bz1654870 + +* Mon Oct 8 2018 Honggang Li - 1.6.1-3 +- Revert a psm2 commit to avoid sporadic assertion failures +- Resolves: bz1627981 + +* Sun Jul 1 2018 Honggang Li - 1.6.1-2 +- No longer support infinipath-psm + +* Fri Jun 22 2018 Honggang Li - 1.6.1-1 +- Rebase to latest upstream release 1.6.1 +- Resolves: bz1550404 + +* Thu Mar 15 2018 Orion Poplawski - 1.6.0-1 +- Update to 1.6.0 + +* Wed Feb 07 2018 Fedora Release Engineering - 1.4.2-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Aug 23 2017 Adam Williamson - 1.4.2-5 +- Disable RDMA support on 32-bit ARM (#1484155) + +* Thu Aug 03 2017 Fedora Release Engineering - 1.4.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Sun Jul 30 2017 Florian Weimer - 1.4.2-3 +- Rebuild with binutils fix for ppc64le (#1475636) + +* Wed Jul 26 2017 Fedora Release Engineering - 1.4.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed Jul 11 2017 Orion Poplawski - 1.4.2-1 +- Update to 1.4.2 + +* Mon Apr 10 2017 Orion Poplawski - 1.4.1-1 +- Update to 1.4.1 + +* Fri Feb 10 2017 Fedora Release Engineering - 1.4.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Nov 3 2016 Orion Poplawski - 1.4.0-1 +- Update to 1.4.0 + +* Thu Jul 21 2016 Orion Poplawski - 1.3.0-3 +- Rebuild for aarch64 glibc update + +* Tue May 31 2016 Orion Poplawski - 1.3.0-2 +- Use psm/psm2 if possible on Fedora (bug #1340988) + +* Tue Apr 12 2016 Orion Poplawski - 1.3.0-1 +- Update to 1.3.0 + +* Wed Mar 9 2016 Orion Poplawski - 1.2.0-1 +- Update to 1.2.0 +- Use psm/psm2 if possible on EL +- Add upstream patch to fix non-x86 builds + +* Thu Feb 04 2016 Fedora Release Engineering - 1.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Aug 26 2015 Orion Poplawski - 1.1.0-1 +- Update to 1.1.0 + +* Mon Jul 20 2015 Orion Poplawski - 1.0.0-1 +- Initial package