[ofa-general] Pending libibverbs patches?

Roland Dreier rdreier at cisco.com
Wed Apr 16 14:05:16 PDT 2008


 > If the section stating the different functions seems not useful it can
 > be removed, I will be happy to hear what other people think, anyway,
 > this section not what this man page is focusing on. I agree that more
 > has to be said on issues such as IB/iWARP differences, thread-safety,
 > fork, etc, so in case you prefer to see this "more" coming out before
 > merging anything, let it be, but please note that its really uneasy
 > for new comers to start programming to IB/iWARP without any man page
 > that gives some generation notion on what is this libibverbs. In that
 > respect, maybe you can merge the first portion of the page without the
 > function listing, and later we can add more info on the various
 > issues?

OK, if you can send a verbs.7 page that includes what you see as the
critical information then I can look at including it.

By the way, I went through libibverbs and tried to make everything
transport agnostic rather that talking only about InfiniBand.  How does
this diff look to people?

diff --git a/README b/README
index 0b1b114..848eb05 100644
--- a/README
+++ b/README
@@ -1,10 +1,11 @@
 Introduction
 ============
 
-libibverbs is a library that allows programs to use InfiniBand "verbs"
-for direct access to IB hardware from userspace.  For more information
-on verbs, see the InfiniBand Architecture Specification vol. 1,
-especially chapter 11.
+libibverbs is a library that allows programs to use RDMA "verbs" for
+direct access to RDMA (currently InfiniBand and iWARP) hardware from
+userspace.  For more information on RDMA verbs, see the InfiniBand
+Architecture Specification vol. 1, especially chapter 11, and the RDMA
+Consortium's RDMA Protocol Verbs Specification.
 
 Using libibverbs
 ================
@@ -28,9 +29,9 @@ can be used.  This will create device nodes named
 
     /dev/infiniband/uverbs0
 
-and so on.  Since the InfiniBand userspace verbs should be safe for
-use by non-privileged, you may want to add an appropriate MODE or
-GROUP to your udev rule.
+and so on.  Since the RDMA userspace verbs should be safe for use by
+non-privileged users, you may want to add an appropriate MODE or GROUP
+to your udev rule.
 
 Permissions
 -----------
@@ -102,7 +103,7 @@ Bugs should be reported to the OpenFabrics mailing list
  * Information about your system:
    - Linux distribution and version
    - Linux kernel and version
-   - InfiniBand hardware and firmware version
+   - InfiniBand/iWARP hardware and firmware version
    - ... any other relevant information
 
  * How to reproduce the bug.  Command line arguments for a libibverbs
diff --git a/debian/changelog b/debian/changelog
index 24582f0..982760d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,9 +4,11 @@ libibverbs (1.1.1-2) unstable; urgency=low
   * Use DEB_DH_MAKESHLIBS_ARGS_ALL to pass appropriate -V option to
     dh_makeshlibs, since new symbols were added in libibverbs 1.1.0.
     (Closes: #465435)
-  * Add debian/watch file
+  * Add debian/watch file.
+  * Update control file to talk about generic RDMA and iWARP, not just 
+    InfiniBand, since libibverbs works with both IB and iWARP.
 
- -- Roland Dreier <rolandd at cisco.com>  Wed, 12 Mar 2008 10:39:38 -0700
+ -- Roland Dreier <rolandd at cisco.com>  Wed, 16 Apr 2008 14:01:58 -0700
 
 libibverbs (1.1.1-1) unstable; urgency=low
 
diff --git a/debian/control.in b/debian/control.in
index 62299fd..7cf933a 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -10,13 +10,14 @@ Package: libibverbs1
 Section: libs
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}, adduser
-Description: A library for direct userspace use of InfiniBand
- libibverbs is a library that allows userspace processes to use
- InfiniBand "verbs" as described in the InfiniBand Architecture
- Specification.  InfiniBand is a high-throughput, low-latency
- networking technology.  InfiniBand host channel adapters (HCAs)
- commonly support direct hardware access from userspace (kernel
- bypass), and libibverbs supports this when available.
+Description: A library for direct userspace use of RDMA (InfiniBand/iWARP)
+ libibverbs is a library that allows userspace processes to use RDMA
+ "verbs" as described in the InfiniBand Architecture Specification and
+ the RDMA Protocol Verbs Specification.  iWARP NICs support RDMA over
+ ethernet, while InfiniBand is a high-throughput, low-latency
+ networking technology.  InfiniBand host channel adapters (HCAs) and
+ iWARP NICs commonly support direct hardware access from userspace
+ (kernel bypass), and libibverbs supports this when available.
  .
  For this library to be useful, a device-specific plug-in module
  should also be installed.
