From: "Nicholas A. Bellinger" <nab@linux-iscsi.org>
To: target-devel <target-devel@vger.kernel.org>
Cc: linux-scsi <linux-scsi@vger.kernel.org>,
lkml <linux-kernel@vger.kernel.org>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
Mike Christie <mchristi@redhat.com>,
Hannes Reinecke <hare@suse.com>, Christoph Hellwig <hch@lst.de>,
Sagi Grimberg <sagi@grimberg.me>,
"Bryant G. Ly" <bryantly@linux.vnet.ibm.com>,
"Peter Zijlstra (Intel)" <peterz@infradead.org>,
Nicholas Bellinger <nab@linux-iscsi.org>
Subject: [PATCH 0/2] target: Fix v4.19-rc active I/O shutdown deadlock
Date: Wed, 10 Oct 2018 03:23:08 +0000 [thread overview]
Message-ID: <1539141790-13557-1-git-send-email-nab@linux-iscsi.org> (raw)
From: Nicholas Bellinger <nab@linux-iscsi.org>
Hi MNC, MKP & Co,
While testing v4.19-rc recently with simple backend I/O error injection
(via delayed BIO completion), I was able to trigger an end-less loop
deadlock with recent changes in commit 00d909a107:
Author: Bart Van Assche <bart.vanassche@wdc.com>
Date: Fri Jun 22 14:52:53 2018 -0700
scsi: target: Make the session shutdown code also wait for commands that are being aborted
It comes down to an incorrect assumption wrt signals during session
shutdown plus active I/O quiesce, which triggers an endless loop
immediately during session shutdown as se_session->sess_list_wq
waits for outstanding backend I/O to complete.
The easiest reproduction is with iser-target or simulation with plain
old iscsi-target/TCP ports. However, any fabric driver who triggers
session shutdown from user-space processes with signals pending can
easily trigger it and bring down the machine.
The fix is simple, but requires a new wait_event_lock_irq_timeout()
macro to allow TASK_UNINTERRUPTIBLE to be set in order to work as
expected for all fabric driver session shutdown cases.
So short of reverting commit 00d909a107 now for v4.19, this is going
to be the best option.
Please review for v4.19, or v4.20-rc1 with stable CC's for both.
Thank you.
Nicholas Bellinger (2):
sched/wait: Add wait_event_lock_irq_timeout for TASK_UNINTERRUPTIBLE
usage
target: Fix target_wait_for_sess_cmds breakage with active signals
drivers/target/target_core_transport.c | 4 ++--
include/linux/wait.h | 20 +++++++++++++++-----
2 files changed, 17 insertions(+), 7 deletions(-)
--
1.9.1
next reply other threads:[~2018-10-10 3:31 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-10 3:23 Nicholas A. Bellinger [this message]
2018-10-10 3:23 ` [PATCH 1/2] sched/wait: Add wait_event_lock_irq_timeout for TASK_UNINTERRUPTIBLE usage Nicholas A. Bellinger
2018-10-10 3:59 ` Ly, Bryant
2018-10-10 8:31 ` Peter Zijlstra
2018-10-12 2:18 ` Bart Van Assche
2018-10-10 3:23 ` [PATCH 2/2] target: Fix target_wait_for_sess_cmds breakage with active signals Nicholas A. Bellinger
2018-10-10 4:01 ` Ly, Bryant
2018-10-10 4:58 ` Bart Van Assche
2018-10-10 8:43 ` Peter Zijlstra
2018-10-11 5:40 ` Nicholas A. Bellinger
2018-10-11 7:55 ` Peter Zijlstra
2018-10-10 16:58 ` Mike Christie
2018-10-11 5:56 ` Nicholas A. Bellinger
2018-10-11 13:05 ` Ly, Bryant
2018-10-16 4:13 ` Martin K. Petersen
2018-10-16 14:37 ` Ly, Bryant
2018-10-10 4:20 ` [PATCH 0/2] target: Fix v4.19-rc active I/O shutdown deadlock Nicholas A. Bellinger
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=1539141790-13557-1-git-send-email-nab@linux-iscsi.org \
--to=nab@linux-iscsi.org \
--cc=bryantly@linux.vnet.ibm.com \
--cc=hare@suse.com \
--cc=hch@lst.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=mchristi@redhat.com \
--cc=peterz@infradead.org \
--cc=sagi@grimberg.me \
--cc=target-devel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®