From f2c3d76663deb7a8d47c0474401764255344d895 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Apr 10 2018 05:50:57 +0000 Subject: import libfabric-1.5.3-1.el7 --- diff --git a/.gitignore b/.gitignore index 29b2538..5ce21a5 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/libfabric-1.4.2.tar.bz2 +SOURCES/libfabric-1.5.3.tar.gz diff --git a/.libfabric.metadata b/.libfabric.metadata index fce1260..7d36d88 100644 --- a/.libfabric.metadata +++ b/.libfabric.metadata @@ -1 +1 @@ -b7ced3aad0c235c04cb4133270b8b217376e8935 SOURCES/libfabric-1.4.2.tar.bz2 +8d94f41e7b5b33e18865d30cd05ebb668b7a4e44 SOURCES/libfabric-1.5.3.tar.gz 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 index 1c614b0..714f5b1 100644 --- a/SPECS/libfabric.spec +++ b/SPECS/libfabric.spec @@ -1,15 +1,17 @@ Name: libfabric -Version: 1.4.2 +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: https://github.com/ofiwg/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.bz2 +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 @@ -40,8 +42,10 @@ 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 @@ -75,6 +79,22 @@ rm -f %{buildroot}%{_libdir}/*.la %{_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