On Mon, Sep 21, 2009 at 5:56 PM, Chris Worley <worl...@gmail.com> wrote:
> On Mon, Sep 21, 2009 at 9:22 AM, Bart Van Assche
> <bart.vanass...@gmail.com> wrote:
>> Unless you will report the opposite I assume that the above issue (SRP
>> timeouts) has been solved by the solution I sent you via private
>> e-mail, namely to load the SRPT kernel module with the parameter
>> 'thread' set to one (modprobe ib_srpt thread=1).
>
> I do view that as a work-around, as it implies there is an issue in
> the threads... and multiple threads do provide more performance (which
> is what IB is all about).

This does not imply a threading issue in ib_srpt. And more threads do
not always provide higher performance. And you are misunderstanding
the effect of the ib_srpt kernel parameter called 'thread'. The effect
of this parameter is as follows:
* thread=0: as much as possible of the SRP protocol is processed in IB
interrupt context.
* thread=1: a kernel thread handles all SRP protocol processing. Work
is delegated from IB interrupt context to the SRPT kernel thread via a
queue (see also the srpt_completion() function in file ib_srpt.c).

So the kernel parameter 'thread' of ib_srpt allows to choose between
two significantly different behaviors of ib_srpt.

My hypothesis is that in your setup running ib_srpt with thread=0
resulted in SRPT's completion queue handler (srpt_completion()), which
keeps running as long as more completion queue elements can be
processed, took up too much time, and that this finally resulted in
remote SRP initiator disconnects.

Bart.
_______________________________________________
general mailing list
general@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to