linux/drivers/infiniband/hw/cxgb3
Shani Michaeli 7083e42ee2 IB/core: Add "type 2" memory windows support
This patch enhances the IB core support for Memory Windows (MWs).

MWs allow an application to have better/flexible control over remote
access to memory.

Two types of MWs are supported, with the second type having two flavors:

    Type 1  - associated with PD only
    Type 2A - associated with QPN only
    Type 2B - associated with PD and QPN

Applications can allocate a MW once, and then repeatedly bind the MW
to different ranges in MRs that are associated to the same PD. Type 1
windows are bound through a verb, while type 2 windows are bound by
posting a work request.

The 32-bit memory key is composed of a 24-bit index and an 8-bit
key. The key is changed with each bind, thus allowing more control
over the peer's use of the memory key.

The changes introduced are the following:

* add memory window type enum and a corresponding parameter to ib_alloc_mw.
* type 2 memory window bind work request support.
* create a struct that contains the common part of the bind verb struct
  ibv_mw_bind and the bind work request into a single struct.
* add the ib_inc_rkey helper function to advance the tag part of an rkey.

Consumer interface details:

* new device capability flags IB_DEVICE_MEM_WINDOW_TYPE_2A and
  IB_DEVICE_MEM_WINDOW_TYPE_2B are added to indicate device support
  for these features.

  Devices can set either IB_DEVICE_MEM_WINDOW_TYPE_2A or
  IB_DEVICE_MEM_WINDOW_TYPE_2B if it supports type 2A or type 2B
  memory windows. It can set neither to indicate it doesn't support
  type 2 windows at all.

* modify existing provides and consumers code to the new param of
  ib_alloc_mw and the ib_mw_bind_info structure

Signed-off-by: Haggai Eran <haggaie@mellanox.com>
Signed-off-by: Shani Michaeli <shanim@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2013-02-21 11:51:45 -08:00
..
cxio_dbg.c
cxio_hal.c RDMA/cxgb3,cxgb4: Remove dead code 2011-01-10 17:41:43 -08:00
cxio_hal.h RDMA/cxgb3: Don't exceed the max HW CQ depth 2010-09-02 14:52:21 -07:00
cxio_resource.c
cxio_resource.h
cxio_wr.h tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
iwch_cm.c RDMA/cxgb3: use WARN 2012-11-26 11:08:16 -08:00
iwch_cm.h
iwch_cq.c
iwch_ev.c RDMA/cxgb3: Serialize calls to CQ's comp_handler 2011-10-31 11:33:17 -07:00
iwch_mem.c
iwch_provider.c IB/core: Add "type 2" memory windows support 2013-02-21 11:51:45 -08:00
iwch_provider.h RDMA/cxgb3: Serialize calls to CQ's comp_handler 2011-10-31 11:33:17 -07:00
iwch_qp.c IB/core: Add "type 2" memory windows support 2013-02-21 11:51:45 -08:00
iwch_user.h RDMA/cxgb3: When a user QP is marked in error, also mark the CQs in error 2010-10-22 22:00:53 -07:00
iwch.c RDMA/cxgb3: Shrink .text with compile-time init of handlers arrays 2010-04-28 14:57:40 -07:00
iwch.h
Kconfig Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
Makefile chelsio: Move the Chelsio drivers 2011-08-10 19:54:52 -07:00
tcb.h