All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bart Van Assche <bart.vanassche-Sjgp3cTcYWE@public.gmane.org>
To: Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Bart Van Assche <bart.vanassche-Sjgp3cTcYWE@public.gmane.org>
Subject: [PATCH 7/7] IB/srp: Make CM timeout dependent on subnet timeout
Date: Fri,  6 Oct 2017 14:42:43 -0700	[thread overview]
Message-ID: <20171006214243.11296-8-bart.vanassche@wdc.com> (raw)
In-Reply-To: <20171006214243.11296-1-bart.vanassche-Sjgp3cTcYWE@public.gmane.org>

For small networks it is safe to reduce the subnet timeout from
its default value (18 for opensm) to 16. Make the SRP CM timeout
dependent on the subnet timeout such that decreasing the subnet
timeout also causes SRP failover and failback to occur faster.

Signed-off-by: Bart Van Assche <bart.vanassche-Sjgp3cTcYWE@public.gmane.org>
---
 drivers/infiniband/ulp/srp/ib_srp.c | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
index 463c3ed440eb..972d4b3c5223 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -711,6 +711,23 @@ static int srp_lookup_path(struct srp_rdma_ch *ch)
 	return ret;
 }
 
+static u8 srp_get_subnet_timeout(struct srp_host *host)
+{
+	struct ib_port_attr attr;
+	int ret;
+	u8 subnet_timeout = 18;
+
+	ret = ib_query_port(host->srp_dev->dev, host->port, &attr);
+	if (ret == 0)
+		subnet_timeout = attr.subnet_timeout;
+
+	if (unlikely(subnet_timeout < 15))
+		pr_warn("%s: subnet timeout %d may cause SRP login to fail.\n",
+			dev_name(&host->srp_dev->dev->dev), subnet_timeout);
+
+	return subnet_timeout;
+}
+
 static int srp_send_req(struct srp_rdma_ch *ch, bool multich)
 {
 	struct srp_target_port *target = ch->target;
@@ -719,6 +736,9 @@ static int srp_send_req(struct srp_rdma_ch *ch, bool multich)
 		struct srp_login_req   priv;
 	} *req = NULL;
 	int status;
+	u8 subnet_timeout;
+
+	subnet_timeout = srp_get_subnet_timeout(target->srp_host);
 
 	req = kzalloc(sizeof *req, GFP_KERNEL);
 	if (!req)
@@ -741,8 +761,8 @@ static int srp_send_req(struct srp_rdma_ch *ch, bool multich)
 	 * module parameters if anyone cared about setting them.
 	 */
 	req->param.responder_resources	      = 4;
-	req->param.remote_cm_response_timeout = 20;
-	req->param.local_cm_response_timeout  = 20;
+	req->param.remote_cm_response_timeout = subnet_timeout + 2;
+	req->param.local_cm_response_timeout  = subnet_timeout + 2;
 	req->param.retry_count                = target->tl_retry_count;
 	req->param.rnr_retry_count 	      = 7;
 	req->param.max_cm_retries 	      = 15;
-- 
2.14.2

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2017-10-06 21:42 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-06 21:42 [PATCH 0/7] SRP patches for kernel v4.15 Bart Van Assche
2017-10-06 21:42 ` [PATCH 4/7] IB/srp: Avoid a cable pull can trigger a kernel crash Bart Van Assche
     [not found]   ` <20171006214243.11296-5-bart.vanassche-Sjgp3cTcYWE@public.gmane.org>
2017-10-08 13:22     ` Leon Romanovsky
2017-10-08 13:22       ` Leon Romanovsky
2017-10-09 17:02       ` Bart Van Assche
2017-10-11 12:36     ` Sagi Grimberg
2017-10-11 12:36       ` Sagi Grimberg
     [not found] ` <20171006214243.11296-1-bart.vanassche-Sjgp3cTcYWE@public.gmane.org>
2017-10-06 21:42   ` [PATCH 1/7] IB/srpt: Limit the send and receive queue sizes to what the HCA supports Bart Van Assche
     [not found]     ` <20171006214243.11296-2-bart.vanassche-Sjgp3cTcYWE@public.gmane.org>
2017-10-11 12:31       ` Sagi Grimberg
2017-10-06 21:42   ` [PATCH 2/7] IB/srpt: Cache global L_Key Bart Van Assche
     [not found]     ` <20171006214243.11296-3-bart.vanassche-Sjgp3cTcYWE@public.gmane.org>
2017-10-08  9:01       ` Christoph Hellwig
     [not found]         ` <20171008090107.GA17153-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2017-10-09 16:57           ` Bart Van Assche
2017-10-06 21:42   ` [PATCH 3/7] IB/srpt: Change default behavior from using SRQ to not using SRQ Bart Van Assche
     [not found]     ` <20171006214243.11296-4-bart.vanassche-Sjgp3cTcYWE@public.gmane.org>
2017-10-08 10:03       ` Leon Romanovsky
     [not found]         ` <20171008100317.GR25829-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-10-09 16:56           ` Doug Ledford
     [not found]             ` <1507568205.46071.46.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-10-09 17:01               ` Bart Van Assche
     [not found]                 ` <1507568492.2674.11.camel-Sjgp3cTcYWE@public.gmane.org>
2017-10-09 17:12                   ` Doug Ledford
2017-10-10  4:14                   ` Leon Romanovsky
     [not found]                     ` <20171010041423.GJ1252-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-10-10 14:34                       ` Doug Ledford
     [not found]                         ` <9443ec1f-0acd-9fa3-4621-a29085d2c606-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-10-10 15:00                           ` Leon Romanovsky
     [not found]                             ` <20171010150018.GC2106-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-10-10 15:13                               ` Doug Ledford
     [not found]                                 ` <1507648402.46071.53.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-10-10 15:44                                   ` Leon Romanovsky
     [not found]                                     ` <20171010154439.GE2106-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-10-10 16:04                                       ` Bart Van Assche
     [not found]                                         ` <1507651473.2815.20.camel-Sjgp3cTcYWE@public.gmane.org>
2017-10-10 17:04                                           ` Jason Gunthorpe
     [not found]                                             ` <20171010170429.GA21288-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-10-10 17:10                                               ` Bart Van Assche
     [not found]                                                 ` <1507655454.2815.43.camel-Sjgp3cTcYWE@public.gmane.org>
2017-10-10 18:01                                                   ` Leon Romanovsky
2017-10-10 16:11                                       ` Doug Ledford
2017-10-06 21:42   ` [PATCH 5/7] IB/srp: Remove second argument of srp_destroy_qp() Bart Van Assche
     [not found]     ` <20171006214243.11296-6-bart.vanassche-Sjgp3cTcYWE@public.gmane.org>
2017-10-11 12:36       ` Sagi Grimberg
2017-10-06 21:42   ` [PATCH 6/7] IB/srp: Cache global rkey Bart Van Assche
2017-10-06 21:42   ` Bart Van Assche [this message]
     [not found]     ` <20171006214243.11296-8-bart.vanassche-Sjgp3cTcYWE@public.gmane.org>
2017-10-11 12:38       ` [PATCH 7/7] IB/srp: Make CM timeout dependent on subnet timeout Sagi Grimberg

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=20171006214243.11296-8-bart.vanassche@wdc.com \
    --to=bart.vanassche-sjgp3ctcywe@public.gmane.org \
    --cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@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.