@@ -28,12 +29,13 @@ Section: libdevel
 Architecture: any
 Depends: ${misc:Depends}, libibverbs1 (= ${binary:Version})
 Description: Development files for the libibverbs library
- libibverbs is a library that allows userspace processes to use
- InfiniBand "verbs" as described in the InfiniBand Architecture
- Specification.  InfiniBand is a high-throughput, low-latency
- networking technology.  InfiniBand host channel adapters (HCAs)
- commonly support direct hardware access from userspace (kernel
- bypass), and libibverbs supports this when available.
+ libibverbs is a library that allows userspace processes to use RDMA
+ "verbs" as described in the InfiniBand Architecture Specification and
+ the RDMA Protocol Verbs Specification.  iWARP NICs support RDMA over
+ ethernet, while InfiniBand is a high-throughput, low-latency
+ networking technology.  InfiniBand host channel adapters (HCAs) and
+ iWARP NICs commonly support direct hardware access from userspace
+ (kernel bypass), and libibverbs supports this when available.
  .
  This package is needed to compile programs against libibverbs1.
  It contains the header files and static libraries (optionally)
@@ -45,12 +47,13 @@ Priority: extra
 Architecture: any
 Depends: ${misc:Depends}, libibverbs1 (= ${binary:Version})
 Description: Debugging symbols for the libibverbs library
- libibverbs is a library that allows userspace processes to use
- InfiniBand "verbs" as described in the InfiniBand Architecture
- Specification.  InfiniBand is a high-throughput, low-latency
- networking technology.  InfiniBand host channel adapters (HCAs)
- commonly support direct hardware access from userspace (kernel
- bypass), and libibverbs supports this when available.
+ libibverbs is a library that allows userspace processes to use RDMA
+ "verbs" as described in the InfiniBand Architecture Specification and
+ the RDMA Protocol Verbs Specification.  iWARP NICs support RDMA over
+ ethernet, while InfiniBand is a high-throughput, low-latency
+ networking technology.  InfiniBand host channel adapters (HCAs) and
+ iWARP NICs commonly support direct hardware access from userspace
+ (kernel bypass), and libibverbs supports this when available.
  .
  This package contains the debugging symbols associated with
  libibverbs1. They will automatically be used by gdb for debugging
@@ -61,12 +64,13 @@ Section: net
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Examples for the libibverbs library
- libibverbs is a library that allows userspace processes to use
- InfiniBand "verbs" as described in the InfiniBand Architecture
- Specification.  InfiniBand is a high-throughput, low-latency
- networking technology.  InfiniBand host channel adapters (HCAs)
- commonly support direct hardware access from userspace (kernel
- bypass), and libibverbs supports this when available.
+ libibverbs is a library that allows userspace processes to use RDMA
+ "verbs" as described in the InfiniBand Architecture Specification and
+ the RDMA Protocol Verbs Specification.  iWARP NICs support RDMA over
+ ethernet, while InfiniBand is a high-throughput, low-latency
+ networking technology.  InfiniBand host channel adapters (HCAs) and
+ iWARP NICs commonly support direct hardware access from userspace
+ (kernel bypass), and libibverbs supports this when available.
  .
  This package contains useful libibverbs1 example programs such as
  ibv_devinfo, which displays information about InfiniBand devices.
diff --git a/libibverbs.spec.in b/libibverbs.spec.in
index ad57c61..f092b68 100644
--- a/libibverbs.spec.in
+++ b/libibverbs.spec.in
@@ -1,7 +1,7 @@
 Name: libibverbs
 Version: 1.1.1
 Release: 1%{?dist}
-Summary: A library for direct userspace use of InfiniBand hardware
+Summary: A library for direct userspace use of RDMA (InfiniBand/iWARP) hardware
 
 Group: System Environment/Libraries
 License: GPLv2 or BSD
@@ -12,10 +12,10 @@ Requires(post): /sbin/ldconfig
 Requires(postun): /sbin/ldconfig
 
 %description
-libibverbs is a library that allows userspace processes to use
-InfiniBand "verbs" as described in the InfiniBand Architecture
-Specification.  This includes direct hardware access for fast path
-operations.
+libibverbs is a library that allows userspace processes to use RDMA
+"verbs" as described in the InfiniBand Architecture Specification and
+the RDMA Protocol Verbs Specification.  This includes direct hardware
+access for fast path operations.
 
 For this library to be useful, a device-specific plug-in module should
 also be installed.
