From 01c93f0c59d9ee3853490a84ce4582186242aede Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Apr 10 2018 05:50:27 +0000 Subject: import libfabric-1.5.3-1.el7 --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ce21a5 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/libfabric-1.5.3.tar.gz diff --git a/.libfabric.metadata b/.libfabric.metadata new file mode 100644 index 0000000..7d36d88 --- /dev/null +++ b/.libfabric.metadata @@ -0,0 +1 @@ +8d94f41e7b5b33e18865d30cd05ebb668b7a4e44 SOURCES/libfabric-1.5.3.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index 98f42b4..0000000 --- a/README.md +++ /dev/null @@ -1,4 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/0001-prov-verbs-Add-support-of-different-CQ-formats-for-t.patch b/SOURCES/0001-prov-verbs-Add-support-of-different-CQ-formats-for-t.patch new file mode 100644 index 0000000..4620283 --- /dev/null +++ b/SOURCES/0001-prov-verbs-Add-support-of-different-CQ-formats-for-t.patch @@ -0,0 +1,184 @@ +From d5b9233daf158d2402f6dbc81ea80b07d0fe9003 Mon Sep 17 00:00:00 2001 +From: Dmitry Gladkov +Date: Fri, 22 Dec 2017 17:20:20 +0300 +Subject: [PATCH] prov/verbs: Add support of different CQ formats for the + verbs/RDM + +Signed-off-by: Dmitry Gladkov +--- + prov/verbs/src/ep_rdm/verbs_cq_ep_rdm.c | 70 +++++++++++++++++++++++++++------ + prov/verbs/src/ep_rdm/verbs_rdm.h | 1 - + prov/verbs/src/fi_verbs.h | 23 ++++++----- + 3 files changed, 73 insertions(+), 21 deletions(-) + +diff --git a/prov/verbs/src/ep_rdm/verbs_cq_ep_rdm.c b/prov/verbs/src/ep_rdm/verbs_cq_ep_rdm.c +index 5b4065fb..3612851b 100644 +--- a/prov/verbs/src/ep_rdm/verbs_cq_ep_rdm.c ++++ b/prov/verbs/src/ep_rdm/verbs_cq_ep_rdm.c +@@ -51,7 +51,6 @@ static ssize_t fi_ibv_rdm_tagged_cq_readfrom(struct fid_cq *cq, void *buf, + { + struct fi_ibv_rdm_cq *_cq = + container_of(cq, struct fi_ibv_rdm_cq, cq_fid); +- struct fi_cq_tagged_entry *entry = buf; + struct fi_ibv_rdm_request *cq_entry; + size_t ret = 0; + +@@ -66,13 +65,7 @@ static ssize_t fi_ibv_rdm_tagged_cq_readfrom(struct fid_cq *cq, void *buf, + + src_addr[ret] = + _cq->ep->av->conn_to_addr(_cq->ep, cq_entry->minfo.conn); +- entry[ret].op_context = cq_entry->context; +- entry[ret].flags = (cq_entry->comp_flags & ~FI_COMPLETION); +- entry[ret].len = cq_entry->len; +- entry[ret].buf = (cq_entry->comp_flags & FI_TRANSMIT) ? +- cq_entry->src_addr : cq_entry->dest_buf; +- entry[ret].data = cq_entry->imm; +- entry[ret].tag = cq_entry->minfo.tag; ++ _cq->read_entry(cq_entry, ret, buf); + + if (cq_entry->state.eager == FI_IBV_STATE_EAGER_READY_TO_FREE) { + FI_IBV_RDM_DBG_REQUEST("to_pool: ", cq_entry, +@@ -116,7 +109,6 @@ ssize_t fi_ibv_rdm_cq_sreadfrom(struct fid_cq *cq, void *buf, size_t count, + ((timeout < 0) ? SIZE_MAX : (fi_gettime_ms() + timeout)); + size_t counter = 0; + ssize_t ret = 0; +- struct fi_cq_tagged_entry *cqe_buf = buf; + struct fi_ibv_rdm_cq *_cq = container_of(cq, struct fi_ibv_rdm_cq, + cq_fid); + switch (_cq->wait_cond) { +@@ -130,7 +122,9 @@ ssize_t fi_ibv_rdm_cq_sreadfrom(struct fid_cq *cq, void *buf, size_t count, + } + + do { +- ret = fi_ibv_rdm_tagged_cq_readfrom(cq, &cqe_buf[counter], ++ ret = fi_ibv_rdm_tagged_cq_readfrom(cq, ++ ((char *)buf + ++ (counter * _cq->entry_size)), + threshold - counter, + src_addr); + counter += (ret > 0) ? ret : 0; +@@ -260,6 +254,50 @@ static struct fi_ops fi_ibv_rdm_cq_fi_ops = { + .ops_open = fi_no_ops_open, + }; + ++static void fi_ibv_rdm_cq_read_context_entry(struct fi_ibv_rdm_request *cq_entry, ++ int i, void *buf) ++{ ++ struct fi_cq_entry *entry = buf; ++ ++ entry[i].op_context = cq_entry->context; ++ } ++ ++ static void fi_ibv_rdm_cq_read_msg_entry(struct fi_ibv_rdm_request *cq_entry, ++ int i, void *buf) ++ { ++ struct fi_cq_msg_entry *entry = buf; ++ ++ entry[i].op_context = cq_entry->context; ++ entry[i].flags = (cq_entry->comp_flags & ~FI_COMPLETION); ++ entry[i].len = cq_entry->len; ++ } ++ ++ static void fi_ibv_rdm_cq_read_data_entry(struct fi_ibv_rdm_request *cq_entry, ++ int i, void *buf) ++ { ++ struct fi_cq_data_entry *entry = buf; ++ ++ entry[i].op_context = cq_entry->context; ++ entry[i].flags = (cq_entry->comp_flags & ~FI_COMPLETION); ++ entry[i].len = cq_entry->len; ++ entry[i].buf = (cq_entry->comp_flags & FI_TRANSMIT) ? ++ cq_entry->src_addr : cq_entry->dest_buf; ++ entry[i].data = cq_entry->imm; ++ } ++ ++ static void fi_ibv_rdm_cq_read_tagged_entry(struct fi_ibv_rdm_request *cq_entry, ++ int i, void *buf) ++ { ++ struct fi_cq_tagged_entry *entry = buf; ++ ++ entry[i].op_context = cq_entry->context; ++ entry[i].flags = (cq_entry->comp_flags & ~FI_COMPLETION); ++ entry[i].len = cq_entry->len; ++ entry[i].buf = (cq_entry->comp_flags & FI_TRANSMIT) ? ++ cq_entry->src_addr : cq_entry->dest_buf; ++ entry[i].data = cq_entry->imm; ++ entry[i].tag = cq_entry->minfo.tag; ++ } + + int fi_ibv_rdm_cq_open(struct fid_domain *domain, struct fi_cq_attr *attr, + struct fid_cq **cq, void *context) +@@ -296,12 +334,22 @@ int fi_ibv_rdm_cq_open(struct fid_domain *domain, struct fi_cq_attr *attr, + _cq->cq_fid.ops = &fi_ibv_rdm_cq_ops; + + switch (attr->format) { +- case FI_CQ_FORMAT_UNSPEC: + case FI_CQ_FORMAT_CONTEXT: ++ _cq->entry_size = sizeof(struct fi_cq_entry); ++ _cq->read_entry = fi_ibv_rdm_cq_read_context_entry; ++ break; + case FI_CQ_FORMAT_MSG: ++ _cq->entry_size = sizeof(struct fi_cq_msg_entry); ++ _cq->read_entry = fi_ibv_rdm_cq_read_msg_entry; ++ break; + case FI_CQ_FORMAT_DATA: ++ _cq->entry_size = sizeof(struct fi_cq_data_entry); ++ _cq->read_entry = fi_ibv_rdm_cq_read_data_entry; ++ break; ++ case FI_CQ_FORMAT_UNSPEC: + case FI_CQ_FORMAT_TAGGED: + _cq->entry_size = sizeof(struct fi_cq_tagged_entry); ++ _cq->read_entry = fi_ibv_rdm_cq_read_tagged_entry; + break; + default: + ret = -FI_ENOSYS; +diff --git a/prov/verbs/src/ep_rdm/verbs_rdm.h b/prov/verbs/src/ep_rdm/verbs_rdm.h +index 6230c975..71aabea3 100644 +--- a/prov/verbs/src/ep_rdm/verbs_rdm.h ++++ b/prov/verbs/src/ep_rdm/verbs_rdm.h +@@ -309,7 +309,6 @@ struct fi_ibv_rdm_ep { + int use_odp; + int scq_depth; + int rcq_depth; +- int cqread_bunch_size; + + int is_closing; + int recv_preposted_threshold; +diff --git a/prov/verbs/src/fi_verbs.h b/prov/verbs/src/fi_verbs.h +index 43f11255..06becb78 100644 +--- a/prov/verbs/src/fi_verbs.h ++++ b/prov/verbs/src/fi_verbs.h +@@ -257,16 +257,21 @@ struct fi_ibv_cq { + struct util_buf_pool *wce_pool; + }; + ++struct fi_ibv_rdm_request; ++typedef void (*fi_ibv_rdm_cq_read_entry)(struct fi_ibv_rdm_request *cq_entry, ++ int index, void *buf); ++ + struct fi_ibv_rdm_cq { +- struct fid_cq cq_fid; +- struct fi_ibv_domain *domain; +- struct fi_ibv_rdm_ep *ep; +- struct dlist_entry request_cq; +- struct dlist_entry request_errcq; +- uint64_t flags; +- size_t entry_size; +- int read_bunch_size; +- enum fi_cq_wait_cond wait_cond; ++ struct fid_cq cq_fid; ++ struct fi_ibv_domain *domain; ++ struct fi_ibv_rdm_ep *ep; ++ struct dlist_entry request_cq; ++ struct dlist_entry request_errcq; ++ uint64_t flags; ++ size_t entry_size; ++ fi_ibv_rdm_cq_read_entry read_entry; ++ int read_bunch_size; ++ enum fi_cq_wait_cond wait_cond; + }; + + int fi_ibv_cq_open(struct fid_domain *domain, struct fi_cq_attr *attr, +-- +2.15.GIT + diff --git a/SPECS/libfabric.spec b/SPECS/libfabric.spec new file mode 100644 index 0000000..714f5b1 --- /dev/null +++ b/SPECS/libfabric.spec @@ -0,0 +1,142 @@ +Name: libfabric +Version: 1.5.3 +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 +Patch2: 0001-prov-verbs-Add-support-of-different-CQ-formats-for-t.patch + +BuildRequires: librdmacm-devel +BuildRequires: libibverbs-devel >= 1.2.0 +BuildRequires: libnl3-devel + +# infinipath-psm-devel only available for x86_64 +%ifarch x86_64 +BuildRequires: infinipath-psm-devel +BuildRequires: libpsm2-devel +%endif +# valgrind is unavailable for s390 +%ifnarch s390 +BuildRequires: valgrind-devel +%endif + +%ifarch x86_64 +%global configopts --enable-sockets --enable-verbs --enable-usnic --disable-static --enable-psm --enable-psm2 +%else +%global configopts --enable-sockets --enable-verbs --enable-usnic --disable-static +%endif + +%description +libfabric provides a user-space API to access high-performance fabric +services, such as RDMA. + +%package devel +Summary: Development files for the libfabric library +Group: System Environment/Libraries +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +Development files for the libfabric library. + +%prep +%setup -q +%patch2 -p1 + +%build + +# defaults: with-dlopen can be over-rode: +%configure %{?_without_dlopen} %{configopts} \ +%ifnarch s390 + --with-valgrind +%endif + +make %{?_smp_mflags} V=1 + +%install +%make_install +# remove unpackaged files from the buildroot +rm -f %{buildroot}%{_libdir}/*.la + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%{_libdir}/libfabric.so.* +%{_bindir}/fi_info +%{_bindir}/fi_pingpong +%{_bindir}/fi_strerror +%{_libdir}/pkgconfig/%{name}.pc +%{_mandir}/man1/* +%license COPYING +%doc AUTHORS README + +%files devel +%{_libdir}/libfabric.so +%{_includedir}/* +%{_mandir}/man3/* +%{_mandir}/man7/* + +%changelog +* Wed Jan 10 2018 Honggang Li - 1.5.3-1 +- Rebase to latest release 1.5.3 +- Resolves: bz1533293 + +* Thu Jan 4 2018 Honggang Li - 1.5.1-3 +- Add support of different CQ formats for the verbs/RDM +- Resolves: bz1530715 + +* Fri Oct 20 2017 Honggang Li - 1.5.1-2 +- Fix PPC32 compiling issue +- Resolves: bz1504395 + +* Tue Oct 17 2017 Honggang Li - 1.5.1-1 +- Rebase to v1.5.1 +- Resolves: bz1452791 + +* Tue May 16 2017 Honggang Li - 1.4.2-1 +- Update to upstream v1.4.2 release +- Related: bz1451100 + +* Wed Mar 01 2017 Jarod Wilson - 1.4.1-1 +- Update to upstream v1.4.1 release +- Related: bz1382827 + +* Mon May 30 2016 Honggang Li - 1.3.0-3 +- Rebuild against latest infinipath-psm. +- Related: bz1280143 + +* Mon May 30 2016 Honggang Li - 1.3.0-2 +- Rebuild libfabric to support Intel OPA PSM2. +- Related: bz1280143 + +* Wed May 4 2016 Honggang Li - 1.3.0-1 +- Update to latest upstream release +- Related: bz1280143 + +* Wed Sep 30 2015 Doug Ledford - 1.1.0-2 +- Rebuild against libnl3 now that the UD RoCE bug is fixed +- Related: bz1261028 + +* Fri Aug 14 2015 Honggang Li - 1.1.0-1 +- Rebase to upstream 1.1.0 +- Resolves: bz1253381 + +* Fri Aug 07 2015 Michal Schmidt - 1.1.0-0.2.rc4 +- Packaging Guidelines conformance fixes and spec file cleanups +- Related: bz1235266 + +* Thu Aug 6 2015 Honggang Li - 1.1.0-0.1.rc4 +- fix N-V-R issue and disable static library +- Related: bz1235266 + +* Tue Aug 4 2015 Honggang Li - 1.1.0rc4 +- Initial build for RHEL-7.2 +- Related: bz1235266 + +* Fri Jun 26 2015 Open Fabrics Interfaces Working Group 1.1.0rc1 +- Release 1.1.0rc1 + +* Sun May 3 2015 Open Fabrics Interfaces Working Group 1.0.0 +- Release 1.0.0