On Mon, Oct 24, 2011 at 11:01 PM, Roland Dreier <rol...@purestorage.com> wrote:
> On Mon, Oct 24, 2011 at 11:33 AM, Nicholas A. Bellinger
> <n...@linux-iscsi.org> wrote:
>>> - Handle IB completion timeouts. Although the InfiniBand Architecture
>>> Manual specifies that a HCA must generate an error completion for each
>>> pending work item when a queue pair reset is issued, an important
>>> class of HCAs doesn't do this (that includes the HCA in your test
>>> setup). In the SCST version of this driver such timeouts are handled
>>> by the function srpt_pending_cmd_timeout().
>
> Hold on... not sure what you mean by a "queue pair reset" but the IB
> spec does not say that a flush error should be generated when a QP is
> transitioned to the "reset" state.  The flush error completions are
> required when a QP is transitioned to the "error" state, and in fact
> completion entries may be lost when a QP transitions to "reset".

I was referring to transitioning a QP to the error state -- see also
srpt_ch_qp_err().

> As far as I know every HCA supported by Linux does implement this
> correctly.  Which class did you have in mind as not doing that?

At least QDR ConnectX 2 HCAs with fairly recent firmware. This
behavior can be reproduced easily with the SCST version of ib_srpt as
follows:
- Log in from an SRP initiator to ib_srpt.
- Start a direct I/O read test, e.g. with fio.
- Issue the command "rmmod ib_srpt" on the target during I/O.

Bart.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to