From: Ming Lei <ming.lei@redhat.com>
To: Martin Steigerwald <martin@lichtvoll.de>
Cc: Jens Axboe <axboe@fb.com>,
linux-block@vger.kernel.org,
Christoph Hellwig <hch@infradead.org>,
linux-scsi@vger.kernel.org,
"Martin K . Petersen" <martin.petersen@oracle.com>,
"James E . J . Bottomley" <jejb@linux.vnet.ibm.com>,
Bart Van Assche <bart.vanassche@sandisk.com>,
Oleksandr Natalenko <oleksandr@natalenko.name>,
Johannes Thumshirn <jthumshirn@suse.de>,
Cathy Avery <cavery@redhat.com>
Subject: Re: [PATCH V6 0/6] block/scsi: safe SCSI quiescing
Date: Wed, 27 Sep 2017 16:27:56 +0800 [thread overview]
Message-ID: <20170927082751.GA7464@ming.t460p> (raw)
In-Reply-To: <2609507.GN6GkCGlmM@merkaba>
On Wed, Sep 27, 2017 at 09:57:37AM +0200, Martin Steigerwald wrote:
> Hi Ming.
>
> Ming Lei - 27.09.17, 13:48:
> > Hi,
> >
> > The current SCSI quiesce isn't safe and easy to trigger I/O deadlock.
> >
> > Once SCSI device is put into QUIESCE, no new request except for
> > RQF_PREEMPT can be dispatched to SCSI successfully, and
> > scsi_device_quiesce() just simply waits for completion of I/Os
> > dispatched to SCSI stack. It isn't enough at all.
> >
> > Because new request still can be comming, but all the allocated
> > requests can't be dispatched successfully, so request pool can be
> > consumed up easily.
> >
> > Then request with RQF_PREEMPT can't be allocated and wait forever,
> > meantime scsi_device_resume() waits for completion of RQF_PREEMPT,
> > then system hangs forever, such as during system suspend or
> > sending SCSI domain alidation.
> >
> > Both IO hang inside system suspend[1] or SCSI domain validation
> > were reported before.
> >
> > This patch introduces preempt only mode, and solves the issue
> > by allowing RQF_PREEMP only during SCSI quiesce.
> >
> > Both SCSI and SCSI_MQ have this IO deadlock issue, this patch fixes
> > them all.
> >
> > V6:
> > - borrow Bart's idea of preempt only, with clean
> > implementation(patch 5/patch 6)
> > - needn't any external driver's dependency, such as MD's
> > change
>
> Do you want me to test with v6 of the patch set? If so, it would be nice if
> you´d make a v6 branch in your git repo.
Hi Martin,
I appreciate much if you may run V6 and provide your test result,
follows the branch:
https://github.com/ming1/linux/tree/blk_safe_scsi_quiesce_V6
https://github.com/ming1/linux.git #blk_safe_scsi_quiesce_V6
>
> After an uptime of almost 6 days I am pretty confident that the V5 one fixes the
> issue for me. So
>
> Tested-by: Martin Steigerwald <martin@lichtvoll.de>
>
> for V5.
Thanks for your test!
--
Ming
next prev parent reply other threads:[~2017-09-27 8:28 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-27 5:48 [PATCH V6 0/6] block/scsi: safe SCSI quiescing Ming Lei
2017-09-27 5:48 ` [PATCH V6 1/6] blk-mq: only run hw queues for blk-mq Ming Lei
2017-09-27 5:48 ` [PATCH V6 2/6] block: tracking request allocation with q_usage_counter Ming Lei
2017-09-27 6:10 ` Hannes Reinecke
2017-09-27 5:48 ` [PATCH V6 3/6] block: pass flags to blk_queue_enter() Ming Lei
2017-09-27 5:48 ` [PATCH V6 4/6] block: prepare for passing RQF_PREEMPT to request allocation Ming Lei
2017-09-27 5:48 ` [PATCH V6 5/6] block: support PREEMPT_ONLY Ming Lei
2017-09-27 5:48 ` [PATCH V6 6/6] SCSI: set block queue at preempt only when SCSI device is put into quiesce Ming Lei
2017-09-27 9:54 ` Bart Van Assche
2017-09-27 10:14 ` Ming Lei
2017-09-27 7:57 ` [PATCH V6 0/6] block/scsi: safe SCSI quiescing Martin Steigerwald
2017-09-27 8:27 ` Ming Lei [this message]
2017-09-27 8:52 ` Ming Lei
2017-09-28 8:11 ` Oleksandr Natalenko
2017-09-29 18:47 ` Martin Steigerwald
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=20170927082751.GA7464@ming.t460p \
--to=ming.lei@redhat.com \
--cc=axboe@fb.com \
--cc=bart.vanassche@sandisk.com \
--cc=cavery@redhat.com \
--cc=hch@infradead.org \
--cc=jejb@linux.vnet.ibm.com \
--cc=jthumshirn@suse.de \
--cc=linux-block@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=martin@lichtvoll.de \
--cc=oleksandr@natalenko.name \
/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