]> git.openfabrics.org - ~shefty/libibverbs.git/log
~shefty/libibverbs.git
11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 18:05:23 +0000 (11:05 -0700)]
refresh

11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 18:05:23 +0000 (11:05 -0700)]
refresh

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 18:05:23 +0000 (11:05 -0700)]
refresh (create temporary patch)

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 18:05:23 +0000 (11:05 -0700)]
refresh (create temporary patch)

11 years agoRefresh of xrcd
Sean Hefty [Wed, 12 Sep 2012 18:05:23 +0000 (11:05 -0700)]
Refresh of xrcd

11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 18:04:48 +0000 (11:04 -0700)]
refresh

11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 18:04:48 +0000 (11:04 -0700)]
refresh

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 18:04:47 +0000 (11:04 -0700)]
refresh (create temporary patch)

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 18:04:47 +0000 (11:04 -0700)]
refresh (create temporary patch)

11 years agoRefresh of xrcd
Sean Hefty [Wed, 12 Sep 2012 18:04:47 +0000 (11:04 -0700)]
Refresh of xrcd

11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 18:04:27 +0000 (11:04 -0700)]
refresh

11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 18:04:27 +0000 (11:04 -0700)]
refresh

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 18:04:26 +0000 (11:04 -0700)]
refresh (create temporary patch)

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 18:04:26 +0000 (11:04 -0700)]
refresh (create temporary patch)

11 years agoRefresh of xrcd
Sean Hefty [Wed, 12 Sep 2012 18:04:26 +0000 (11:04 -0700)]
Refresh of xrcd

11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 18:03:05 +0000 (11:03 -0700)]
refresh

11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 18:03:05 +0000 (11:03 -0700)]
refresh

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 18:03:05 +0000 (11:03 -0700)]
refresh (create temporary patch)

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 18:03:05 +0000 (11:03 -0700)]
refresh (create temporary patch)

11 years agoRefresh of xrcd
Sean Hefty [Wed, 12 Sep 2012 18:03:05 +0000 (11:03 -0700)]
Refresh of xrcd

11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 18:00:30 +0000 (11:00 -0700)]
refresh

11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 18:00:30 +0000 (11:00 -0700)]
refresh

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 18:00:29 +0000 (11:00 -0700)]
refresh (create temporary patch)

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 18:00:29 +0000 (11:00 -0700)]
refresh (create temporary patch)

11 years agoRefresh of xrcd
Sean Hefty [Wed, 12 Sep 2012 18:00:29 +0000 (11:00 -0700)]
Refresh of xrcd

11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 17:58:04 +0000 (10:58 -0700)]
refresh

11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 17:58:04 +0000 (10:58 -0700)]
refresh

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 17:58:04 +0000 (10:58 -0700)]
refresh (create temporary patch)

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 17:58:04 +0000 (10:58 -0700)]
refresh (create temporary patch)

11 years agoRefresh of xrcd
Sean Hefty [Wed, 12 Sep 2012 17:58:03 +0000 (10:58 -0700)]
Refresh of xrcd

11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 17:47:40 +0000 (10:47 -0700)]
refresh

11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 17:47:40 +0000 (10:47 -0700)]
refresh

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 17:47:40 +0000 (10:47 -0700)]
refresh (create temporary patch)

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 17:47:40 +0000 (10:47 -0700)]
refresh (create temporary patch)

11 years agoRefresh of xrcd
Sean Hefty [Wed, 12 Sep 2012 17:47:39 +0000 (10:47 -0700)]
Refresh of xrcd

11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 17:45:40 +0000 (10:45 -0700)]
refresh

11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 17:45:40 +0000 (10:45 -0700)]
refresh

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 17:45:40 +0000 (10:45 -0700)]
refresh (create temporary patch)

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 17:45:40 +0000 (10:45 -0700)]
refresh (create temporary patch)

11 years agoRefresh of xrcd
Sean Hefty [Wed, 12 Sep 2012 17:45:39 +0000 (10:45 -0700)]
Refresh of xrcd

