History log of /drivers/infiniband/hw/cxgb3/iwch_cm.h
Revision Date Author Comments
6e47fe43502ba6dfe86d556661795d9bb0361309 06-Sep-2009 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb3: Don't free endpoints early

- Keep ref on connection request endpoints until either accepted or
rejected so it doesn't get freed early.

- Endpoint flags now need to be set via atomic bitops because they can
be set on both the iw_cxgb3 workqueue thread and user disconnect
threads.

- Don't move out of CLOSING too early due to multiple calls to
iwch_ep_disconnect.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
874d8df5ed6e36fed07b524c266f6a96dd6d10d9 30-Mar-2009 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb3: Release dependent resources only when endpoint memory is freed.

The cxgb3 l2t entry, hwtid, and dst entry were being released before
all the iwch_ep references were released. This can cause a crash in
t3_l2t_send_slow() and other places where the l2t entry is used.

The fix is to defer releasing these resources until all endpoint
references are gone.

Details:

- move flags field to the iwch_ep_common struct.
- add a flag indicating resources are to be released.
- release resources at endpoint free time instead of close/abort time.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
f8b0dfd15277974b5c9f3ff17f9e3ab6fdbe45ee 29-Apr-2008 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb3: Support peer-2-peer connection setup

Open MPI, Intel MPI and other applications don't respect the iWARP
requirement that the client (active) side of the connection send the
first RDMA message. This class of application connection setup is
called peer-to-peer. Typically once the connection is setup, _both_
sides want to send data.

This patch enables supporting peer-to-peer over the chelsio RNIC by
enforcing this iWARP requirement in the driver itself as part of RDMA
connection setup.

Connection setup is extended, when the peer2peer module option is 1,
such that the MPA initiator will send a 0B Read (the RTR) just after
connection setup. The MPA responder will suspend SQ processing until
the RTR message is received and reply-to.

In the longer term, this will be handled in a standardized way by
enhancing the MPA negotiation so peers can indicate whether they
want/need the RTR and what type of RTR (0B read, 0B write, or 0B send)
should be sent. This will be done by standardizing a few bits of the
private data in order to negotiate all this. However this patch
enables peer-to-peer applications now and allows most of the required
firmware and driver changes to be done and tested now.

Design:

- Add a module option, peer2peer, to enable this mode.

- New firmware support for peer-to-peer mode:

- a new bit in the rdma_init WR to tell it to do peer-2-peer
and what form of RTR message to send or expect.

- process _all_ preposted recvs before moving the connection
into rdma mode.

- passive side: defer completing the rdma_init WR until all
pre-posted recvs are processed. Suspend SQ processing until
the RTR is received.

- active side: expect and process the 0B read WR on offload TX
queue. Defer completing the rdma_init WR until all
pre-posted recvs are processed. Suspend SQ processing until
the 0B read WR is processed from the offload TX queue.

- If peer2peer is set, driver posts 0B read request on offload TX
queue just after posting the rdma_init WR to the offload TX queue.

- Add CQ poll logic to ignore unsolicitied read responses.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
989a1780698c65dfe093a6aa89ceeff84c31f528 29-Apr-2008 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb3: Correctly serialize peer abort path

Open MPI and other stress testing exposed a few bad bugs in handling
aborts in the middle of a normal close. Fix these by:

- serializing abort reply and peer abort processing with disconnect
processing

- warning (and ignoring) if ep timer is stopped when it wasn't running

- cleaning up disconnect path to correctly deal with aborting and
dead endpoints

- in iwch_modify_qp(), taking a ref on the ep before releasing the qp
lock if iwch_ep_disconnect() will be called. The ref is dropped
after calling disconnect.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
3371836383d63b627b228875f5ac63023cbf11d2 17-Apr-2008 Harvey Harrison <harvey.harrison@gmail.com> IB: Replace remaining __FUNCTION__ occurrences with __func__

__FUNCTION__ is gcc-specific, use __func__ instead.

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
de3d353072f9342f04112ba0504c3e294220cb8f 14-May-2007 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb3: Streaming -> RDMA mode transition fixes

Due to a HW issue, our current scheme to transition the connection from
streaming to rdma mode is broken on the passive side. The firmware
and driver now support a new transition scheme for the passive side:

- driver posts rdma_init_wr (now including the initial receive seqno)
- driver posts last streaming message via TX_DATA message (MPA start
response)
- uP atomically sends the last streaming message and transitions the
tcb to rdma mode.
- driver waits for wr_ack indicating the last streaming message was ACKed.

NOTE: This change also bumps the required firmware version to 4.3.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
aff9e39d97585486764572ab2f3bf5dfce18c660 26-Apr-2007 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb3: Support for new abort logic

The HW now posts 2 ABORT_RPL and/or PEER_ABORT_REQ messages. We need
to handle them by silenty dropping the 1st but mark that we're ready
for the final message. This plugs some close races between the uP and
HW. Also update the minimum required firmware version.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
c52daa29760818772ee4211be4ee8d1c78b888d5 15-Feb-2007 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb3: Remove Open Grid Computing copyrights in iw_cxgb3 driver

Remove the Open Grid Computing copyright. It shouldn't be there.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
b038ced7b3705bf0ac9b30e118af0f56ab48b847 13-Feb-2007 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb3: Add driver for Chelsio T3 RNIC

Add an RDMA/iWARP driver for the Chelsio T3 1GbE and 10GbE adapters.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>