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