11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 17:41:59 +0000 (10:41 -0700)]
refresh

11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 17:41:59 +0000 (10:41 -0700)]
refresh

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 17:40:34 +0000 (10:40 -0700)]
refresh (create temporary patch)

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 17:40:34 +0000 (10:40 -0700)]
refresh (create temporary patch)

11 years agoRefresh of xrcd
Sean Hefty [Wed, 12 Sep 2012 17:40:34 +0000 (10:40 -0700)]
Refresh of xrcd

11 years agorename
Sean Hefty [Wed, 12 Sep 2012 17:39:02 +0000 (10:39 -0700)]
rename

11 years agorename
Sean Hefty [Wed, 12 Sep 2012 17:39:02 +0000 (10:39 -0700)]
rename

11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 17:37:28 +0000 (10:37 -0700)]
refresh

11 years agorefresh
Sean Hefty [Wed, 12 Sep 2012 17:37:28 +0000 (10:37 -0700)]
refresh

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 17:37:28 +0000 (10:37 -0700)]
refresh (create temporary patch)

11 years agorefresh (create temporary patch)
Sean Hefty [Wed, 12 Sep 2012 17:37:28 +0000 (10:37 -0700)]
refresh (create temporary patch)

11 years agoRefresh of xrc
Sean Hefty [Wed, 12 Sep 2012 17:37:27 +0000 (10:37 -0700)]
Refresh of xrc

11 years agonew
Sean Hefty [Fri, 7 Sep 2012 21:38:08 +0000 (14:38 -0700)]
new

11 years agonew
Sean Hefty [Fri, 7 Sep 2012 21:38:08 +0000 (14:38 -0700)]
new

11 years agoXRC introduces several new concepts and structures, one of
Sean Hefty [Fri, 7 Sep 2012 21:38:07 +0000 (14:38 -0700)]
XRC introduces several new concepts and structures, one of
which is the XRC domain.

XRC domains: xrcd's are a type of protection domain used to
associate shared receive queues with xrc queue pairs.  Since
xrcd are meant to be shared among multiple processes, we
introduce new APIs to open/close xrcd's.

The user to kernel ABI is extended to account for opening/
closing the xrcd.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
11 years agoXRC introduces several new concepts and structures, one of
Sean Hefty [Fri, 7 Sep 2012 21:38:07 +0000 (14:38 -0700)]
XRC introduces several new concepts and structures, one of
which is the XRC domain.

XRC domains: xrcd's are a type of protection domain used to
associate shared receive queues with xrc queue pairs.  Since
xrcd are meant to be shared among multiple processes, we
introduce new APIs to open/close xrcd's.

The user to kernel ABI is extended to account for opening/
closing the xrcd.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
11 years agoXRC introduces several new concepts and structures, one of
Sean Hefty [Fri, 7 Sep 2012 21:38:07 +0000 (14:38 -0700)]
XRC introduces several new concepts and structures, one of
which is the XRC domain.

XRC domains: xrcd's are a type of protection domain used to
associate shared receive queues with xrc queue pairs.  Since
xrcd are meant to be shared among multiple processes, we
introduce new APIs to open/close xrcd's.

The user to kernel ABI is extended to account for opening/
closing the xrcd.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
11 years agoXRC introduces several new concepts and structures, one of
Sean Hefty [Fri, 7 Sep 2012 21:38:07 +0000 (14:38 -0700)]
XRC introduces several new concepts and structures, one of
which is the XRC domain.

XRC domains: xrcd's are a type of protection domain used to
associate shared receive queues with xrc queue pairs.  Since
xrcd are meant to be shared among multiple processes, we
introduce new APIs to open/close xrcd's.

The user to kernel ABI is extended to account for opening/
closing the xrcd.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
11 years agoXRC introduces several new concepts and structures, one of
Sean Hefty [Fri, 7 Sep 2012 21:38:07 +0000 (14:38 -0700)]
XRC introduces several new concepts and structures, one of
which is the XRC domain.