@@ -41,7 +41,7 @@ Requires: %{name} = %{version}-%{release}
 
 %description utils
 Useful libibverbs1 example programs such as ibv_devinfo, which
-displays information about InfiniBand devices.
+displays information about RDMA devices.
 
 %prep
 %setup -q -n %{name}- at VERSION@
diff --git a/man/ibv_alloc_pd.3 b/man/ibv_alloc_pd.3
index 017ab32..28b7953 100644
--- a/man/ibv_alloc_pd.3
+++ b/man/ibv_alloc_pd.3
@@ -13,7 +13,7 @@ ibv_alloc_pd, ibv_dealloc_pd \- allocate or deallocate a protection domain (PDs)
 .fi
 .SH "DESCRIPTION"
 .B ibv_alloc_pd()
-allocates a PD for the InfiniBand device context 
+allocates a PD for the RDMA device context 
 .I context\fR.
 .PP
 .B ibv_dealloc_pd()
@@ -27,8 +27,8 @@ returns a pointer to the allocated PD, or NULL if the request fails.
 returns 0 on success, or the value of errno on failure (which indicates the failure reason).
 .SH "NOTES"
 .B ibv_dealloc_pd()
-may fail if any other InfiniBand resource is still associated with the
-PD being freed.
+may fail if any other resource is still associated with the PD being
+freed.
 .SH "SEE ALSO"
 .BR ibv_reg_mr (3),
 .BR ibv_create_srq (3),
diff --git a/man/ibv_asyncwatch.1 b/man/ibv_asyncwatch.1
index aed316d..ece25f8 100644
--- a/man/ibv_asyncwatch.1
+++ b/man/ibv_asyncwatch.1
@@ -8,7 +8,7 @@ ibv_asyncwatch \- display asynchronous events
 
 .SH DESCRIPTION
 .PP
-Display asynchronous events forwarded to userspace for an InfiniBand device.
+Display asynchronous events forwarded to userspace for an RDMA device.
 
 .SH AUTHORS
 .TP
diff --git a/man/ibv_create_ah_from_wc.3 b/man/ibv_create_ah_from_wc.3
index 487f053..bc5d135 100644
--- a/man/ibv_create_ah_from_wc.3
+++ b/man/ibv_create_ah_from_wc.3
@@ -21,7 +21,7 @@ address handle (AH) from a work completion
 .B ibv_init_ah_from_wc()
 initializes the address handle (AH) attribute structure
 .I ah_attr
-for the InfiniBand device context
+for the RDMA device context
 .I context
 using the port number
 .I port_num\fR,
diff --git a/man/ibv_create_comp_channel.3 b/man/ibv_create_comp_channel.3
index e0e1e68..d8e17f1 100644
--- a/man/ibv_create_comp_channel.3
+++ b/man/ibv_create_comp_channel.3
@@ -15,7 +15,7 @@ destroy a completion event channel
 .fi
 .SH "DESCRIPTION"
 .B ibv_create_comp_channel()
-creates a completion event channel for the InfiniBand device context
+creates a completion event channel for the RDMA device context
 .I context\fR.
 .PP
 .B ibv_destroy_comp_channel()
@@ -29,13 +29,14 @@ returns a pointer to the created completion event channel, or NULL if the reques
 returns 0 on success, or the value of errno on failure (which indicates the failure reason).
 .SH "NOTES"
 A "completion channel" is an abstraction introduced by libibverbs that
-does not exist in the InfiniBand Architecture verbs specification.  A
-completion channel is essentially file descriptor that is used to
-deliver completion notifications to a userspace process.  When a
-completion event is generated for a completion queue (CQ), the event
-is delivered via the completion channel attached to that CQ.  This may
-be useful to steer completion events to different threads by using
-multiple completion channels.
+does not exist in the InfiniBand Architecture verbs specification or
+RDMA Protocol Verbs Specification.  A completion channel is
+essentially file descriptor that is used to deliver completion
+notifications to a userspace process.  When a completion event is
+generated for a completion queue (CQ), the event is delivered via the
+completion channel attached to that CQ.  This may be useful to steer
+completion events to different threads by using multiple completion
+channels.
 .PP
 .B ibv_destroy_comp_channel()
 fails if any CQs are still associated with the completion event
