From: Or Gerlitz <ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
To: Bart Van Assche <bvanassche-HInyCGIudOg@public.gmane.org>
Cc: David Dillow <dillowda-1Heg1YXhbW8@public.gmane.org>,
Roland Dreier <roland-BHEL68pLQRGGvPXPguhicg@public.gmane.org>,
James Bottomley
<James.Bottomley-JuX6DAaQMKPCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>,
"linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
linux-scsi <linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
fujita.tomonori-Zyj7fXuS5i5L9jVzuh4AOg@public.gmane.org,
rcj-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org,
Alex Turin <alextu-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Subject: Re: [PATCH 00/11] First pass at merging Bart's HA work
Date: Thu, 6 Dec 2012 16:27:14 +0200 [thread overview]
Message-ID: <50C0AB42.8040402@mellanox.com> (raw)
In-Reply-To: <50C0A76C.20500-HInyCGIudOg@public.gmane.org>
On 06/12/2012 16:10, Bart Van Assche wrote:
> On 12/05/12 22:32, Or Gerlitz wrote:
>> On Wed, Dec 5, 2012 at 8:50 PM, Bart Van Assche <bvanassche-HInyCGIudOg@public.gmane.org>
>> wrote:
>> [...]
>>> The only way to make I/O work reliably if a failure can occur at the
>>> transport layer is to use multipathd on top of ib_srp. If a
>>> connection fails
>>> for some reason, then the SRP SCSI host will be removed after the
>>> SCSI error
>>> handler has finished with its error recovery strategy. And once the
>>> transport layer is operational again and srp_daemon detects that the
>>> initiator is no longer logged in srp_daemon will make ib_srp log in
>>> again.
>>> multipathd will then cause I/O to continue over the new path.
>>
>> Claim basically understood and agreed however, does this also hold
>> when the link is back again, that is can't SRP login via this single
>> path also when there's no multipath on top?
>
> As far as I can remember the behavior of ib_srp has always been to try
> to reconnect once to the SRP target after the SCSI error handler
> kicked in. Other SCSI LLDs, e.g. the iSCSI initiator, can be
> configured to keep trying to reconnect after a transport layer
> failure. That has the advantage that the SCSI host number remains the
> same after reconnecting succeeded as before reconnecting started.
>
Bart,
The core problem here seems to be that scsi_remove_host simply never ends.
Observing all the tasks in the system (e.g using "echo t >
/proc/sysrq-trigger"), we've noted that
none of the SCSI EH are currently running, that is for all of them their
trace is the following
scsi_eh_0 S 0000000000000000 0 380 2 0x00000000
ffff88042c31be08 0000000000000046 ffff88042c31bfd8 0000000000014380
ffff88042c31a010 0000000000014380 0000000000014380 0000000000014380
ffff88042c31bfd8 0000000000014380 ffff88042f5be5c0 ffff88042bb48c40
Call Trace:
[<ffffffff8139b2c0>] ? scsi_unjam_host+0x1f0/0x1f0
[<ffffffff8155c599>] schedule+0x29/0x70
[<ffffffff8139b335>] scsi_error_handler+0x75/0x1c0
[<ffffffff8139b2c0>] ? scsi_unjam_host+0x1f0/0x1f0
[<ffffffff8107cc2e>] kthread+0xee/0x100
[<ffffffff8107cb40>] ? __init_kthread_worker+0x70/0x70
[<ffffffff8156676c>] ret_from_fork+0x7c/0xb0
[<ffffffff8107cb40>] ? __init_kthread_worker+0x70/0x70
However, the flow starting in srp_remove_target hangs somewhere in the
block layer waiting for something to happen
worker/11:1 D 0000000000000000 0 163 2 0x00000000
ffff88082be6f738 0000000000000046 ffff88082be6ffd8 0000000000014380
ffff88082be6e010 0000000000014380 0000000000014380 0000000000014380
ffff88082be6ffd8 0000000000014380 ffff88042f5ba580 ffff88082be6c1c0
Call Trace:
[<ffffffff8155c599>] schedule+0x29/0x70
[<ffffffff8155a60f>] schedule_timeout+0x14f/0x240
[<ffffffff810674f0>] ? lock_timer_base+0x70/0x70
[<ffffffff8155c43b>] wait_for_common+0x11b/0x170
[<ffffffff81091ab0>] ? try_to_wake_up+0x300/0x300
[<ffffffff8155c543>] wait_for_completion_timeout+0x13/0x20
[<ffffffff8125ecc3>] blk_execute_rq+0x133/0x1c0
[<ffffffff81257830>] ? get_request+0x210/0x3d0
[<ffffffff8139dfb8>] scsi_execute+0xe8/0x180
[<ffffffff8139e1f7>] scsi_execute_req+0xa7/0x110
[<ffffffffa0086498>] sd_sync_cache+0xd8/0x130 [sd_mod]
[<ffffffff8137180e>] ? __dev_printk+0x3e/0x90
[<ffffffff81371b45>] ? dev_printk+0x45/0x50
[<ffffffffa0086700>] sd_shutdown+0xd0/0x150 [sd_mod]
[<ffffffffa008691c>] sd_remove+0x7c/0xc0 [sd_mod]
[<ffffffff81375dec>] __device_release_driver+0x7c/0xe0
[<ffffffff81375f5f>] device_release_driver+0x2f/0x50
[<ffffffff81374e46>] bus_remove_device+0x126/0x190
[<ffffffff81372bbb>] device_del+0x14b/0x250
[<ffffffff813a2878>] __scsi_remove_device+0x1b8/0x1d0
[<ffffffff8139eba6>] scsi_forget_host+0xf6/0x110
[<ffffffff81396448>] scsi_remove_host+0x108/0x1e0
[<ffffffffa0536c38>] srp_remove_target+0xb8/0x150 [ib_srp]
[<ffffffffa0536d34>] srp_remove_work+0x64/0xa0 [ib_srp]
[<ffffffff81074ce2>] process_one_work+0x1c2/0x4a0
[<ffffffff81074c70>] ? process_one_work+0x150/0x4a0
[<ffffffffa0536cd0>] ? srp_remove_target+0x150/0x150 [ib_srp]
[<ffffffff8107746e>] worker_thread+0x12e/0x370
[<ffffffff81077340>] ? manage_workers+0x180/0x180
[<ffffffff8107cc2e>] kthread+0xee/0x100
[<ffffffff8107cb40>] ? __init_kthread_worker+0x70/0x70
[<ffffffff8156676c>] ret_from_fork+0x7c/0xb0
[<ffffffff8107cb40>] ? __init_kthread_worker+0x70/0x70
looking on the current locks in the system, we see that this kworker task
holds four locks, but none of them seems to be mutually held by another
task,
Showing all locks held in the system:
4 locks held by kworker/11:1/163:
#0: (events_long){.+.+.+}, at: [<ffffffff81074c70>]
process_one_work+0x150/0x4a0
#1: ((&target->remove_work)){+.+.+.}, at: [<ffffffff81074c70>]
process_one_work+0x150/0x4a0
#2: (&shost->scan_mutex){+.+.+.}, at: [<ffffffff81396374>]
scsi_remove_host+0x34/0x1e0
#3: (&__lockdep_no_validate__){......}, at: [<ffffffff81375f57>]
device_release_driver+0x27/0x50
1 lock held by bash/6298:
#0: (&tty->atomic_read_lock){+.+...}, at: [<ffffffff81339a9e>]
n_tty_read+0x58e/0x960
1 lock held by mingetty/6319:
#0: (&tty->atomic_read_lock){+.+...}, at: [<ffffffff81339a9e>]
n_tty_read+0x58e/0x960
1 lock held by mingetty/6321:
#0: (&tty->atomic_read_lock){+.+...}, at: [<ffffffff81339a9e>]
n_tty_read+0x58e/0x960
1 lock held by mingetty/6323:
#0: (&tty->atomic_read_lock){+.+...}, at: [<ffffffff81339a9e>]
n_tty_read+0x58e/0x960
1 lock held by mingetty/6325:
#0: (&tty->atomic_read_lock){+.+...}, at: [<ffffffff81339a9e>]
n_tty_read+0x58e/0x960
1 lock held by mingetty/6327:
#0: (&tty->atomic_read_lock){+.+...}, at: [<ffffffff81339a9e>]
n_tty_read+0x58e/0x960
1 lock held by mingetty/6329:
#0: (&tty->atomic_read_lock){+.+...}, at: [<ffffffff81339a9e>]
n_tty_read+0x58e/0x960
1 lock held by agetty/6337:
#0: (&tty->atomic_read_lock){+.+...}, at: [<ffffffff81339a9e>]
n_tty_read+0x58e/0x960
2 locks held by bash/6479:
#0: (sysrq_key_table_lock){......}, at: [<ffffffff81340f52>]
__handle_sysrq+0x32/0x190
#1: (tasklist_lock){.+.+..}, at: [<ffffffff810b7b04>]
debug_show_all_locks+0x44/0x1e0
Alex and Or.
--
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:[~2012-12-06 14:27 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-26 4:44 [PATCH 00/11] First pass at merging Bart's HA work David Dillow
2012-11-26 4:44 ` [PATCH 01/11] IB/srp: enlarge block layer timeout David Dillow
2012-11-26 4:44 ` [PATCH 02/11] IB/srp: simplify state tracking David Dillow
2012-11-26 9:46 ` Bart Van Assche
[not found] ` <50B33A91.3060103-HInyCGIudOg@public.gmane.org>
2012-11-27 3:56 ` David Dillow
2012-11-26 4:44 ` [PATCH 05/11] IB/srp: destroy and recreate QP and CQs on each connection David Dillow
[not found] ` <8fa9a268ec4dc587970161efe94968f3263aad3b.1353903448.git.dillowda-1Heg1YXhbW8@public.gmane.org>
2012-11-26 18:57 ` Bart Van Assche
2012-11-26 4:44 ` [PATCH 06/11] IB/srp: send disconnect request without waiting for CM timewait exit David Dillow
2012-11-26 4:44 ` [PATCH 07/11] IB/srp: Document sysfs attributes David Dillow
[not found] ` <cover.1353903448.git.dillowda-1Heg1YXhbW8@public.gmane.org>
2012-11-26 4:44 ` [PATCH 03/11] IB/srp: don't send anything on a bad QP David Dillow
2012-11-26 9:17 ` Bart Van Assche
[not found] ` <50B333AF.6040509-HInyCGIudOg@public.gmane.org>
2012-11-27 3:31 ` David Dillow
2012-11-26 4:44 ` [PATCH 04/11] IB/srp: keep processing commands during host removal David Dillow
[not found] ` <8715294a23dded5879b3a327c470d9b6a39ddbc4.1353903448.git.dillowda-1Heg1YXhbW8@public.gmane.org>
2012-11-26 9:43 ` Bart Van Assche
2012-11-27 3:16 ` David Dillow
2012-11-26 4:44 ` [PATCH 08/11] srp_transport: Fix attribute registration David Dillow
2012-11-26 4:44 ` [PATCH 09/11] srp_transport: Simplify attribute initialization code David Dillow
2012-11-26 5:02 ` David Dillow
2012-11-26 4:44 ` [PATCH 11/11] IB/srp: Allow SRP disconnect through sysfs David Dillow
2012-11-26 4:44 ` [PATCH 10/11] srp_transport: Document sysfs attributes David Dillow
2012-11-26 7:57 ` [PATCH 00/11] First pass at merging Bart's HA work Or Gerlitz
2012-11-27 4:53 ` David Dillow
2012-11-26 18:50 ` Roland Dreier
2012-11-26 19:15 ` James Bottomley
2012-11-26 19:22 ` Roland Dreier
2012-11-27 4:04 ` David Dillow
[not found] ` <1353989041.28917.24.camel-1q1vX8mYZiGLUyTwlgNVppKKF0rrzTr+@public.gmane.org>
2012-11-27 6:42 ` Or Gerlitz
2012-11-29 20:21 ` Roland Dreier
[not found] ` <CAL1RGDXpdWL_r7sWp=vvvXH4jxFgjDL+XcEGgKo-44=wrOBmtA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-30 2:21 ` David Dillow
2012-12-05 18:23 ` Or Gerlitz
[not found] ` <CAJZOPZJBTRXftrW5NWEEHnf2QWsni0HMTAV_PKSgDtA7GO=wRw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-12-05 18:50 ` Bart Van Assche
[not found] ` <50BF9760.2080801-HInyCGIudOg@public.gmane.org>
2012-12-05 19:50 ` Bart Van Assche
2012-12-05 21:32 ` Or Gerlitz
2012-12-06 14:10 ` Bart Van Assche
[not found] ` <50C0A76C.20500-HInyCGIudOg@public.gmane.org>
2012-12-06 14:27 ` Or Gerlitz [this message]
[not found] ` <50C0AB42.8040402-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2012-12-06 15:04 ` Bart Van Assche
[not found] ` <50C0B407.4010706-HInyCGIudOg@public.gmane.org>
2012-12-06 15:46 ` Or Gerlitz
2012-12-06 15:55 ` Alex Turin
[not found] ` <50C0BFE0.909-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2012-12-07 21:47 ` Vu Pham
[not found] ` <50C263E2.1070805-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2012-12-08 11:15 ` Bart Van Assche
2012-12-07 8:19 ` Or Gerlitz
2012-11-27 16:34 ` Bart Van Assche
[not found] ` <50B4EBA3.7070400-HInyCGIudOg@public.gmane.org>
2012-11-27 18:10 ` Joseph Glanville
2012-11-27 22:13 ` Or Gerlitz
[not found] ` <CAJZOPZJ6tNimvQGKa6E0ttowM8WWxCMR7s9BMWebVOEYtQ+TCQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-28 13:33 ` 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=50C0AB42.8040402@mellanox.com \
--to=ogerlitz-vpraknaxozvwk0htik3j/w@public.gmane.org \
--cc=James.Bottomley-JuX6DAaQMKPCXq6kfMZ53/egYHeGw8Jk@public.gmane.org \
--cc=alextu-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=bvanassche-HInyCGIudOg@public.gmane.org \
--cc=dillowda-1Heg1YXhbW8@public.gmane.org \
--cc=fujita.tomonori-Zyj7fXuS5i5L9jVzuh4AOg@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=rcj-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
--cc=roland-BHEL68pLQRGGvPXPguhicg@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.