Sorry for the late response. I did not have internet access on Friday.

Dev, Vasu wrote:
> 
> With this patch, the entire fc_lun_reset_send() has pkt lock
> held while sending frame down via fc_exch.c and network layer.
> The fc_exch.c can sleep in exch allocation, I need to fix that

Ah shoot. So we cannot hold spin locks while calling exch_seq_send? The 
srr and rec functions have the pkt lock held while calling exch_seq_send 
too.

Did you see my mail where I thought it could sleep or where did you see 
this can happen? I ask because I might have been wrong. I thought it 
could for a while but when I looked at the code again I thought it would 
not actually allow us to be preempted like I thought originally. Did I 
read it write the first time, or did you find something else?


> and that is a separate issue but in general what do you think on
> calling into fc_exch.c with or without any lock held ?
> 

For fc_fcp.c we just have those issues where we want to set the seq_ptr 
after we call exch_seq_send, so if there was some crazy case where we 
send the sequence, and it completes on a another thread before 
exch_seq_send returns the fc_fcp.c response handler is going to get 
confused. Does fc_exch.c prevent this type of race for the upper layer?
_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel

Reply via email to