XRC domains: xrcd's are a type of protection domain used to
associate shared receive queues with xrc queue pairs.  Since
xrcd are meant to be shared among multiple processes, we
introduce new APIs to open/close xrcd's.

The user to kernel ABI is extended to account for opening/
closing the xrcd.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
11 years agoXRC introduces several new concepts and structures, one of
Sean Hefty [Fri, 7 Sep 2012 21:38:07 +0000 (14:38 -0700)]
XRC introduces several new concepts and structures, one of
which is the XRC domain.

XRC domains: xrcd's are a type of protection domain used to
associate shared receive queues with xrc queue pairs.  Since
xrcd are meant to be shared among multiple processes, we
introduce new APIs to open/close xrcd's.

The user to kernel ABI is extended to account for opening/
closing the xrcd.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
11 years agoXRC introduces several new concepts and structures, one of
Sean Hefty [Fri, 7 Sep 2012 21:38:07 +0000 (14:38 -0700)]
XRC introduces several new concepts and structures, one of
which is the XRC domain.

XRC domains: xrcd's are a type of protection domain used to
associate shared receive queues with xrc queue pairs.  Since
xrcd are meant to be shared among multiple processes, we
introduce new APIs to open/close xrcd's.

The user to kernel ABI is extended to account for opening/
closing the xrcd.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
11 years agoXRC introduces several new concepts and structures, one of
Sean Hefty [Fri, 7 Sep 2012 21:38:07 +0000 (14:38 -0700)]
XRC introduces several new concepts and structures, one of
which is the XRC domain.

XRC domains: xrcd's are a type of protection domain used to
associate shared receive queues with xrc queue pairs.  Since
xrcd are meant to be shared among multiple processes, we
introduce new APIs to open/close xrcd's.

The user to kernel ABI is extended to account for opening/
closing the xrcd.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
11 years agoXRC introduces several new concepts and structures, one of
Sean Hefty [Fri, 7 Sep 2012 21:38:07 +0000 (14:38 -0700)]
XRC introduces several new concepts and structures, one of
which is the XRC domain.

XRC domains: xrcd's are a type of protection domain used to
associate shared receive queues with xrc queue pairs.  Since
xrcd are meant to be shared among multiple processes, we
introduce new APIs to open/close xrcd's.

The user to kernel ABI is extended to account for opening/
closing the xrcd.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
11 years agoUse extensions to define XRC support
Sean Hefty [Fri, 7 Sep 2012 21:38:07 +0000 (14:38 -0700)]
Use extensions to define XRC support

Define a common libibverbs extension to support XRC.

XRC introduces several new concepts and structures:

XRC domains: xrcd's are a type of protection domain used to
associate shared receive queues with xrc queue pairs.  Since
xrcd are meant to be shared among multiple processes, we
introduce new APIs to open/close xrcd's.

XRC shared receive queues: xrc srq's are similar to normal
srq's, except that they are bound to an xrcd, rather
than to a protection domain.  Based on the current spec
and implementation, they are only usable with xrc qps.  To
support xrc srq's, we extend the existing srq_init_attr
structure to include an srq type and other needed information.
The extended fields are ignored unless extensions are being
used to support existing applications.

XRC queue pairs: xrc defines two new types of QPs.  The
initiator, or send-side, xrc qp behaves similar to a send-
only RC qp.  xrc send qp's are managed through the existing
QP functions.  The send_wr structure is extended in a back-
wards compatible way to support posting sends on a send xrc
qp, which require specifying the remote xrc srq.

The target, or receive-side, xrc qp behaves differently
than other implemented qp's.  A recv xrc qp can be created,
modified, and destroyed like other qp's through the existing
calls.  The qp_init_attr structure is extended for xrc qp's,
with extension support dependent upon the qp_type being
defined correctly.