diff --git a/man/ibv_create_cq.3 b/man/ibv_create_cq.3
index bb256d5..211feea 100644
--- a/man/ibv_create_cq.3
+++ b/man/ibv_create_cq.3
@@ -18,7 +18,7 @@ ibv_create_cq, ibv_destroy_cq \- create or destroy a completion queue (CQ)
 .B ibv_create_cq()
 creates a completion queue (CQ) with at least
 .I cqe
-entries for the InfiniBand device context
+entries for the RDMA device context
 .I context\fR.
 The pointer
 .I cq_context
diff --git a/man/ibv_devices.1 b/man/ibv_devices.1
index 084d01a..99b27e5 100644
--- a/man/ibv_devices.1
+++ b/man/ibv_devices.1
@@ -1,14 +1,14 @@
 .TH IBV_DEVICES 1 "August 30, 2005" "libibverbs" "USER COMMANDS"
 
 .SH NAME
-ibv_devices \- list InfiniBand devices
+ibv_devices \- list RDMA devices
 
 .SH SYNOPSIS
 .B ibv_devices
 
 .SH DESCRIPTION
 .PP
-List InfiniBand devices available for use from userspace.
+List RDMA devices available for use from userspace.
 
 .SH SEE ALSO
 .BR ibv_devinfo (1)
diff --git a/man/ibv_devinfo.1 b/man/ibv_devinfo.1
index 5656e14..41878b2 100644
--- a/man/ibv_devinfo.1
+++ b/man/ibv_devinfo.1
@@ -1,7 +1,7 @@
 .TH IBV_DEVINFO 1 "August 30, 2005" "libibverbs" "USER COMMANDS"
 
 .SH NAME
-ibv_devinfo \- query InfiniBand devices
+ibv_devinfo \- query RDMA devices
 
 .SH SYNOPSIS
 .B ibv_devinfo
@@ -9,7 +9,7 @@ ibv_devinfo \- query InfiniBand devices
 
 .SH DESCRIPTION
 .PP
-Print information about InfiniBand devices available for use from userspace.
+Print information about RDMA devices available for use from userspace.
 
 .SH OPTIONS
 
@@ -22,10 +22,10 @@ use IB device \fIDEVICE\fR (default first device found)
 query port \fIPORT\fR (default all ports)
 
 \fB\-l\fR, \fB\-\-list\fR
-only list names of InfiniBand devices
+only list names of RDMA devices
 
 \fB\-v\fR, \fB\-\-verbose\fR
-print all available information about InfiniBand devices
+print all available information about RDMA devices
 
 .SH SEE ALSO
 .BR ibv_devices (1)
diff --git a/man/ibv_get_async_event.3 b/man/ibv_get_async_event.3
index 77e8be8..076f757 100644
--- a/man/ibv_get_async_event.3
+++ b/man/ibv_get_async_event.3
@@ -14,7 +14,7 @@ ibv_get_async_event, ibv_ack_async_event \- get or acknowledge asynchronous even
 .fi
 .SH "DESCRIPTION"
 .B ibv_get_async_event()
-waits for the next async event of the InfiniBand device context
+waits for the next async event of the RDMA device context
 .I context
 and returns it through the pointer
 .I event\fR,
diff --git a/man/ibv_get_device_guid.3 b/man/ibv_get_device_guid.3
index 03f444a..98c0499 100644
--- a/man/ibv_get_device_guid.3
+++ b/man/ibv_get_device_guid.3
@@ -2,7 +2,7 @@
 .\"
 .TH IBV_GET_DEVICE_GUID 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual"
 .SH "NAME"
-ibv_get_device_guid \- get an InfiniBand device's GUID
+ibv_get_device_guid \- get an RDMA device's GUID
 .SH "SYNOPSIS"
 .nf
 .B #include <infiniband/verbs.h>
@@ -11,7 +11,7 @@ ibv_get_device_guid \- get an InfiniBand device's GUID
 .fi
 .SH "DESCRIPTION"
 .B ibv_get_device_name()
-returns the Global Unique IDentifier (GUID) of the InfiniBand device
+returns the Global Unique IDentifier (GUID) of the RDMA device
 .I device\fR.
 .SH "RETURN VALUE"
 .B ibv_get_device_guid()
diff --git a/man/ibv_get_device_list.3 b/man/ibv_get_device_list.3
index 4dd8180..104c137 100644
--- a/man/ibv_get_device_list.3
+++ b/man/ibv_get_device_list.3
@@ -2,7 +2,7 @@
 .\"
 .TH IBV_GET_DEVICE_LIST 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual"
 .SH "NAME"
