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 - [email protected]
+
+- 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 <[email protected]>
-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 <[email protected]>
+
+commit 52ecbea1b908d3b449022e2d75ebe0ca3885bcf2
+Author: Steve Wise <[email protected]>
+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 <[email protected]>
+
+commit 242c29715372bf6999aa343a5aad5654da3ecf3a
+Author: Steve Wise <[email protected]>
+Date:   Wed Jun 18 10:17:00 2014 -0500
+
+    Spin release 1.3.4
+    
+    Signed-off-by: Steve Wise <[email protected]>
+
+commit 2d54f4c5604cae24caac493aaf6d8b0907ac2ed2
+Author: Steve Wise <[email protected]>
+Date:   Wed Jun 18 10:16:52 2014 -0500
+
+    Support the query_qp() verb
+    
+    Signed-off-by: Steve Wise <[email protected]>
+
+commit f80159d12148774646ad65d03cd070f6d5f86eb4
+Author: Steve Wise <[email protected]>
+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 <[email protected]>
+
+commit 5aaf5e7277a1c12964aac11a4cff94520717e805
+Author: Yann Droneaud <[email protected]>
+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 <[email protected]>
+      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/[email protected]
+    Signed-off-by: Yann Droneaud <[email protected]>
+    Signed-off-by: Steve Wise <[email protected]>
+
+commit 5c65bf17913949368db8802656dc7dbc291271ed
+Author: Yann Droneaud <[email protected]>
+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 <[email protected]>
+      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/[email protected]
+    
+    Signed-off-by: Yann Droneaud <[email protected]>
+    Signed-off-by: Steve Wise <[email protected]>
+
+commit 4f334446f63e3a34006f504f7c89075423c412b4
+Author: Steve Wise <[email protected]>
+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, [email protected])
+AC_INIT(libcxgb4, 1.3.5, [email protected])
 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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to