All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vu Pham <vuhuong-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
To: Roland Dreier <rdreier-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
Cc: Linux RDMA list <linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [ofa-general][PATCH 2/4] SRP fail-over faster
Date: Thu, 22 Oct 2009 16:08:54 -0700	[thread overview]
Message-ID: <4AE0E606.6090805@mellanox.com> (raw)
In-Reply-To: <adatyy190ti.fsf-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 857 bytes --]

Roland Dreier wrote:
>  > >  > -	wait_for_completion(&target->done);
>  > >
>  > > How do you avoid leaking connection on module unload etc?  Don't we have
>  > > to wait for the disconnect to finish somewhere?
>  > >
>  > >  - R.
>  > >   
>  > Are you talking about cm_id?
>  > I think that we wait because we want to reuse cq/qp associate with the
>  > connection.
>  > On module unload, we destroy cm_id, cq, qp altogether.
>
> OK, I think I understand this piece locally (although if you delete the
> wait_for_completion() it would probably make more sense to delete the
> init_completion() just before it as well).
>
> However is it really a correct to reuse a cm_id that is in state
> timewait to initiate a new connection?  That seems pretty fragile to me.
>   
Here is the updated patch to remove both init_completion() and 
wait_for_completion()


[-- Attachment #2: srp_2_disconnect_without_wait.patch --]
[-- Type: text/plain, Size: 1094 bytes --]

Disconnect the connection without waiting (1 << max(timeout -8),0) ms

Signed-off-by: Vu Pham <vu-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>

 drivers/infiniband/ulp/srp/ib_srp.c |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)

diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
index 54c8fe2..dfa14de 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -415,13 +415,11 @@ static void srp_disconnect_target(struct srp_target_port *target)
 {
 	/* XXX should send SRP_I_LOGOUT request */
 
-	init_completion(&target->done);
 	if (ib_send_cm_dreq(target->cm_id, NULL, 0)) {
 		shost_printk(KERN_DEBUG, target->scsi_host,
 			     PFX "Sending CM DREQ failed\n");
 		return;
 	}
-	wait_for_completion(&target->done);
 }
 
 static void srp_remove_work(struct work_struct *work)
@@ -1301,7 +1299,6 @@ static int srp_cm_handler(struct ib_cm_id *cm_id, struct ib_cm_event *event)
 		shost_printk(KERN_ERR, target->scsi_host,
 			     PFX "connection closed\n");
 
-		comp = 1;
 		target->status = 0;
 		break;
 

      parent reply	other threads:[~2009-10-22 23:08 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-12 22:57 [ofa-general][PATCH 2/4] SRP fail-over faster Vu Pham
     [not found] ` <4AD3B443.7040107-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2009-10-14 18:04   ` Roland Dreier
     [not found]     ` <ada63aham2r.fsf-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
2009-10-14 19:59       ` Vu Pham
     [not found]         ` <4AD62D9D.1020900-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2009-10-14 20:29           ` Roland Dreier
     [not found]             ` <adatyy190ti.fsf-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
2009-10-14 21:00               ` Vu Pham
2009-10-22 23:08               ` Vu Pham [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4AE0E606.6090805@mellanox.com \
    --to=vuhuong-vpraknaxozvwk0htik3j/w@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=rdreier-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.