Because xrc recv qp's are bound to an xrcd, rather than a pd,
it is intended to be used among multiple processes.  Any process
with access to an xrcd may allocate and connect an xrc recv qp.
The actual xrc recv qp is allocated and managed by the kernel.
If the owning process explicit destroys the xrc recv qp, it is
destroyed.  However, if the xrc recv qp is left open when the
user process exits or closes its device, then the lifetime of
the xrc recv qp is bound with the lifetime of the xrcd.

The user to kernel ABI is extended to account for opening/
closing the xrcd and the creation of the extended srq type.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
11 years agoUse extensions to define XRC support
Sean Hefty [Fri, 7 Sep 2012 21:38:07 +0000 (14:38 -0700)]
Use extensions to define XRC support

Define a common libibverbs extension to support XRC.

XRC introduces several new concepts and structures:

XRC domains: xrcd's are a type of protection domain used to
associate shared receive queues with xrc queue pairs.  Since
xrcd are meant to be shared among multiple processes, we
introduce new APIs to open/close xrcd's.

XRC shared receive queues: xrc srq's are similar to normal
srq's, except that they are bound to an xrcd, rather
than to a protection domain.  Based on the current spec
and implementation, they are only usable with xrc qps.  To
support xrc srq's, we extend the existing srq_init_attr
structure to include an srq type and other needed information.
The extended fields are ignored unless extensions are being
used to support existing applications.

XRC queue pairs: xrc defines two new types of QPs.  The
initiator, or send-side, xrc qp behaves similar to a send-
only RC qp.  xrc send qp's are managed through the existing
QP functions.  The send_wr structure is extended in a back-
wards compatible way to support posting sends on a send xrc
qp, which require specifying the remote xrc srq.

The target, or receive-side, xrc qp behaves differently
than other implemented qp's.  A recv xrc qp can be created,
modified, and destroyed like other qp's through the existing
calls.  The qp_init_attr structure is extended for xrc qp's,
with extension support dependent upon the qp_type being
defined correctly.

Because xrc recv qp's are bound to an xrcd, rather than a pd,
it is intended to be used among multiple processes.  Any process
with access to an xrcd may allocate and connect an xrc recv qp.
The actual xrc recv qp is allocated and managed by the kernel.
If the owning process explicit destroys the xrc recv qp, it is
destroyed.  However, if the xrc recv qp is left open when the
user process exits or closes its device, then the lifetime of
the xrc recv qp is bound with the lifetime of the xrcd.

The user to kernel ABI is extended to account for opening/
closing the xrcd and the creation of the extended srq type.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
11 years agodelete
Sean Hefty [Fri, 7 Sep 2012 21:35:11 +0000 (14:35 -0700)]
delete

11 years agodelete
Sean Hefty [Fri, 7 Sep 2012 21:35:11 +0000 (14:35 -0700)]
delete

11 years agorename
Sean Hefty [Fri, 7 Sep 2012 21:35:03 +0000 (14:35 -0700)]
rename

11 years agorename
Sean Hefty [Fri, 7 Sep 2012 21:35:03 +0000 (14:35 -0700)]
rename

11 years agopop
Sean Hefty [Fri, 7 Sep 2012 21:34:56 +0000 (14:34 -0700)]
pop

11 years agopop
Sean Hefty [Fri, 7 Sep 2012 21:34:56 +0000 (14:34 -0700)]
pop

11 years agopop
Sean Hefty [Fri, 7 Sep 2012 21:34:43 +0000 (14:34 -0700)]
pop

11 years agopop
Sean Hefty [Fri, 7 Sep 2012 21:34:43 +0000 (14:34 -0700)]
pop

11 years agostart of log
Sean Hefty [Fri, 7 Sep 2012 21:34:43 +0000 (14:34 -0700)]
start of log

11 years agostart of log
Sean Hefty [Fri, 7 Sep 2012 21:34:43 +0000 (14:34 -0700)]
start of log

