From: Bart Van Assche <bvanassche-HInyCGIudOg@public.gmane.org>
To: Vu Pham <vuhuong-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Cc: David Dillow <dave-i1Mk8JYDVaaSihdK6806/g@public.gmane.org>,
Roland Dreier <roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Sebastian Riemer
<sebastian.riemer-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>,
Jinpu Wang <jinpu.wang-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>,
linux-rdma <linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
linux-scsi <linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
James Bottomley
<jbottomley-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
Subject: Re: [PATCH v3 07/13] scsi_transport_srp: Add transport layer error handling
Date: Mon, 08 Jul 2013 20:42:59 +0200 [thread overview]
Message-ID: <51DB0833.3030908@acm.org> (raw)
In-Reply-To: <51DAF63D.9010906-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
On 07/08/13 19:26, Vu Pham wrote:
> After running cable pull test on two local IB links for several hrs,
> I/Os got stuck.
> Further commands "multipath -ll" or "fdisk -l" got stuck and never return
> Here are the stack dump for srp-x kernel threads.
> I'll run with #DEBUG to get more debug info on scsi host & rport
Hello Vu,
I had a quick look at the stack dump that was attached to your e-mail.
It shows that scsi_execute_req() hangs in blk_execute_rq(). It would be
appreciated if you could continue your tests with the kernel patch below
applied on top of v3 of this patch series. This patch should avoid that
a transport layer error that occurs after device removal has started can
cause the SCSI device state to change into "blocked". This patch also
causes such TL errors to fail I/O quickly (scsi_host_alloc() zero-
initializes the memory it allocates so no explicit initialization of the
"deleted" variable is necessary).
Thanks,
Bart.
diff --git a/drivers/scsi/scsi_transport_srp.c b/drivers/scsi/scsi_transport_srp.c
index 1b9ebd5..1bb7c63 100644
--- a/drivers/scsi/scsi_transport_srp.c
+++ b/drivers/scsi/scsi_transport_srp.c
@@ -522,6 +522,12 @@ void srp_start_tl_fail_timers(struct srp_rport *rport)
int fast_io_fail_tmo, dev_loss_tmo, delay;
mutex_lock(&rport->mutex);
+ if (rport->deleted) {
+ srp_rport_set_state(rport, SRP_RPORT_FAIL_FAST);
+ scsi_target_unblock(&shost->shost_gendev,
+ SDEV_TRANSPORT_OFFLINE);
+ goto unlock;
+ }
delay = rport->reconnect_delay;
fast_io_fail_tmo = rport->fast_io_fail_tmo;
dev_loss_tmo = rport->dev_loss_tmo;
@@ -542,6 +548,7 @@ void srp_start_tl_fail_timers(struct srp_rport *rport)
if (dev_loss_tmo >= 0)
queue_delayed_work(system_long_wq, &rport->dev_loss_work,
1UL * dev_loss_tmo * HZ);
+unlock:
mutex_unlock(&rport->mutex);
}
EXPORT_SYMBOL(srp_start_tl_fail_timers);
@@ -730,6 +737,7 @@ void srp_rport_del(struct srp_rport *rport)
mutex_lock(&rport->mutex);
if (rport->state == SRP_RPORT_BLOCKED)
__rport_fast_io_fail_timedout(rport);
+ rport->deleted = true;
mutex_unlock(&rport->mutex);
put_device(dev);
diff --git a/include/scsi/scsi_transport_srp.h b/include/scsi/scsi_transport_srp.h
index fbcc985..a4addcf 100644
--- a/include/scsi/scsi_transport_srp.h
+++ b/include/scsi/scsi_transport_srp.h
@@ -54,6 +54,7 @@ struct srp_rport {
int dev_loss_tmo;
struct delayed_work fast_io_fail_work;
struct delayed_work dev_loss_work;
+ bool deleted;
};
struct srp_function_template {
--
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
next prev parent reply other threads:[~2013-07-08 18:42 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-03 12:41 [PATCH v3 0/13] IB SRP initiator patches for kernel 3.11 Bart Van Assche
[not found] ` <51D41C03.4020607-HInyCGIudOg@public.gmane.org>
2013-07-03 12:43 ` [PATCH v3 01/13] IB/srp: Fix remove_one crash due to resource exhaustion Bart Van Assche
2013-07-03 12:44 ` [PATCH v3 02/13] IB/srp: Avoid that srp_reset_host() is skipped after a TL error Bart Van Assche
2013-07-03 12:45 ` [PATCH v3 03/13] IB/srp: Fail I/O fast if target offline Bart Van Assche
2013-07-03 12:50 ` [PATCH v3 04/13] IB/srp: Skip host settle delay Bart Van Assche
2013-07-03 12:51 ` [PATCH v3 05/13] IB/srp: Maintain a single connection per I_T nexus Bart Van Assche
2013-07-03 12:54 ` [PATCH v3 07/13] scsi_transport_srp: Add transport layer error handling Bart Van Assche
[not found] ` <51D41F13.6060203-HInyCGIudOg@public.gmane.org>
2013-07-03 15:14 ` David Dillow
2013-07-03 16:00 ` Bart Van Assche
[not found] ` <51D44A86.5050000-HInyCGIudOg@public.gmane.org>
2013-07-03 17:27 ` David Dillow
[not found] ` <1372872474.24238.43.camel-zHLflQxYYDO4Hhoo1DtQwJ9G+ZOsUmrO@public.gmane.org>
2013-07-03 18:24 ` Bart Van Assche
2013-07-03 18:57 ` David Dillow
[not found] ` <1372877861.24238.64.camel-zHLflQxYYDO4Hhoo1DtQwJ9G+ZOsUmrO@public.gmane.org>
2013-07-03 23:41 ` Vu Pham
2013-07-04 8:01 ` Bart Van Assche
[not found] ` <51D52BD7.1090506-HInyCGIudOg@public.gmane.org>
2013-07-04 8:16 ` Bart Van Assche
2013-07-08 20:37 ` David Dillow
2013-07-08 17:26 ` Vu Pham
[not found] ` <51DAF63D.9010906-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-07-08 18:42 ` Bart Van Assche [this message]
2013-07-03 12:55 ` [PATCH v3 08/13] IB/srp: Add srp_terminate_io() Bart Van Assche
[not found] ` <51D41F52.4000409-HInyCGIudOg@public.gmane.org>
2013-07-03 14:08 ` David Dillow
[not found] ` <1372860491.24238.0.camel-zHLflQxYYDO4Hhoo1DtQwJ9G+ZOsUmrO@public.gmane.org>
2013-07-03 14:45 ` Bart Van Assche
[not found] ` <51D43915.9000007-HInyCGIudOg@public.gmane.org>
2013-07-03 14:57 ` David Dillow
[not found] ` <1372863441.24238.26.camel-zHLflQxYYDO4Hhoo1DtQwJ9G+ZOsUmrO@public.gmane.org>
2013-07-03 15:13 ` David Dillow
2013-07-03 12:56 ` [PATCH v3 09/13] IB/srp: Use SRP transport layer error recovery Bart Van Assche
2013-07-03 12:57 ` [PATCH v3 10/13] IB/srp: Start timers if a transport layer error occurs Bart Van Assche
2013-07-03 12:58 ` [PATCH v3 11/13] IB/srp: Make HCA completion vector configurable Bart Van Assche
[not found] ` <51D41FFC.6070105-HInyCGIudOg@public.gmane.org>
2013-07-14 9:43 ` Sagi Grimberg
[not found] ` <51E272A4.5030707-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-07-15 11:06 ` Bart Van Assche
[not found] ` <51E3D79D.9070808-HInyCGIudOg@public.gmane.org>
2013-07-15 13:29 ` Sagi Grimberg
[not found] ` <51E3F931.9080903-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-07-15 18:23 ` Bart Van Assche
[not found] ` <51E43E22.2060502-HInyCGIudOg@public.gmane.org>
2013-07-16 10:11 ` Sagi Grimberg
[not found] ` <51E51C56.50906-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-07-16 10:58 ` Bart Van Assche
[not found] ` <51E5275F.2070009-HInyCGIudOg@public.gmane.org>
2013-07-16 12:41 ` Sagi Grimberg
2013-07-16 15:11 ` Bart Van Assche
[not found] ` <51E56296.2000403-HInyCGIudOg@public.gmane.org>
2013-07-17 9:27 ` Sagi Grimberg
2013-07-03 12:59 ` [PATCH v3 12/13] IB/srp: Make transport layer retry count configurable Bart Van Assche
[not found] ` <51D4204E.7040301-HInyCGIudOg@public.gmane.org>
2013-07-03 14:30 ` David Dillow
2013-07-03 13:00 ` [PATCH v3 13/13] IB/srp: Bump driver version and release date Bart Van Assche
2013-07-03 12:53 ` [PATCH v3 06/13] IB/srp: Keep rport as long as the IB transport layer Bart Van Assche
2013-07-03 13:38 ` [PATCH v3 0/13] IB SRP initiator patches for kernel 3.11 Or Gerlitz
2013-07-03 14:38 ` Bart Van Assche
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=51DB0833.3030908@acm.org \
--to=bvanassche-hinycgiudog@public.gmane.org \
--cc=dave-i1Mk8JYDVaaSihdK6806/g@public.gmane.org \
--cc=jbottomley-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org \
--cc=jinpu.wang-EIkl63zCoXaH+58JC4qpiA@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=sebastian.riemer-EIkl63zCoXaH+58JC4qpiA@public.gmane.org \
--cc=vuhuong-VPRAkNaXOzVWk0Htik3J/w@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.