-ibv_get_device_list, ibv_free_device_list \- get and release list of available InfiniBand devices
+ibv_get_device_list, ibv_free_device_list \- get and release list of available RDMA devices
 .SH "SYNOPSIS"
 .nf
 .B #include <infiniband/verbs.h>
@@ -13,7 +13,7 @@ ibv_get_device_list, ibv_free_device_list \- get and release list of available I
 .fi
 .SH "DESCRIPTION"
 .B ibv_get_device_list()
-returns a NULL-terminated array of InfiniBand devices currently available.
+returns a NULL-terminated array of RDMA devices currently available.
 The argument
 .I num_devices
 is optional; if not NULL, it is set to the number of devices returned in the array.
@@ -25,7 +25,7 @@ returned by
 .B ibv_get_device_list()\fR.
 .SH "RETURN VALUE"
 .B ibv_get_device_list()
-returns the array of available InfiniBand devices, or NULL if the request fails.
+returns the array of available RDMA devices, or NULL if the request fails.
 .PP
 .B ibv_free_device_list()
 returns no value.
diff --git a/man/ibv_get_device_name.3 b/man/ibv_get_device_name.3
index c53f97d..284ea9f 100644
--- a/man/ibv_get_device_name.3
+++ b/man/ibv_get_device_name.3
@@ -2,7 +2,7 @@
 .\"
 .TH IBV_GET_DEVICE_NAME 3  2006-10-31 libibverbs "Libibverbs Programmer's Manual"
 .SH "NAME"
-ibv_get_device_name \- get an InfiniBand device's name
+ibv_get_device_name \- get an RDMA device's name
 .SH "SYNOPSIS"
 .nf
 .B #include <infiniband/verbs.h>
@@ -11,7 +11,7 @@ ibv_get_device_name \- get an InfiniBand device's name
 .fi
 .SH "DESCRIPTION"
 .B ibv_get_device_name()
-returns a human-readable name associated with the InfiniBand device
+returns a human-readable name associated with the RDMA device
 .I device\fR.
 .SH "RETURN VALUE"
 .B ibv_get_device_name()
diff --git a/man/ibv_open_device.3 b/man/ibv_open_device.3
index 1858a42..61fa82b 100644
--- a/man/ibv_open_device.3
+++ b/man/ibv_open_device.3
@@ -2,7 +2,7 @@
 .\"
 .TH IBV_OPEN_DEVICE 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual"
 .SH "NAME"
-ibv_open_device, ibv_close_device \- open and close an InfiniBand device context
+ibv_open_device, ibv_close_device \- open and close an RDMA device context
 .SH "SYNOPSIS"
 .nf
 .B #include <infiniband/verbs.h>
diff --git a/man/ibv_query_device.3 b/man/ibv_query_device.3
index f327769..3bf7511 100644
--- a/man/ibv_query_device.3
+++ b/man/ibv_query_device.3
@@ -2,7 +2,7 @@
 .\"
 .TH IBV_QUERY_DEVICE 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual"
 .SH "NAME"
-ibv_query_device \- query an InfiniBand device's attributes
+ibv_query_device \- query an RDMA device's attributes
 .SH "SYNOPSIS"
 .nf
 .B #include <infiniband/verbs.h>
diff --git a/man/ibv_query_port.3 b/man/ibv_query_port.3
index fd61eb9..c6b3b63 100644
--- a/man/ibv_query_port.3
+++ b/man/ibv_query_port.3
@@ -2,7 +2,7 @@
 .\"
 .TH IBV_QUERY_PORT 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual"
 .SH "NAME"
-ibv_query_port \- query an InfiniBand port's attributes
+ibv_query_port \- query an RDMA port's attributes
 .SH "SYNOPSIS"
 .nf
 .B #include <infiniband/verbs.h>
diff --git a/man/ibv_query_qp.3 b/man/ibv_query_qp.3
index fd1f41d..8da270e 100644
--- a/man/ibv_query_qp.3
+++ b/man/ibv_query_qp.3
@@ -68,7 +68,7 @@ returns 0 on success, or the value of errno on failure (which indicates the fail
 The argument
 .I attr_mask
 is a hint that specifies the minimum list of attributes to retrieve.
-Some InfiniBand devices may return extra attributes not requested, for
+Some RDMA devices may return extra attributes not requested, for
 example if the value can be returned cheaply.
 .PP
 Attribute values are valid if they have been set using



More information about the general mailing list