11 years agoUsing extensions to define XRC support
Sean Hefty [Fri, 7 Sep 2012 21:28:39 +0000 (14:28 -0700)]
Using extensions to define XRC support

Define a common libibverbs extension to support XRC.

XRC introduces several new concepts and structures:

XRC domains: xrcd's are a type of protection domain used to
associate shared receive queues with xrc queue pairs.  Since
xrcd are meant to be shared among multiple processes, we
introduce new APIs to open/close xrcd's.

XRC shared receive queues: xrc srq's are similar to normal
srq's, except that they are bound to an xrcd, rather
than to a protection domain.  Based on the current spec
and implementation, they are only usable with xrc qps.  To
support xrc srq's, we extend the existing srq_init_attr
structure to include an srq type and other needed information.
The extended fields are ignored unless extensions are being
used to support existing applications.

XRC queue pairs: xrc defines two new types of QPs.  The
initiator, or send-side, xrc qp behaves similar to a send-
only RC qp.  xrc send qp's are managed through the existing
QP functions.  The send_wr structure is extended in a back-
wards compatible way to support posting sends on a send xrc
qp, which require specifying the remote xrc srq.

The target, or receive-side, xrc qp behaves differently
than other implemented qp's.  A recv xrc qp can be created,
modified, and destroyed like other qp's through the existing
calls.  The qp_init_attr structure is extended for xrc qp's,
with extension support dependent upon the qp_type being
defined correctly.

Because xrc recv qp's are bound to an xrcd, rather than a pd,
it is intended to be used among multiple processes.  Any process
with access to an xrcd may allocate and connect an xrc recv qp.
The actual xrc recv qp is allocated and managed by the kernel.
If the owning process explicit destroys the xrc recv qp, it is
destroyed.  However, if the xrc recv qp is left open when the
user process exits or closes its device, then the lifetime of
the xrc recv qp is bound with the lifetime of the xrcd.

The user to kernel ABI is extended to account for opening/
closing the xrcd and the creation of the extended srq type.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
11 years agoFrom 88a5bc75122c8bb6ce45fbaae79c06a2440fea65 Mon Sep 17 00:00:00 2001
Yishai Hadas [Sun, 26 Aug 2012 13:43:30 +0000 (16:43 +0300)]
From 88a5bc75122c8bb6ce45fbaae79c06a2440fea65 Mon Sep 17 00:00:00 2001
Subject: [PATCH V0 libibverbs] infra-structure changes to support verbs extension

Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Tzahi Oved <tzahio@mellanox.com>
12 years agoFix a compiler warnings with NVALGRIND master
Bart Van Assche [Sun, 7 Aug 2011 18:05:30 +0000 (20:05 +0200)]
Fix a compiler warnings with NVALGRIND

Fix compiler warnings when compiling with NVALGRIND defined and the
latest Valgrind header files.  Recently the Valgrind client request
implementation has been modified in order to not trigger compiler
warnings when building with gcc 4.6.  A side effect of that change is
that Valgrind client request macros that return a value have to be
cast to void in order to avoid a compiler warning.

