On 02/24/2010 09:49 AM, Or Gerlitz wrote:
Mike Christie wrote:
the noop-out based watch-dog serve all transports, correct?
Yes

okay

narrow down things and understand if/what is the transport role:
For the nop out path, the trasnport just has to send/recv the nop pdu/response

okay, fair-enough

They do not have to make those calls for multipath to work. Multipath
will work better if the transport can signal when there is a problem,
because we can stop using a bad path and get IO going to a working path
faster. If the transport does nothing then we have to rely on the scsi
error handler/timeout to detect the problem and that is very slow.

I am still confused, in somehow black box manner, I understand and see (...) 
that:

A) the nop out based watch-dog serves all transports

B) if/when the transport doesn't signal to iscsi there's a problem with a 
session
multipathing works much more slower.

combining A&&  B I still don't see what is the exact role of the watch-dog, 
anyway,

The nop watch dog is more of generic catch all problems. I think I was saying offlist that iscsi_tcp is not able to detect many transport problems quickly. For example if you just pulled a cable somewhere in the network, iscsi_tcp may not get some event telling us this. If nops are off, then we would have to wait for the scsi cmd timer to fire. To speed this type of failure up, we do the nops.


If for iser you can figure out every transport problem with some sort of event notification system then you could turn off nops.


maybe you should let me get some more millage on the thing and I'll get that...


You should also change your ep_disconnect because it is not
supposed to block (did we talk about this or was this just bnx2i), since
it will stop iscsid from processing other events.

no, I didn't realized ep_connect shouldn't block up till we brought it here. 
Couples of years back when we did ep_connect/poll/disconnect we said that 
ep_connect initiates the connection establishment process and ep_poll reports 
about the progress. It turns out that I didn't pay attention to the price payed 
when ep_disconnect blocks. Let me take a look if I can just change it 
internally in iser or a patch to iscsi is needed, thanks for pointing this out!


Let me know if you need something like a ep_discocnnect_poll() where the ep_disconnect() starts the disconnect, then then new ep_disconnect_poll would wait for it to complete.

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.

Reply via email to