Hello community,
here is the log from the commit of package libcxgb4-rdmav2 for openSUSE:Factory checked in at 2015-02-16 21:14:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libcxgb4-rdmav2 (Old)
and /work/SRC/openSUSE:Factory/.libcxgb4-rdmav2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libcxgb4-rdmav2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libcxgb4-rdmav2/libcxgb4-rdmav2.changes 2014-07-23 22:06:33.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libcxgb4-rdmav2.new/libcxgb4-rdmav2.changes 2015-02-16 21:14:22.000000000 +0100
@@ -1,0 +2,14 @@
+Wed Feb 4 12:03:54 UTC 2015 - p.drouand@gmail.com
+
+- Update to version 1.3.5
+ * libcxb4: use wc_wmb() instead of wmb().
+ The user mode RDMA macro for wmb() is not sufficient to provide the
+ fencing needed. This was causing corrupted packets when running multiple
+ WD-UDP sockperf processes. The correct "sfence" instruction is provided
+ with the wc_wmb() macro. See /usr/include/infiniband/arch.h.
+ Note: The kernel implementation of wmb() is sufficient. This is a
+ libcxgb4 issue only...
+- Use download Url as source
+- Update libcxgb4-rdmav2-ah_message.patch
+
+-------------------------------------------------------------------
Old:
----
libcxgb4-1.3.3.tar.gz
New:
----
libcxgb4-1.3.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libcxgb4-rdmav2.spec ++++++
--- /var/tmp/diff_new_pack.WVtP0e/_old 2015-02-16 21:14:23.000000000 +0100
+++ /var/tmp/diff_new_pack.WVtP0e/_new 2015-02-16 21:14:23.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libcxgb4-rdmav2
#
-# Copyright (c) 2011-2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,11 +17,11 @@
Name: libcxgb4-rdmav2
Summary: Chelsio T4 iWARP RNIC OpenIB Userspace Library
-Version: 1.3.3
+Version: 1.3.5
Release: 0
License: GPL-2.0 or BSD-2-Clause
Group: System/Libraries
-Source0: libcxgb4-%{version}.tar.gz
+Source0: https://www.openfabrics.org/downloads/cxgb4/libcxgb4-%{version}.tar.gz
#Git-Clone: git://www.openfabrics.org/~swise/libcxgb4
Patch1: libcxgb4-fix_puns.patch
Patch2: libcxgb4-rdmav2-ah_message.patch
++++++ libcxgb4-1.3.3.tar.gz -> libcxgb4-1.3.5.tar.gz ++++++
++++ 10200 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libcxgb4-1.3.3/ChangeLog new/libcxgb4-1.3.5/ChangeLog
--- old/libcxgb4-1.3.3/ChangeLog 2014-03-11 17:49:08.000000000 +0100
+++ new/libcxgb4-1.3.5/ChangeLog 2014-07-31 18:28:31.000000000 +0200
@@ -1,6 +1,143 @@
-commit 51cd89ff2cc2fe9f2d7c3459ef2d54c42c0e3228
+commit 6a417d903b9add7c8ab2b71ac11c85c46671e020
Author: Steve Wise
-Date: Tue Mar 11 11:45:26 2014 -0500
+Date: Thu Jul 31 11:25:22 2014 -0500
+
+ Spin release 1.3.5.
+
+ Signed-off-by: Steve Wise
+
+commit 52ecbea1b908d3b449022e2d75ebe0ca3885bcf2
+Author: Steve Wise
+Date: Thu Jul 31 11:14:05 2014 -0500
+
+ libcxb4: use wc_wmb() instead of wmb().
+
+ The user mode RDMA macro for wmb() is not sufficient to provide the
+ fencing needed. This was causing corrupted packets when running multiple
+ WD-UDP sockperf processes. The correct "sfence" instruction is provided
+ with the wc_wmb() macro. See /usr/include/infiniband/arch.h.
+
+ Note: The kernel implementation of wmb() is sufficient. This is a
+ libcxgb4 issue only...
+
+ Signed-off-by: Steve Wise
+
+commit 242c29715372bf6999aa343a5aad5654da3ecf3a
+Author: Steve Wise
+Date: Wed Jun 18 10:17:00 2014 -0500
+
+ Spin release 1.3.4
+
+ Signed-off-by: Steve Wise
+
+commit 2d54f4c5604cae24caac493aaf6d8b0907ac2ed2
+Author: Steve Wise
+Date: Wed Jun 18 10:16:52 2014 -0500
+
+ Support the query_qp() verb
+
+ Signed-off-by: Steve Wise
+
+commit f80159d12148774646ad65d03cd070f6d5f86eb4
+Author: Steve Wise
+Date: Mon Jun 9 15:20:47 2014 -0500
+
+ Account for the full qid range.
+
+ The total qid range is should really be based on the max_cq attribute.
+
+ Signed-off-by: Steve Wise
+
+commit 5aaf5e7277a1c12964aac11a4cff94520717e805
+Author: Yann Droneaud
+Date: Mon May 5 12:59:23 2014 -0500
+
+ kernel abi: adds explicit padding in struct c4iw_alloc_ucontext_resp
+
+ i386 ABI disagree with most other ABIs regarding alignment
+ of data type larger than 4 bytes: on most ABIs a padding must
+ be added at end of the structures, while it is not
+ required on i386.
+
+ Such ABI disagreement will make an x86_64 kernel try to write past
+ the struct c4iw_alloc_ucontext_resp buffer provided by an i386
+ userspace binary. As struct c4iw_alloc_ucontext_resp is likely
+ on stack, see function c4iw_alloc_context(), side effects are
+ expected.
+
+ On kernel side, this structure was modified for kernel v3.15-rc1
+ by following commit:
+
+ Commit 05eb23893c2cf9502a9cec0c32e7f1d1ed2895c8
+ Author: Steve Wise
+ Date: Fri Mar 14 21:52:08 2014 +0530
+
+ cxgb4/iw_cxgb4: Doorbell Drop Avoidance Bug Fixes
+
+ If boundary check is implemented on kernel side, the x86_64
+ kernel will instead refuse to write past the i386 userspace
+ provided buffer and the uverbs will fail.
+
+ To fix these issues, this patch adds an explicit padding at end
+ of structure so that i386 and others ABI share the same structure
+ layout. This patch makes c4iw_alloc_context() check for a value
+ in the padding field to detect newer kernel using the field for
+ a future purpose (only activated in debug).
+
+ With this patch, libcxgb4 will work against older kernel and
+ newer patched kernel.
+
+ Link: http://marc.info/?i=cover.1399216475.git.ydroneaud@opteya.com
+ Signed-off-by: Yann Droneaud
+ Signed-off-by: Steve Wise
+
+commit 5c65bf17913949368db8802656dc7dbc291271ed
+Author: Yann Droneaud
+Date: Mon May 5 12:59:23 2014 -0500
+
+ kernel abi: adds explicit padding in struct c4iw_create_cq_resp
+
+ i386 ABI disagree with most other ABIs regarding alignment
+ of data type larger than 4 bytes: on most ABIs a padding must
+ be added at end of the structures, while it is not required
+ on i386.
+
+ Such ABI disagreement will make an x86_64 kernel try to write past
+ the struct c4iw_create_cq_resp buffer provided by an i386
+ userspace binary. As struct c4iw_create_cq_resp is likely
+ on stack, see function c4iw_create_cq(), side effects are
+ expected.
+
+ On kernel side, this structure was added for kernel v2.6.35-rc1
+ by following commit.
+
+ Commit cfdda9d764362ab77b11a410bb928400e6520d57
+ Author: Steve Wise
+ Date: Wed Apr 21 15:30:06 2010 -0700
+
+ RDMA/cxgb4: Add driver for Chelsio T4 RNIC
+
+ If boundary check is implemented on kernel side, the x86_64 kernel
+ will refuse to write past the i386 userspace provided buffer and the
+ uverbs will fail.
+
+ To fix these issues, this patch adds an explicit padding at end
+ of structure so that i386 and others ABI share the same structure
+ layout. This patch makes c4iw_create_cq() check for a value in the
+ padding field to detect newer kernel using the field for a future
+ purpose (only activated in debug).
+
+ With this patch, libcxgb4 will work against older kernel and
+ newer patched kernel.
+
+ Link: http://marc.info/?i=cover.1399216475.git.ydroneaud@opteya.com
+
+ Signed-off-by: Yann Droneaud
+ Signed-off-by: Steve Wise
+
+commit 4f334446f63e3a34006f504f7c89075423c412b4
+Author: Steve Wise
+Date: Tue Mar 11 11:47:19 2014 -0500
Spin release 1.3.3.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libcxgb4-1.3.3/config.h.in new/libcxgb4-1.3.5/config.h.in
--- old/libcxgb4-1.3.3/config.h.in 2014-03-11 17:49:20.000000000 +0100
+++ new/libcxgb4-1.3.5/config.h.in 2014-07-31 18:29:05.000000000 +0200
@@ -58,9 +58,6 @@
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
/* Define to the version of this package. */
#undef PACKAGE_VERSION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libcxgb4-1.3.3/configure.in new/libcxgb4-1.3.5/configure.in
--- old/libcxgb4-1.3.3/configure.in 2014-03-11 17:49:08.000000000 +0100
+++ new/libcxgb4-1.3.5/configure.in 2014-07-31 18:28:31.000000000 +0200
@@ -1,11 +1,11 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.57)
-AC_INIT(libcxgb4, 1.3.3, linux-rdma@vger.kernel.org)
+AC_INIT(libcxgb4, 1.3.5, linux-rdma@vger.kernel.org)
AC_CONFIG_SRCDIR([src/libcxgb4.h])
AC_CONFIG_AUX_DIR(config)
AC_CONFIG_HEADERS(config.h)
-AM_INIT_AUTOMAKE(libcxgb4, 1.3.3)
+AM_INIT_AUTOMAKE(libcxgb4, 1.3.5)
AM_PROG_LIBTOOL
AC_ARG_ENABLE(libcheck, [ --disable-libcheck do not test for presence of ib libraries],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libcxgb4-1.3.3/libcxgb4.spec new/libcxgb4-1.3.5/libcxgb4.spec
--- old/libcxgb4-1.3.3/libcxgb4.spec 2014-03-11 17:49:40.000000000 +0100
+++ new/libcxgb4-1.3.5/libcxgb4.spec 2014-07-31 18:29:05.000000000 +0200
@@ -1,7 +1,7 @@
-%define ver 1.3.3
+%define ver 1.3.5
Name: libcxgb4
-Version: 1.3.3
+Version: 1.3.5
Release: 1%{?dist}
Summary: Chelsio T4/T5 RNIC Open Fabrics Userspace Library
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libcxgb4-1.3.3/libcxgb4.spec.in new/libcxgb4-1.3.5/libcxgb4.spec.in
--- old/libcxgb4-1.3.3/libcxgb4.spec.in 2014-03-11 17:49:08.000000000 +0100
+++ new/libcxgb4-1.3.5/libcxgb4.spec.in 2014-07-31 18:28:31.000000000 +0200
@@ -1,7 +1,7 @@
%define ver @VERSION@
Name: libcxgb4
-Version: 1.3.3
+Version: 1.3.5
Release: 1%{?dist}
Summary: Chelsio T4/T5 RNIC Open Fabrics Userspace Library
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libcxgb4-1.3.3/src/cxgb4-abi.h new/libcxgb4-1.3.5/src/cxgb4-abi.h
--- old/libcxgb4-1.3.3/src/cxgb4-abi.h 2014-02-19 16:46:44.000000000 +0100
+++ new/libcxgb4-1.3.5/src/cxgb4-abi.h 2014-06-18 17:14:22.000000000 +0200
@@ -38,6 +38,7 @@
struct ibv_get_context_resp ibv_resp;
__u64 status_page_key;
__u32 status_page_size;
+ __u32 reserved;
};
struct c4iw_alloc_pd_resp {
@@ -53,6 +54,7 @@
__u32 cqid;
__u32 size;
__u32 qid_mask;
+ __u32 reserved;
};
enum {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libcxgb4-1.3.3/src/dev.c new/libcxgb4-1.3.5/src/dev.c
--- old/libcxgb4-1.3.3/src/dev.c 2014-03-11 17:49:08.000000000 +0100
+++ new/libcxgb4-1.3.5/src/dev.c 2014-06-18 17:18:03.000000000 +0200
@@ -125,10 +125,15 @@
context->ibv_ctx.cmd_fd = cmd_fd;
resp.status_page_size = 0;
+ resp.reserved = 0;
if (ibv_cmd_get_context(&context->ibv_ctx, &cmd, sizeof cmd,
&resp.ibv_resp, sizeof resp))
goto err_free;
+ if (resp.reserved)
+ PDBG("%s c4iw_alloc_ucontext_resp reserved field modified by kernel\n",
+ __FUNCTION__);
+
context->status_page_size = resp.status_page_size;
if (resp.status_page_size) {
context->status_page = mmap(NULL, resp.status_page_size,
@@ -171,8 +176,8 @@
if (!rhp->mmid2ptr) {
goto err_unmap;
}
- rhp->max_qp = T4_QID_BASE + attr.max_qp;
- rhp->qpid2ptr = calloc(T4_QID_BASE + attr.max_qp, sizeof(void *));
+ rhp->max_qp = T4_QID_BASE + attr.max_cq;
+ rhp->qpid2ptr = calloc(T4_QID_BASE + attr.max_cq, sizeof(void *));
if (!rhp->qpid2ptr) {
goto err_unmap;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libcxgb4-1.3.3/src/qp.c new/libcxgb4-1.3.5/src/qp.c
--- old/libcxgb4-1.3.3/src/qp.c 2014-02-19 16:46:44.000000000 +0100
+++ new/libcxgb4-1.3.5/src/qp.c 2014-07-31 18:28:31.000000000 +0200
@@ -53,7 +53,7 @@
dst = (u64 *)((u8 *)wq->sq.queue + wq->sq.wq_pidx * T4_EQ_ENTRY_SIZE);
if (t4_sq_onchip(wq)) {
len16 = align(len16, 4);
- wmb();
+ wc_wmb();
}
while (len16) {
*dst++ = *src++;
@@ -289,7 +289,7 @@
int mask;
int ret;
- wmb();
+ wc_wmb();
if (qid == qhp->wq.sq.qid) {
attr.sq_psn = idx;
mask = IBV_QP_SQ_PSN;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libcxgb4-1.3.3/src/t4.h new/libcxgb4-1.3.5/src/t4.h
--- old/libcxgb4-1.3.3/src/t4.h 2014-02-19 16:46:44.000000000 +0100
+++ new/libcxgb4-1.3.5/src/t4.h 2014-07-31 18:28:31.000000000 +0200
@@ -479,7 +479,7 @@
static inline void t4_ring_sq_db(struct t4_wq *wq, u16 inc, u8 t5, u8 len16,
union t4_wr *wqe)
{
- wmb();
+ wc_wmb();
if (t5) {
if (t5_en_wc && inc == 1) {
PDBG("%s: WC wq->sq.pidx = %d; len16=%d\n",
@@ -512,7 +512,7 @@
static inline void t4_ring_rq_db(struct t4_wq *wq, u16 inc, u8 t5, u8 len16,
union t4_recv_wr *wqe)
{
- wmb();
+ wc_wmb();
if (t5) {
if (t5_en_wc && inc == 1) {
PDBG("%s: WC wq->rq.pidx = %d; len16=%d\n",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libcxgb4-1.3.3/src/verbs.c new/libcxgb4-1.3.5/src/verbs.c
--- old/libcxgb4-1.3.3/src/verbs.c 2014-02-19 16:46:44.000000000 +0100
+++ new/libcxgb4-1.3.5/src/verbs.c 2014-06-18 17:18:03.000000000 +0200
@@ -181,12 +181,17 @@
return NULL;
}
+ resp.reserved = 0;
ret = ibv_cmd_create_cq(context, cqe, channel, comp_vector,
&chp->ibv_cq, &cmd, sizeof cmd,
&resp.ibv_resp, sizeof resp);
if (ret)
goto err1;
+ if (resp.reserved)
+ PDBG("%s c4iw_create_cq_resp reserved field modified by kernel\n",
+ __FUNCTION__);
+
pthread_spin_init(&chp->lock, PTHREAD_PROCESS_PRIVATE);
#ifdef STALL_DETECTION
gettimeofday(&chp->time, NULL);
@@ -610,10 +615,19 @@
return 0;
}
-int c4iw_query_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr,
+int c4iw_query_qp(struct ibv_qp *ibqp, struct ibv_qp_attr *attr,
int attr_mask, struct ibv_qp_init_attr *init_attr)
{
- return ENOSYS;
+ struct ibv_query_qp cmd;
+ struct c4iw_qp *qhp = to_c4iw_qp(ibqp);
+ int ret;
+
+ pthread_spin_lock(&qhp->lock);
+ if (t4_wq_in_error(&qhp->wq))
+ c4iw_flush_qp(qhp);
+ ret = ibv_cmd_query_qp(ibqp, attr, attr_mask, init_attr, &cmd, sizeof cmd);
+ pthread_spin_unlock(&qhp->lock);
+ return ret;
}
struct ibv_ah *c4iw_create_ah(struct ibv_pd *pd, struct ibv_ah_attr *attr)
++++++ libcxgb4-rdmav2-ah_message.patch ++++++
--- /var/tmp/diff_new_pack.WVtP0e/_old 2015-02-16 21:14:23.000000000 +0100
+++ /var/tmp/diff_new_pack.WVtP0e/_new 2015-02-16 21:14:23.000000000 +0100
@@ -6,12 +6,12 @@
===================================================================
--- configure.in.orig 2014-04-03 12:02:58.809101866 +0200
+++ configure.in 2014-04-03 12:04:28.451029934 +0200
-@@ -8,7 +8,7 @@ AC_CONFIG_HEADERS(config.h)
- AM_INIT_AUTOMAKE(libcxgb4, 1.3.3)
+@@ -8,7 +8,7 @@
+ AM_INIT_AUTOMAKE(libcxgb4, 1.3.5)
AM_PROG_LIBTOOL
-AC_ARG_ENABLE(libcheck, [ --disable-libcheck do not test for presence of ib libraries],
-+AC_ARG_ENABLE([libcheck], [AS_HELP_STRING([--disable-libcheck], [do not test for presence of ib libraries])],
++AC_ARG_ENABLE([libcheck], [AS_HELP_STRING([--disable-libcheck], [do not test for presence of ib libraries])]
[ if test x$enableval = xno ; then
disable_libcheck=yes
fi
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org