For more information, see also:
* Valgrind manual about VALGRIND_MAKE_MEM_DEFINED (http://valgrind.org/docs/manual/mc-manual.html).
* Valgrind trunk r11755 (http://article.gmane.org/gmane.comp.debugging.valgrind.devel/13489).

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Roland Dreier <roland@purestorage.com>
12 years agoRoll libibverbs 1.1.6 release
Roland Dreier [Thu, 22 Dec 2011 00:33:30 +0000 (16:33 -0800)]
Roll libibverbs 1.1.6 release

Signed-off-by: Roland Dreier <roland@purestorage.com>
12 years agoFix memory leaks in various error flows
Dotan Barak [Mon, 14 Nov 2011 16:54:38 +0000 (08:54 -0800)]
Fix memory leaks in various error flows

Signed-off-by: Dotan Barak <dotanb@dev.mellanox.co.il>
Signed-off-by: Roland Dreier <roland@purestorage.com>
12 years agoAdd support to ibv_devinfo for displaying extended speeds
Marcel Apfelbaum [Mon, 3 Oct 2011 15:56:25 +0000 (18:56 +0300)]
Add support to ibv_devinfo for displaying extended speeds

Add code to ibv_devinfo to display the following new speeds:

    8:  FDR-10 is a proprietary link speed which is 10.3125 Gbps with 64b/66b
        encoding rather than 8b/10b encoding.
    16: FDR - 14.0625 Gbps
    32: EDR - 25.78125 Gbps

Signed-off-by: Marcel Apfelbaum <marcela@dev.mellanox.co.il>
Reviewed-by: Hal Rosenstock <hal@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
12 years agoDebian: Don't use brace expansion for {a,so} in libibverbs-dev.install
Roland Dreier [Fri, 11 Nov 2011 23:04:58 +0000 (15:04 -0800)]
Debian: Don't use brace expansion for {a,so} in libibverbs-dev.install

Signed-off-by: Roland Dreier <roland@purestorage.com>
12 years agoMakefile.am: Fix an automake warning
Bart Van Assche [Sun, 7 Aug 2011 18:01:48 +0000 (18:01 +0000)]
Makefile.am: Fix an automake warning

Fix the following automake warning message:

    Makefile.am:1: `INCLUDES' is the old name for `AM_CPPFLAGS' (or `*_CPPFLAGS')

A quote from the automake manual:

    INCLUDES
        This does the same job as AM_CPPFLAGS (or any per-target _CPPFLAGS variable
        if it is used). It is an older name for the same functionality. This
        variable is deprecated; we suggest using AM_CPPFLAGS and per-target
        _CPPFLAGS instead.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
12 years agoAdd "foreign" option to AM_INIT_AUTOMAKE
Bart Van Assche [Sun, 7 Aug 2011 18:01:08 +0000 (18:01 +0000)]
Add "foreign" option to AM_INIT_AUTOMAKE

Switch to the modern form of the AM_INIT_AUTOMAKE macro and tell
automake that the libibverbs package does not follow the GNU
standards.  This change makes it possible to use 'autoreconf' for the
libibverbs package.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Roland Dreier <roland@purestorage.com>
12 years agoUpdate examples for IBoE
Or Gerlitz [Tue, 19 Jul 2011 09:31:32 +0000 (09:31 +0000)]
Update examples for IBoE

Since IBoE requires usage of GRH, update ibv_*_pinpong examples to
accept GIDs.  GIDs are given as an index to the local port's table and
are exchanged between the client and the server through the socket
connection.

Signed-off-by: Or Gerlitz <ogerlitz@mellanox.co.il>
Signed-off-by: Eli Cohen <eli@mellanox.co.il>
12 years agoAdd GID change event
Or Gerlitz [Wed, 20 Jul 2011 19:38:58 +0000 (19:38 +0000)]
Add GID change event

Add handling for GID change events, which are generated by the kernel
IBoE stack when the HW driver updates the GID table.

Signed-off-by: Or Gerlitz <ogerlitz@mellanox.co.il>
Signed-off-by: Eli Cohen <eli@mellanox.co.il>
12 years agoUpdate kernel API header to include link_layer
Or Gerlitz [Tue, 19 Jul 2011 09:28:42 +0000 (09:28 +0000)]
Update kernel API header to include link_layer

Modify the code to handle returning the link layer of a port from the
kernel to the library.  The kernel has done this since commit
2420b60b1dc4 ("IB/uverbs: Return link layer type to userspace for
query port operation"), merged in 2.6.37-rc1.

The new field does not change the size of struct ibv_query_port_resp
as it replaces a reserved field.  Binary compatibility between the
kernel to the library is kept, since old kernels running below new
library will not zero that field, so it will be read as "unspecified,"
while an old library running over new kernel will ignore the value
returned by the kernel.

The solution was suggested by Roland Dreier <roland@purestorage.com>
and Jason Gunthorpe <jgunthorpe@obsidianresearch.com>

Signed-off-by: Or Gerlitz <ogerlitz@mellanox.co.il>
Signed-off-by: Eli Cohen <eli@mellanox.co.il>
12 years agoAdd link_layer field port attribute
Or Gerlitz [Wed, 20 Jul 2011 19:37:24 +0000 (19:37 +0000)]
Add link_layer field port attribute

The new field has three possible values: IBV_LINK_LAYER_UNSPECIFIED,
IBV_LINK_LAYER_INFINIBAND, IBV_LINK_LAYER_ETHERNET.  It can be used by
applications to know the link layer used by the port, which can be
either InfiniBand or Ethernet.

The addition of the new field does not change the size of struct
ibv_port_attr due to alignment of the preceding fields.  Binary
compatibility between the library to applications is kept, since old
apps running over new library do not read this field, and new apps
running over old library will determine the link layer as unspecified
and hence take their IB code path.

The solution was suggested by Roland Dreier <roland@purestorage.com>
and Jason Gunthorpe <jgunthorpe@obsidianresearch.com>

Signed-off-by: Or Gerlitz <ogerlitz@mellanox.co.il>
Signed-off-by: Eli Cohen <eli@mellanox.co.il>
13 years agoUpdate Debian Standards-Version to 3.9.2
Roland Dreier [Thu, 30 Jun 2011 06:58:10 +0000 (23:58 -0700)]
Update Debian Standards-Version to 3.9.2

Signed-off-by: Roland Dreier <roland@purestorage.com>
13 years agoDon't ship .la files in Debian libibverbs-dev
Roland Dreier [Thu, 30 Jun 2011 06:56:41 +0000 (23:56 -0700)]
Don't ship .la files in Debian libibverbs-dev

Signed-off-by: Roland Dreier <roland@purestorage.com>
13 years agoPackage description shouldn't start with an article
Roland Dreier [Thu, 30 Jun 2011 06:44:12 +0000 (23:44 -0700)]
Package description shouldn't start with an article

Signed-off-by: Roland Dreier <roland@purestorage.com>
13 years agodebian/libibverbs1.postinst: Let debhelper code run in all cases
Julien BLACHE [Thu, 30 Jun 2011 04:42:06 +0000 (21:42 -0700)]
debian/libibverbs1.postinst: Let debhelper code run in all cases

Do not exit postinst if not configuring -- code added by debhelper needs
to run in all cases, not only the configure case.

Signed-off-by: Roland Dreier <roland@purestorage.com>
13 years agoRoll libibverbs 1.1.5 release
Roland Dreier [Tue, 28 Jun 2011 20:55:55 +0000 (13:55 -0700)]
Roll libibverbs 1.1.5 release

Signed-off-by: Roland Dreier <roland@purestorage.com>
13 years agoHandle huge pages in ibv_fork_init() and madvise tracking
Alexander Schmidt [Fri, 20 Aug 2010 09:06:16 +0000 (09:06 +0000)]
Handle huge pages in ibv_fork_init() and madvise tracking

When fork support is enabled in libibverbs, madvise() is called for
every memory page that is registered as a memory region.  Memory
ranges that are passed to madvise() must be page aligned and the size
must be a multiple of the page size.

libibverbs uses sysconf(_SC_PAGESIZE) to find out the system page size
and rounds all ranges passed to reg_mr() according to this page size.
When memory from libhugetlbfs is passed to reg_mr(), this does not
work as the page size for this memory range might be different
(e.g. 16MB).  So libibverbs would have to use the huge page size to
calculate a page aligned range for madvise.

As huge pages are provided to the application "under the hood" when
preloading libhugetlbfs, the application does not have any knowledge
about when it registers a huge page or a usual page.

To work around this issue, detect the use of huge pages in libibverbs
and align memory ranges passed to madvise according to the huge page
size.  Determining the page size of a given memory range by watching
madvise() fail has proven to be unreliable.  So we introduce the
RDMAV_HUGEPAGES_SAFE environment variable to let the user decide if
the page size should be checked on every reg_mr() call or not. This
requires the user to be aware if huge pages are used by the running
application or not.

I did not add an aditional API call to enable this, as applications
can use setenv() + ibv_fork_init() to enable checking for huge pages
in the code.

Signed-off-by: Alexander Schmidt <alexs@linux.vnet.ibm.com>
[ Updated ibv_fork_init() manpage for RDMAV_HUGEPAGES_SAFE.  - Roland ]

Signed-off-by: Roland Dreier <roland@purestorage.com>
13 years agoSet DM-Upload-Allowed now that Roland is a Debian Maintainer
Roland Dreier [Tue, 28 Jun 2011 06:50:14 +0000 (23:50 -0700)]
Set DM-Upload-Allowed now that Roland is a Debian Maintainer

Signed-off-by: Roland Dreier <roland@purestorage.com>
13 years agoFix date format in RPM spec file changelog
Dotan Barak [Wed, 15 Jun 2011 06:12:08 +0000 (06:12 +0000)]
Fix date format in RPM spec file changelog

Signed-off-by: Dotan Barak <dotan@dev.mellanox.co.il>
Signed-off-by: Roland Dreier <roland@purestorage.com>
13 years agoread_config_file: ignore driver line without driver name
Yann Droneaud [Tue, 31 May 2011 18:20:39 +0000 (11:20 -0700)]
read_config_file: ignore driver line without driver name

If there's no driver name, strsep() will set config to NULL and later
processing of the driver name will segfault.

Spotted with zzuf.

Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
13 years agoFix crash if no devices and ibv_get_device_list() is called multiple times
Roland Dreier [Fri, 27 May 2011 18:20:46 +0000 (11:20 -0700)]
Fix crash if no devices and ibv_get_device_list() is called multiple times

If no devices are found, ibverbs_init() sets num_devices to 0.  This
means the next call to __ibv_get_device_list() would call
ibverbs_init() again, which crashes because ibverbs_init() leaves
various internal pointers pointing to freed memory.

Fix this by using pthread_once() to call ibverbs_init() exactly once,
and then doing the right thing even if num_devices stays 0.

Tested-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
13 years agoAdd AC_PROG_LIBTOOL to fix libtool configure warning
Tom Tucker [Thu, 29 Jul 2010 16:31:51 +0000 (16:31 +0000)]
Add AC_PROG_LIBTOOL to fix libtool configure warning

Add AC_PROG_LIBTOOL to configure.in to fix an autogen.sh warning about
LIBTOOL configuration.

Signed-off-by: Tom Tucker <tom@ogc.us>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
13 years agoFix autotools to include the necessary m4 files
Jason Gunthorpe [Thu, 7 Oct 2010 22:38:33 +0000 (22:38 +0000)]
Fix autotools to include the necessary m4 files

Running autogen.sh with a new version of autotools and then building
on a system with an older version tends to explode.  Unfortunately
this is sometimes necessary since the new version is required by the
package.  The fix changes the autogen.sh output from:

    + aclocal -I config
    + libtoolize --force --copy
    libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `config'.
    libtoolize: copying file `config/ltmain.sh'
    libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.in and
    libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
    libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
    + autoheader
    + automake --foreign --add-missing --copy
    + autoconf

to:

    + aclocal -I config
    + libtoolize --force --copy
    libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `config'.
    libtoolize: copying file `config/ltmain.sh'
    libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `config'.
    libtoolize: copying file `config/libtool.m4'
    libtoolize: copying file `config/ltoptions.m4'
    libtoolize: copying file `config/ltsugar.m4'
    libtoolize: copying file `config/ltversion.m4'
    libtoolize: copying file `config/lt~obsolete.m4'
    + autoheader
    + automake --foreign --add-missing --copy
    + autoconf

And fixes various build problems in weird cases.

This is how GNU envisions this mess works at least...

Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>